From 807356968fe23faab17f2a808f29d69d9a90d072 Mon Sep 17 00:00:00 2001 From: "ondrej@mirtes.cz" Date: Mon, 26 Oct 2026 14:07:13 +0000 Subject: [PATCH 1/4] Generate the parser from doc/grammars with phplrt ConstExprParser, TypeParser and PhpDocParser are no longer written by hand. tools/phplrt/build.php compiles doc/grammars/phpdoc.pp3 with phplrt and writes every rule of the compiled grammar down as a method of src/Parser/Generated/GeneratedParser.php, which reads exactly what the phplrt runtime would read with the same tables and reports the same failures. The AST is built by the reducers of AstBuilder, which extends the generated class. The public API of the three parsers is unchanged. Some details of exceptions thrown for invalid input differ, and a few public helper methods of TypeParser are removed (see UPGRADING.md). Amp-Thread-ID: https://ampcode.com/threads/T-01a17820-94d1-75c8-9206-2e802d9c0556 --- .gitattributes | 1 + .github/workflows/build.yml | 5 + Makefile | 6 + UPGRADING.md | 13 + composer.json | 3 +- doc/grammars/README.md | 15 + doc/grammars/const-expr.pp3 | 3 +- doc/grammars/phpdoc-block.pp3 | 39 +- phpcs.xml | 3 + phpstan.neon | 7 +- src/Parser/AstBuilder.php | 1938 ++ src/Parser/ConstExprParser.php | 248 +- src/Parser/Generated/GeneratedParser.php | 27646 ++++++++++++++++++++ src/Parser/PhpDocParser.php | 1254 +- src/Parser/Phplrt/Fragment.php | 50 + src/Parser/Phplrt/Token.php | 30 + src/Parser/Phplrt/TokenStream.php | 474 + src/Parser/TokenIterator.php | 28 + src/Parser/TypeParser.php | 1118 +- tests/PHPStan/Parser/PhpDocParserTest.php | 66 +- tests/PHPStan/Parser/TypeParserTest.php | 16 +- tools/phplrt/GeneratedParser.template.php | 152 + tools/phplrt/ParserGenerator.php | 694 + tools/phplrt/build.php | 330 + tools/phplrt/composer.json | 2 +- tools/phplrt/composer.lock | 207 +- 26 files changed, 31642 insertions(+), 2706 deletions(-) create mode 100644 src/Parser/AstBuilder.php create mode 100644 src/Parser/Generated/GeneratedParser.php create mode 100644 src/Parser/Phplrt/Fragment.php create mode 100644 src/Parser/Phplrt/Token.php create mode 100644 src/Parser/Phplrt/TokenStream.php create mode 100644 tools/phplrt/GeneratedParser.template.php create mode 100644 tools/phplrt/ParserGenerator.php create mode 100644 tools/phplrt/build.php diff --git a/.gitattributes b/.gitattributes index de5a88e7..fe21226b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -17,3 +17,4 @@ Makefile export-ignore phpstan-baseline.neon export-ignore phpstan.neon export-ignore phpunit.xml export-ignore +src/Parser/Generated/** linguist-generated=true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04fb4762..89422a15 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -175,6 +175,11 @@ jobs: - name: "Install the grammar toolchain" run: "make grammars-install" + - name: "Check the generated parser is up to date" + run: | + make grammars-build + git diff --exit-code src/Parser/Generated + - name: "Tests" run: "make tests" diff --git a/Makefile b/Makefile index 40cf4820..3d0338e2 100644 --- a/Makefile +++ b/Makefile @@ -45,3 +45,9 @@ phpstan-generate-baseline: .PHONY: grammars-install grammars-install: composer install --no-interaction --working-dir tools/phplrt + +# Writes the parser of src/Parser/Generated out of doc/grammars. Run it after +# changing a grammar or a reducer of src/Parser/AstBuilder.php. +.PHONY: grammars-build +grammars-build: + php tools/phplrt/build.php diff --git a/UPGRADING.md b/UPGRADING.md index b673bccf..058d05df 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,3 +1,16 @@ +Upgrading from phpstan/phpdoc-parser 2.x to 3.0 +================================= + +### The parser is generated from the grammars + +`ConstExprParser`, `TypeParser` and `PhpDocParser` are no longer written by hand. The parser is generated from the grammars in [`doc/grammars`](doc/grammars) with [phplrt](https://github.com/phplrt/phplrt), and the AST is built by `PHPStan\PhpDocParser\Parser\AstBuilder`. The library now requires `ondrejmirtes/phplrt-runtime`. + +Their constructors and `parse()` methods (and `PhpDocParser::parseTag()`, `PhpDocParser::parseTagValue()` and `ConstExprParser::parseDoctrineString()`) are the same, and so is the AST they build. + +* Some details of a `ParserException` thrown for an invalid input may be different: the token the parser stopped at, and the token it says it expected there. +* These public methods of `TypeParser`, which were not meant to be called from the outside, are removed: `parseGeneric()`, `parseTemplateTagValue()`, `isHtml()` and `enrichWithAttributes()`. +* The `TypeParser` and `ConstExprParser` given to the constructors of `TypeParser` and `PhpDocParser` are not used anymore. + Upgrading from phpstan/phpdoc-parser 1.x to 2.0 ================================= diff --git a/composer.json b/composer.json index 8047c49e..c6c9f1ba 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,8 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "license": "MIT", "require": { - "php": "^7.4 || ^8.0" + "php": "^7.4 || ^8.0", + "ondrejmirtes/phplrt-runtime": "^4.2.4" }, "require-dev": { "doctrine/annotations": "^2.0", diff --git a/doc/grammars/README.md b/doc/grammars/README.md index 16b78bc4..8279bb94 100644 --- a/doc/grammars/README.md +++ b/doc/grammars/README.md @@ -36,6 +36,21 @@ run are left in `temp/fuzzy` to be looked at. That is a great deal more of the language than a hand-written corpus covers, and it is what replaced the `abnfgen`-driven fuzzer this project used before. +## The parser is generated from them + +`src/Parser/Generated/GeneratedParser.php` is the parser of `phpdoc.pp3`, and +it is written by `tools/phplrt/build.php` — never edit it by hand: + + make grammars-install # the toolchain, which asks for PHP 8.4 + make grammars-build + +Every rule is a method reading it the way the phplrt runtime would read the +compiled grammar, and building its value as it goes: the rules a node of the +AST is built out of are the ones `src/Parser/AstBuilder.php` has a `reduce` +method for, so a change of a grammar or of a reducer is followed by +`make grammars-build`. The `Grammars` job of the CI checks that the parser in +the repository is the one the grammars write. + ## What keeps them in step The fuzzer walks the grammars one way; `tests/PHPStan/Parser/GrammarSyncTest.php` diff --git a/doc/grammars/const-expr.pp3 b/doc/grammars/const-expr.pp3 index d368bf7b..255ff0a4 100644 --- a/doc/grammars/const-expr.pp3 +++ b/doc/grammars/const-expr.pp3 @@ -88,8 +88,7 @@ ConstantArrayItem * - BAR */ ConstantFetch - : !ArrayKeyword() Identifier() ClassConstantName() - | !ArrayKeyword() Identifier() + : !ArrayKeyword() Identifier() ( ClassConstantName() )? ; /** diff --git a/doc/grammars/phpdoc-block.pp3 b/doc/grammars/phpdoc-block.pp3 index 9a654614..9169ccfe 100644 --- a/doc/grammars/phpdoc-block.pp3 +++ b/doc/grammars/phpdoc-block.pp3 @@ -26,13 +26,18 @@ PhpDoc : ? ( ! PhpDocChildren() )? ; +/** + * The children one after another, written as a repetition rather than as a + * rule calling itself once per child, so that a PHPDoc of many tags is read + * without nesting a rule per tag. + */ PhpDocChildren - : UnreadTagChild() ? MorePhpDocChildren()? - | PhpDocChild() ( MorePhpDocChildren()? )? + : PhpDocChildrenItem() ( ! PhpDocChildrenItem() )* ; -MorePhpDocChildren - : ! PhpDocChildren() +PhpDocChildrenItem + : UnreadTagChild() ? + | PhpDocChild() ( | & ) ; /** @@ -166,8 +171,7 @@ ParameterNameStart * space, which is what tells "@var Foo the one" from "@var Foo|the one". */ VarTagValue - : Type() VariableName() Description() - | Type() DescriptionAfterType() + : Type() ( VariableName() Description() | DescriptionAfterType() ) ; VariableName @@ -189,10 +193,13 @@ VariableName * meant. */ MethodTagValue - : StaticType() Type() Identifier() MethodTagValueTail() - | StaticType() Type() MethodTagValueTail() - | Type() Identifier() MethodTagValueTail() - | Type() MethodTagValueTail() + : StaticType() Type() MethodNameAndTail() + | Type() MethodNameAndTail() + ; + +MethodNameAndTail + : Identifier() MethodTagValueTail() + | MethodTagValueTail() ; /** @@ -354,12 +361,15 @@ DoctrineDescription * to it, while one written after it does not. */ Text - : TextLine() TextTail()? + : TextLine() TextTail()* ; +/** + * A line with something on it, along with the blank lines before it, so that + * the blank lines written after the last such line are left unread. + */ TextTail - : !TextStop() TextLineWithSomethingOnIt() TextTail()? - | !TextStop() TextTail() + : ( !TextStop() )+ TextLineWithSomethingOnIt() ; TextLine @@ -579,8 +589,7 @@ NonTagTextToken * predicate says. */ DoctrineTag - : DoctrineTagToken() DoctrineArguments() DoctrineDescription() - | DoctrineTagToken() !ParenthesesOpen() DoctrineDescription() + : DoctrineTagToken() ( DoctrineArguments() | !ParenthesesOpen() ) DoctrineDescription() | GenericTagToken() DoctrineArguments() DoctrineDescription() ; diff --git a/phpcs.xml b/phpcs.xml index f20026b1..3ab4bf67 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -8,6 +8,9 @@ + + src/Parser/Generated/* + diff --git a/phpstan.neon b/phpstan.neon index 92ffe420..cf7a8c8b 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -6,8 +6,11 @@ parameters: - src - tests excludePaths: - - tests/PHPStan/*/data/* - - tests/PHPStan/Parser/Doctrine/ApiResource.php + analyse: + - src/Parser/Generated/* + analyseAndScan: + - tests/PHPStan/*/data/* + - tests/PHPStan/Parser/Doctrine/ApiResource.php level: 8 ignoreErrors: - '#^Dynamic call to static method PHPUnit\\Framework\\Assert#' diff --git a/src/Parser/AstBuilder.php b/src/Parser/AstBuilder.php new file mode 100644 index 00000000..aaa8a042 --- /dev/null +++ b/src/Parser/AstBuilder.php @@ -0,0 +1,1938 @@ + true, + Lexer::TOKEN_COMMENT => true, + Lexer::TOKEN_NULLABLE => true, + Lexer::TOKEN_DOUBLE_COLON => true, + ]; + + /** + * The tags whose description follows a type right away. + */ + private const DESCRIPTION_AFTER_TYPE = [ + 'var' => true, + 'return' => true, + 'throws' => true, + 'mixin' => true, + 'require-extends' => true, + 'require-implements' => true, + 'sealed' => true, + 'self-out' => true, + 'template' => true, + 'extends' => true, + 'implements' => true, + 'use' => true, + ]; + + private ParserConfig $config; + + private bool $useAttributes; + + /** @var list the tokens of the lexer being read */ + private array $tokens = []; + + /** @var array the index of the token of the lexer each position stands for */ + private array $indexes = []; + + /** the tag the tokens read begin with, which is not one of the lexer */ + private ?string $tag = null; + + /** @var array|null the position each token of the lexer is read at */ + private ?array $positions = null; + + /** @var array|null the offset of each token of the lexer, in bytes */ + private ?array $byteOffsets = null; + + /** the index of the first token of the last text read, or -1 when it is empty */ + private int $textStart = -1; + + private ?Context $context = null; + + /** @var array */ + private array $identifiers = []; + + private int $tUnion; + + private int $tIntersection; + + private int $tIs; + + private int $tNot; + + private int $tVariable; + + private int $tThis; + + private int $tColon; + + private int $tNullable; + + private int $tVariadic; + + private int $tReference; + + private int $tEqual; + + private int $tOf; + + private int $tAs; + + private int $tSuper; + + private int $tCovariant; + + private int $tContravariant; + + private int $tInteger; + + private int $tSingleQuoted; + + private int $tDoubleQuoted; + + private int $tStatic; + + private int $tNegated; + + private int $tOpenParentheses; + + private int $tOpenParenthesesWs; + + private int $tComment; + + /** @var array the kind of tag value each known tag token is read as */ + private array $tagKinds = []; + + public function __construct(ParserConfig $config) + { + $this->config = $config; + $this->useAttributes = $config->useLinesAttributes || $config->useIndexAttributes || $config->useCommentsAttributes; + + $ids = self::TOKENS; + foreach ($ids as $name => $id) { + if ($name !== 'T_IDENTIFIER' && strncmp($name, 'T_KEYWORD_', 10) !== 0) { + continue; + } + + $this->identifiers[$id] = true; + } + + $this->tUnion = $ids['T_UNION']; + $this->tIntersection = $ids['T_INTERSECTION']; + $this->tIs = $ids['T_KEYWORD_IS']; + $this->tNot = $ids['T_KEYWORD_NOT']; + $this->tVariable = $ids['T_VARIABLE']; + $this->tThis = $ids['T_THIS_VARIABLE']; + $this->tColon = $ids['T_COLON']; + $this->tNullable = $ids['T_NULLABLE']; + $this->tVariadic = $ids['T_VARIADIC']; + $this->tReference = $ids['T_REFERENCE']; + $this->tEqual = $ids['T_EQUAL']; + $this->tOf = $ids['T_KEYWORD_OF']; + $this->tAs = $ids['T_KEYWORD_AS']; + $this->tSuper = $ids['T_KEYWORD_SUPER']; + $this->tCovariant = $ids['T_KEYWORD_COVARIANT']; + $this->tContravariant = $ids['T_KEYWORD_CONTRAVARIANT']; + $this->tInteger = $ids['T_INTEGER']; + $this->tSingleQuoted = $ids['T_SINGLE_QUOTED_STRING']; + $this->tDoubleQuoted = $ids['T_DOUBLE_QUOTED_STRING']; + $this->tStatic = $ids['T_KEYWORD_STATIC']; + $this->tNegated = $ids['T_NEGATED']; + $this->tOpenParentheses = $ids['T_OPEN_PARENTHESES']; + $this->tOpenParenthesesWs = $ids['T_OPEN_PARENTHESES_WS']; + $this->tComment = $ids['T_COMMENT']; + + foreach ([ + 'T_TAG_PARAM' => 'param', + 'T_TAG_VAR' => 'var', + 'T_TAG_RETURN' => 'return', + 'T_TAG_THROWS' => 'throws', + 'T_TAG_MIXIN' => 'mixin', + 'T_TAG_REQUIRE_EXTENDS' => 'require-extends', + 'T_TAG_REQUIRE_IMPLEMENTS' => 'require-implements', + 'T_TAG_SEALED' => 'sealed', + 'T_TAG_SELF_OUT' => 'self-out', + 'T_TAG_PROPERTY' => 'property', + 'T_TAG_PARAM_OUT' => 'param-out', + 'T_TAG_PARAM_CLOSURE_THIS' => 'param-closure-this', + 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE' => 'param-immediately-invoked-callable', + 'T_TAG_PARAM_LATER_INVOKED_CALLABLE' => 'param-later-invoked-callable', + 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE' => 'pure-unless-callable-is-impure', + 'T_TAG_PURE_UNLESS_PARAMETER_PASSED' => 'pure-unless-parameter-passed', + 'T_TAG_DEPRECATED' => 'deprecated', + 'T_TAG_METHOD' => 'method', + 'T_TAG_TEMPLATE' => 'template', + 'T_TAG_EXTENDS' => 'extends', + 'T_TAG_IMPLEMENTS' => 'implements', + 'T_TAG_USE' => 'use', + 'T_TAG_TYPE_ALIAS' => 'type-alias', + 'T_TAG_TYPE_ALIAS_IMPORT' => 'type-alias-import', + 'T_TAG_ASSERT' => 'assert', + ] as $name => $kind) { + $this->tagKinds[$ids[$name]] = $kind; + } + } + + // ------------------------------------------------------------------------- + // Reading + // ------------------------------------------------------------------------- + + /** + * Reads what the given rule describes from the position the iterator is at, + * and moves the iterator past it. + * + * The reading may stop before the end of the tokens: whatever follows is + * left to the caller, the way it always has been. + * + * @param string|null $tag the tag the value read belongs to, which the + * tokens do not begin with + * @return mixed + * @throws ParserException + */ + public function read(TokenIterator $tokens, string $rule, ?string $tag = null) + { + $lexerTokens = $tokens->getTokens(); + $index = $tokens->currentTokenIndex(); + + $ids = []; + $indexes = []; + if ($tag !== null) { + // the value of a tag is read along with the tag it belongs to + $ids[] = TokenStream::tagId($tag); + $indexes[] = $index - 1; + } + + TokenStream::create($lexerTokens, $index, $ids, $indexes); + + $previous = [$this->tokens, $this->ids, $this->indexes, $this->tag, $this->positions, $this->comments, $this->byteOffsets, $this->v, $this->n, $this->saveReading()]; + + $this->tokens = $lexerTokens; + $this->ids = $ids; + $this->indexes = $indexes; + $this->tag = $tag; + $this->positions = null; + $this->comments = []; + $this->byteOffsets = null; + $this->v = []; + $this->n = 0; + + try { + if ($this->config->useCommentsAttributes) { + foreach ($ids as $position => $id) { + if ($id !== $this->tComment) { + continue; + } + + $commentIndex = $indexes[$position]; + $this->comments[$commentIndex] = new Comment($lexerTokens[$commentIndex][Lexer::VALUE_OFFSET], $lexerTokens[$commentIndex][Lexer::LINE_OFFSET], $commentIndex); + } + } + + // What has been read is given back even when the reading stops + // before the end, unless nothing at all has been built + if (!$this->parseRule(self::RULES[$rule], 0, true) || ($this->n === 0 && $this->ids[$this->p] !== -1)) { + throw $this->createException($this->failure()); + } + + $tokens->setCurrentTokenIndex($indexes[$this->p]); + + return $this->n > 0 ? $this->v[0] : []; + } finally { + [$this->tokens, $this->ids, $this->indexes, $this->tag, $this->positions, $this->comments, $this->byteOffsets, $this->v, $this->n, $state] = $previous; + $this->restoreReading($state); + } + } + + protected function token(int $position): Token + { + $index = $this->indexes[$position]; + + return new Token( + $this->ids[$position], + $position === 0 && $this->tag !== null ? $this->tag : $this->tokens[$index][Lexer::VALUE_OFFSET], + $index, + ); + } + + protected function context(int $from, ?int $to = null): Context + { + $context = $this->context ??= new Context(0, new StringSource()); + $to ??= $this->p; + if ($to > $from) { + $begin = $this->indexes[$from]; + $context->begin = $begin; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass + $context->length = $this->indexes[$to - 1] + 1 - $begin; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass + } else { + // A rule that has read nothing is empty right after what has been + // read before it + $context->begin = $from > 0 ? $this->indexes[$from - 1] + 1 : 0; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass + $context->length = 0; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass + } + + return $context; + } + + /** + * Describes why the given rule cannot be read at the given token, which is + * what a node standing for something that cannot be read carries. + */ + private function explain(string $rule, int $index): ParserException + { + $state = $this->saveReading(); + try { + if (!$this->parseRule(self::RULES[$rule], $this->position($index), false) || $this->ids[$this->p] !== -1) { + return $this->createException($this->failure()); + } + + // Everything that follows has been read as well, so there is nothing + // to say but that it has to end somewhere + return $this->createExceptionAt($this->indexes[count($this->indexes) - 1], Lexer::TOKEN_END); + } finally { + $this->restoreReading($state); + } + } + + private function position(int $index): int + { + if ($this->positions === null) { + $this->positions = array_flip($this->indexes); + } + + return $this->positions[$index]; + } + + /** + * @param array{int, list} $failure the position and the tokens expected there + */ + private function createException(array $failure): ParserException + { + [$position, $expectedIds] = $failure; + + // The tokens that may only be written here, rather than the ones that + // may be written anywhere, say what has been expected; where nothing + // but those is left, a type is what has been expected + $names = []; + foreach ($expectedIds as $id) { + if (!isset(self::EXPECTATIONS[$id])) { + continue; + } + + $names[] = self::EXPECTATIONS[$id]; + } + + $expected = Lexer::TOKEN_IDENTIFIER; + $expectedValue = null; + foreach (in_array('T_IDENTIFIER', $names, true) ? [] : $names as $name) { + $type = self::lexerTokenType($name); + if ($type === null || isset(self::INCIDENTAL_TOKENS[$type])) { + continue; + } + + $expected = $type; + if (strncmp($name, 'T_KEYWORD_', 10) === 0) { + // a word compared by its value, like the "from" of an imported type + $expectedValue = strtolower(str_replace(['_ANY_CASE', '_'], ['', '-'], (string) substr($name, 10))); + } + break; + } + + return $this->createExceptionAt($this->indexes[$position], $expected, $expectedValue); + } + + private function createExceptionAt(int $index, int $expected, ?string $expectedValue = null): ParserException + { + $lexerToken = $this->tokens[$index] ?? $this->tokens[count($this->tokens) - 1]; + + if ($this->byteOffsets === null) { + $offset = 0; + $this->byteOffsets = []; + foreach ($this->tokens as $i => $t) { + $this->byteOffsets[$i] = $offset; + $offset += strlen($t[Lexer::VALUE_OFFSET]); + } + } + + return new ParserException( + $lexerToken[Lexer::VALUE_OFFSET], + $lexerToken[Lexer::TYPE_OFFSET], + $this->byteOffsets[$index] ?? 0, + $expected, + $expectedValue, + $lexerToken[Lexer::LINE_OFFSET], + ); + } + + /** + * The token of the lexer a token of the grammar is read out of. + */ + private static function lexerTokenType(string $name): ?int + { + if (strncmp($name, 'T_KEYWORD_', 10) === 0) { + return Lexer::TOKEN_IDENTIFIER; + } + + if (strncmp($name, 'T_TAG_', 6) === 0) { + return Lexer::TOKEN_PHPDOC_TAG; + } + + $name = str_replace(['_WS', '_HTML'], '', substr($name, 2)); + $constant = Lexer::class . '::TOKEN_' . $name; + + return defined($constant) ? (int) constant($constant) : null; + } + + // ------------------------------------------------------------------------- + // Attributes + // ------------------------------------------------------------------------- + + /** + * @template T of Node + * @param T $node + * @return T + */ + private function attributes(Node $node, Context $context, bool $takesComments = false): Node + { + if (!$this->useAttributes) { + return $node; + } + + return $this->attributesAt($node, $context->begin, $context->begin + $context->length - 1, $takesComments); + } + + /** + * The attributes of a node of the arguments of a Doctrine annotation, which + * are read walking over the line breaks. + * + * @template T of Node + * @param T $node + * @return T + */ + private function doctrineAttributes(Node $node, Context $context): Node + { + if (!$this->useAttributes) { + return $node; + } + + return $this->attributesAt($node, $context->begin, $context->begin + $context->length - 1, false, true); + } + + /** + * @template T of Node + * @param T $node + * @return T + */ + private function attributesAt(Node $node, int $start, int $end, bool $takesComments = false, bool $skipsLineBreaks = false): Node + { + if (!$this->useAttributes) { + return $node; + } + + if ($this->config->useLinesAttributes) { + $tokens = $this->tokens; + $last = $tokens[count($tokens) - 1][Lexer::LINE_OFFSET]; + $next = $end + 1; + if ($skipsLineBreaks) { + // the line the reading has stopped at, which is the line of the + // next token that is neither whitespace nor a line break + while (isset($tokens[$next]) && ($tokens[$next][Lexer::TYPE_OFFSET] === Lexer::TOKEN_PHPDOC_EOL || $tokens[$next][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS)) { + $next++; + } + } + + $node->setAttribute(Attribute::START_LINE, $tokens[$start][Lexer::LINE_OFFSET] ?? $last); + $node->setAttribute(Attribute::END_LINE, $tokens[$next][Lexer::LINE_OFFSET] ?? $last); + } + + if ($this->config->useIndexAttributes) { + $node->setAttribute(Attribute::START_INDEX, $start); + $node->setAttribute(Attribute::END_INDEX, $end); + } + + if ($takesComments && $this->config->useCommentsAttributes) { + // A node is given the comments read since the last node was, and + // only those: a node built again by the rule around it is given + // what that rule has read, the way it always has been + $comments = []; + foreach ($this->comments as $index => $comment) { + if ($index > $end) { + break; + } + + $comments[] = $comment; + unset($this->comments[$index]); + } + + $node->setAttribute(Attribute::COMMENTS, $comments); + } + + return $node; + } + + /** + * Forgets the comments read as text rather than as a part of a type. + */ + private function forgetComments(int $start, int $end): void + { + foreach (array_keys($this->comments) as $index) { + if ($index > $end) { + break; + } + + if ($index < $start) { + continue; + } + + unset($this->comments[$index]); + } + } + + private function nextIndex(int $index): int + { + $tokens = $this->tokens; + $index++; + while (($tokens[$index][Lexer::TYPE_OFFSET] ?? null) === Lexer::TOKEN_HORIZONTAL_WS) { + $index++; + } + + return $index; + } + + private static function end(Context $context): int + { + return $context->begin + $context->length - 1; + } + + /** + * @param list $children + * @return list + */ + private static function children(array $children): array + { + return $children; + } + + // ------------------------------------------------------------------------- + // Types + // ------------------------------------------------------------------------- + + /** + * @param list $children + */ + protected function reduceType(Context $context, $children): TypeNode + { + $children = self::children($children); + $types = []; + $kind = 0; + foreach ($children as $child) { + if ($child instanceof TypeNode) { + $types[] = $child; + } elseif ($child instanceof Token) { + if ($child->id === $this->tUnion) { + $kind = 1; + } elseif ($child->id === $this->tIntersection) { + $kind = 2; + } + } + } + + if ($kind === 1) { + $type = new Ast\Type\UnionTypeNode($types); + } elseif ($kind === 2) { + $type = new Ast\Type\IntersectionTypeNode($types); + } else { + $type = $types[0]; + } + + return $this->attributes($type, $context, true); + } + + /** + * @param list $children + */ + protected function reduceSubType(Context $context, $children): TypeNode + { + $children = self::children($children); + $types = []; + $kind = 0; + $negated = false; + $parameter = null; + foreach ($children as $child) { + if ($child instanceof TypeNode) { + $types[] = $child; + } elseif ($child instanceof Token) { + $id = $child->id; + if ($id === $this->tUnion) { + $kind = 1; + } elseif ($id === $this->tIntersection) { + $kind = 2; + } elseif ($id === $this->tIs) { + $kind = 3; + } elseif ($id === $this->tNot && $kind === 3) { + $negated = true; + } elseif ($id === $this->tVariable && $parameter === null && $kind === 0) { + $parameter = $child->value; + } + } + } + + if ($kind === 3) { + if ($parameter !== null) { + $type = new Ast\Type\ConditionalTypeForParameterNode($parameter, $types[0], $types[1], $types[2], $negated); + } else { + $type = new Ast\Type\ConditionalTypeNode($types[0], $types[1], $types[2], $types[3], $negated); + } + } elseif ($kind === 1) { + $type = new Ast\Type\UnionTypeNode($types); + } elseif ($kind === 2) { + $type = new Ast\Type\IntersectionTypeNode($types); + } else { + $type = $types[0]; + } + + return $this->attributes($type, $context, true); + } + + /** + * @param list $children + */ + protected function reduceNullable(Context $context, $children): TypeNode + { + foreach ($children as $child) { + if ($child instanceof TypeNode) { + return $this->attributes(new Ast\Type\NullableTypeNode($child), $context, true); + } + } + + throw new LogicException('A nullable type without a type'); + } + + /** + * @param list $children + */ + protected function reduceAtomic(Context $context, $children): TypeNode + { + return $this->attributes($this->assembleAtomic(self::children($children), $context->begin), $context, true); + } + + /** + * @param list $children + */ + protected function reduceCallableReturnType(Context $context, $children): TypeNode + { + return $this->attributes($this->assembleAtomic(self::children($children), $context->begin), $context, true); + } + + /** + * An atomic type, out of the name or the type it begins with and whatever + * is written right after it. + * + * @param list $children + */ + private function assembleAtomic(array $children, int $begin): TypeNode + { + $type = null; + $name = null; + + foreach ($children as $child) { + if ($child instanceof Token) { + if ($type === null && $name === null) { + if (isset($this->identifiers[$child->id])) { + $name = $child; + } elseif ($child->id === $this->tThis) { + $type = $this->attributesAt(new Ast\Type\ThisTypeNode(), $child->offset, $child->offset, true); + } + } + + continue; + } + + if ($child instanceof TypeNode) { + $type ??= $child; + continue; + } + + if ($child instanceof ConstExprNode) { + $type = $this->attributesAt( + new Ast\Type\ConstTypeNode($child), + $child->getAttribute(Attribute::START_INDEX) ?? $begin, + $child->getAttribute(Attribute::END_INDEX) ?? $begin, + true, + ); + continue; + } + + if (!$child instanceof Fragment) { + continue; + } + + switch ($child->kind) { + case Fragment::GENERIC: + $type = new Ast\Type\GenericTypeNode($this->identifier($name), $child->a, $child->b); + break; + case Fragment::CALLABLE: + $type = new Ast\Type\CallableTypeNode($this->identifier($name), $child->a, $child->b, $child->c); + break; + case Fragment::SHAPE: + /** @var Token $name */ + /** @var Ast\Type\ArrayShapeNode::KIND_* $kind */ + $kind = $name->value; + $type = $child->b === true + ? Ast\Type\ArrayShapeNode::createSealed($child->a, $kind) + : Ast\Type\ArrayShapeNode::createUnsealed($child->a, $child->c, $kind); + break; + case Fragment::OBJECT_SHAPE: + $type = new Ast\Type\ObjectShapeNode($child->a); + break; + case Fragment::OFFSET: + $type = new Ast\Type\OffsetAccessTypeNode($type ?? $this->identifier($name), $child->a); + break; + default: + $type = new Ast\Type\ArrayTypeNode($type ?? $this->identifier($name)); + break; + } + + $type = $this->attributesAt($type, $begin, $child->end, true); + } + + return $type ?? $this->identifier($name); + } + + private function identifier(?Token $name): Ast\Type\IdentifierTypeNode + { + if ($name === null) { + throw new LogicException('A type without a name'); + } + + return $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, true); + } + + /** + * @param list $children + */ + protected function reduceArrayOrOffsetAccessItem(Context $context, $children): Fragment + { + foreach ($children as $child) { + if ($child instanceof TypeNode) { + return new Fragment(Fragment::OFFSET, self::end($context), $child); + } + } + + return new Fragment(Fragment::ARRAY, self::end($context)); + } + + /** + * @param list $children + */ + protected function reduceGeneric(Context $context, $children): Fragment + { + $types = []; + $variances = []; + foreach ($children as $child) { + if (!$child instanceof Fragment) { + continue; + } + + $types[] = $child->a; + $variances[] = $child->b; + } + + return new Fragment(Fragment::GENERIC, self::end($context), $types, $variances); + } + + /** + * @param list $children + */ + protected function reduceGenericInReturnType(Context $context, $children): Fragment + { + return $this->reduceGeneric($context, $children); + } + + /** + * @param list $children + */ + protected function reduceGenericArgument(Context $context, $children): Fragment + { + $variance = Ast\Type\GenericTypeNode::VARIANCE_INVARIANT; + foreach (self::children($children) as $child) { + if ($child instanceof TypeNode) { + return new Fragment(Fragment::GENERIC_ARGUMENT, self::end($context), $child, $variance); + } + + if (!$child instanceof Token) { + continue; + } + + if ($child->id === $this->tCovariant) { + $variance = Ast\Type\GenericTypeNode::VARIANCE_COVARIANT; + } elseif ($child->id === $this->tContravariant) { + $variance = Ast\Type\GenericTypeNode::VARIANCE_CONTRAVARIANT; + } else { + // the wildcard + return new Fragment( + Fragment::GENERIC_ARGUMENT, + self::end($context), + $this->attributes(new Ast\Type\IdentifierTypeNode('mixed'), $context, true), + Ast\Type\GenericTypeNode::VARIANCE_BIVARIANT, + ); + } + } + + throw new LogicException('A generic argument without a type'); + } + + /** + * @param list $children + */ + protected function reduceCallable(Context $context, $children): Fragment + { + $templates = []; + $parameters = []; + $returnType = null; + foreach ($children as $child) { + if ($child instanceof Ast\Type\CallableTypeParameterNode) { + $parameters[] = $child; + } elseif ($child instanceof Ast\PhpDoc\TemplateTagValueNode) { + $templates[] = $child; + } elseif ($child instanceof TypeNode) { + $returnType = $child; + } + } + + return new Fragment(Fragment::CALLABLE, self::end($context), $parameters, $returnType, $templates); + } + + /** + * @param list $children + */ + protected function reduceCallableWithTemplates(Context $context, $children): Fragment + { + return $this->reduceCallable($context, $children); + } + + /** + * @param list $children + */ + protected function reduceCallableTemplateArgument(Context $context, $children): Ast\PhpDoc\TemplateTagValueNode + { + return $this->attributes($this->template(self::children($children), ''), $context, true); + } + + /** + * @param list $children + */ + private function template(array $children, string $description): Ast\PhpDoc\TemplateTagValueNode + { + $name = null; + $upperBound = null; + $lowerBound = null; + $default = null; + $next = null; + foreach ($children as $child) { + if ($child instanceof Token) { + if ($name === null) { + $name = $child->value; + } elseif ($child->id === $this->tOf || $child->id === $this->tAs) { + $next = 'upper'; + } elseif ($child->id === $this->tSuper) { + $next = 'lower'; + } elseif ($child->id === $this->tEqual) { + $next = 'default'; + } + } elseif ($child instanceof TypeNode) { + if ($next === 'upper') { + $upperBound = $child; + } elseif ($next === 'lower') { + $lowerBound = $child; + } elseif ($next === 'default') { + $default = $child; + } + } + } + + /** @var non-empty-string $name */ + return new Ast\PhpDoc\TemplateTagValueNode($name, $upperBound, $description, $default, $lowerBound); + } + + /** + * @param list $children + */ + protected function reduceCallableParameter(Context $context, $children): Ast\Type\CallableTypeParameterNode + { + $type = null; + $isReference = false; + $isVariadic = false; + $name = ''; + $isOptional = false; + foreach (self::children($children) as $child) { + if ($child instanceof TypeNode) { + $type = $child; + } elseif ($child instanceof Token) { + $id = $child->id; + if ($id === $this->tReference) { + $isReference = true; + } elseif ($id === $this->tVariadic) { + $isVariadic = true; + } elseif ($id === $this->tVariable) { + $name = $child->value; + } elseif ($id === $this->tEqual) { + $isOptional = true; + } + } + } + + /** @var TypeNode $type */ + return $this->attributes(new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $name, $isOptional), $context, true); + } + + /** + * @param list $children + */ + protected function reduceArrayShape(Context $context, $children): Fragment + { + $items = []; + $sealed = true; + $unsealedType = null; + foreach ($children as $child) { + if ($child instanceof Ast\Type\ArrayShapeItemNode) { + $items[] = $child; + } elseif ($child instanceof Ast\Type\ArrayShapeUnsealedTypeNode) { + $unsealedType = $child; + } elseif ($child instanceof Token && $child->id === $this->tVariadic) { + $sealed = false; + } + } + + return new Fragment(Fragment::SHAPE, self::end($context), $items, $sealed, $unsealedType); + } + + /** + * @param list $children + */ + protected function reduceListShape(Context $context, $children): Fragment + { + return $this->reduceArrayShape($context, $children); + } + + /** + * @param list $children + */ + protected function reduceArrayShapeUnsealedType(Context $context, $children): Ast\Type\ArrayShapeUnsealedTypeNode + { + $types = []; + foreach ($children as $child) { + if (!$child instanceof TypeNode) { + continue; + } + + $types[] = $child; + } + + $node = count($types) === 2 + ? new Ast\Type\ArrayShapeUnsealedTypeNode($types[1], $types[0]) + : new Ast\Type\ArrayShapeUnsealedTypeNode($types[0], null); + + return $this->attributes($node, $context, true); + } + + /** + * @param list $children + */ + protected function reduceListShapeUnsealedType(Context $context, $children): Ast\Type\ArrayShapeUnsealedTypeNode + { + return $this->reduceArrayShapeUnsealedType($context, $children); + } + + /** + * @param list $children + */ + protected function reduceArrayShapeItem(Context $context, $children): Ast\Type\ArrayShapeItemNode + { + $nodes = []; + $hasKey = false; + $optional = false; + foreach (self::children($children) as $child) { + if ($child instanceof Node) { + $nodes[] = $child; + } elseif ($child instanceof Token) { + if ($child->id === $this->tColon) { + $hasKey = true; + } elseif ($child->id === $this->tNullable) { + $optional = true; + } + } + } + + /** @var TypeNode $value */ + $value = $nodes[count($nodes) - 1]; + if ($hasKey) { + /** @var Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\ConstExpr\ConstFetchNode|Ast\Type\IdentifierTypeNode $key */ + $key = $nodes[0]; + $item = new Ast\Type\ArrayShapeItemNode($key, $optional, $value); + } else { + $item = new Ast\Type\ArrayShapeItemNode(null, false, $value); + } + + return $this->attributes($item, $context, true); + } + + /** + * @param list $children + * @return Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\ConstExpr\ConstFetchNode|Ast\Type\IdentifierTypeNode + */ + protected function reduceArrayShapeKey(Context $context, $children): Node + { + $children = self::children($children); + $first = $children[0]; + if (count($children) === 3) { + $key = new Ast\ConstExpr\ConstFetchNode($first->value, $children[2]->value); + } elseif ($first->id === $this->tInteger) { + $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $first->value)); + } else { + $key = $this->stringOrIdentifier($first); + } + + return $this->attributes($key, $context, true); + } + + /** + * @return Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode + */ + private function stringOrIdentifier(Token $token): Node + { + if ($token->id === $this->tSingleQuoted) { + return new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($token->value), Ast\ConstExpr\ConstExprStringNode::SINGLE_QUOTED); + } + + if ($token->id === $this->tDoubleQuoted) { + return new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($token->value), Ast\ConstExpr\ConstExprStringNode::DOUBLE_QUOTED); + } + + return new Ast\Type\IdentifierTypeNode($token->value); + } + + /** + * @param list $children + */ + protected function reduceObjectShape(Context $context, $children): Fragment + { + $items = []; + foreach ($children as $child) { + if (!$child instanceof Ast\Type\ObjectShapeItemNode) { + continue; + } + + $items[] = $child; + } + + return new Fragment(Fragment::OBJECT_SHAPE, self::end($context), $items); + } + + /** + * @param list $children + */ + protected function reduceObjectShapeItem(Context $context, $children): Ast\Type\ObjectShapeItemNode + { + $key = null; + $value = null; + $optional = false; + foreach ($children as $child) { + if ($child instanceof Node) { + if ($key === null) { + $key = $child; + } else { + $value = $child; + } + } elseif ($child instanceof Token && $child->id === $this->tNullable) { + $optional = true; + } + } + + /** @var Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode $key */ + /** @var TypeNode $value */ + return $this->attributes(new Ast\Type\ObjectShapeItemNode($key, $optional, $value), $context, true); + } + + /** + * @param list $children + * @return Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode + */ + protected function reduceObjectShapeKey(Context $context, $children): Node + { + return $this->attributes($this->stringOrIdentifier(self::children($children)[0]), $context, true); + } + + /** + * A comment read right after the comma separating the items of a shape is + * thrown away. + * + * @return list + */ + protected function reduceDiscardedComment(Context $context): array + { + unset($this->comments[$context->begin]); + + return []; + } + + // ------------------------------------------------------------------------- + // Constant expressions + // ------------------------------------------------------------------------- + + /** + * @param list $children + */ + protected function reduceConstantFloat(Context $context, $children): ConstExprNode + { + return $this->attributes(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', self::children($children)[0]->value)), $context); + } + + /** + * @param list $children + */ + protected function reduceConstantInteger(Context $context, $children): ConstExprNode + { + return $this->attributes(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', self::children($children)[0]->value)), $context); + } + + /** + * @param list $children + */ + protected function reduceConstantString(Context $context, $children): ConstExprNode + { + /** @var Ast\ConstExpr\ConstExprStringNode $node */ + $node = $this->stringOrIdentifier(self::children($children)[0]); + + return $this->attributes($node, $context); + } + + protected function reduceConstantTrue(Context $context): ConstExprNode + { + return $this->attributes(new Ast\ConstExpr\ConstExprTrueNode(), $context); + } + + protected function reduceConstantFalse(Context $context): ConstExprNode + { + return $this->attributes(new Ast\ConstExpr\ConstExprFalseNode(), $context); + } + + protected function reduceConstantNull(Context $context): ConstExprNode + { + return $this->attributes(new Ast\ConstExpr\ConstExprNullNode(), $context); + } + + /** + * @param list $children + */ + protected function reduceConstantArrayLiteral(Context $context, $children): ConstExprNode + { + $items = []; + foreach ($children as $child) { + if (!$child instanceof Ast\ConstExpr\ConstExprArrayItemNode) { + continue; + } + + $items[] = $child; + } + + return $this->attributes(new Ast\ConstExpr\ConstExprArrayNode($items), $context); + } + + /** + * @param list $children + */ + protected function reduceConstantArrayShorthand(Context $context, $children): ConstExprNode + { + return $this->reduceConstantArrayLiteral($context, $children); + } + + /** + * @param list $children + */ + protected function reduceConstantArrayItem(Context $context, $children): ConstExprNode + { + $expressions = []; + foreach (self::children($children) as $child) { + if (!$child instanceof ConstExprNode) { + continue; + } + + $expressions[] = $child; + } + + $item = count($expressions) === 2 + ? new Ast\ConstExpr\ConstExprArrayItemNode($expressions[0], $expressions[1]) + : new Ast\ConstExpr\ConstExprArrayItemNode(null, $expressions[0]); + + return $this->attributes($item, $context); + } + + /** + * @param list $children + */ + protected function reduceConstantFetch(Context $context, $children): ConstExprNode + { + return $this->attributes($this->constantFetch(self::children($children)), $context); + } + + /** + * @param list $children + */ + private function constantFetch(array $children): Ast\ConstExpr\ConstFetchNode + { + $first = $children[0]; + if (count($children) === 1) { + return new Ast\ConstExpr\ConstFetchNode('', $first->value); + } + + $name = ''; + for ($i = 2, $count = count($children); $i < $count; $i++) { + $name .= $children[$i]->value; + } + + return new Ast\ConstExpr\ConstFetchNode($first->value, $name); + } + + // ------------------------------------------------------------------------- + // PHPDocs + // ------------------------------------------------------------------------- + + /** + * @param list $children + */ + protected function reducePhpDoc(Context $context, $children): Ast\PhpDoc\PhpDocNode + { + $nodes = []; + foreach ($children as $child) { + if (!$child instanceof Ast\PhpDoc\PhpDocChildNode) { + continue; + } + + $nodes[] = $child; + } + + return $this->attributes(new Ast\PhpDoc\PhpDocNode($nodes), $context); + } + + /** + * @param list $children + */ + protected function reduceTextChild(Context $context, $children): Ast\PhpDoc\PhpDocTextNode + { + $text = ''; + foreach (self::children($children) as $child) { + if (!is_string($child)) { + continue; + } + + $text = $child; + } + + return $this->attributes(new Ast\PhpDoc\PhpDocTextNode($text), $context); + } + + protected function reduceText(Context $context): string + { + return $this->text($context); + } + + protected function reduceDoctrineText(Context $context): string + { + return $this->text($context); + } + + /** + * The text the rule has been read from, the way it is written save for the + * asterisks a PHPDoc starts its lines with. + */ + private function text(Context $context): string + { + if ($context->length === 0) { + $this->textStart = -1; + return ''; + } + + $start = $context->begin; + $end = $start + $context->length - 1; + $this->textStart = $start; + if ($this->comments !== []) { + $this->forgetComments($start, $end); + } + + return $this->textBetween($start, $end); + } + + private function textBetween(int $start, int $end): string + { + $tokens = $this->tokens; + $end++; + $text = ''; + for ($i = $start; $i < $end; $i++) { + [$value, $type] = $tokens[$i]; + if ($type === Lexer::TOKEN_PHPDOC_EOL) { + $text .= $value[0] === "\r" ? "\r\n" : "\n"; + continue; + } + + $text .= $value; + } + + return trim($text, " \t"); + } + + /** + * @param list $children + */ + private static function description(array $children): string + { + $last = $children === [] ? null : $children[array_key_last($children)]; + + return is_string($last) ? $last : ''; + } + + /** + * @param list $children + */ + protected function reduceKnownTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + { + $children = self::children($children); + if ($children[0] instanceof Ast\PhpDoc\PhpDocTagNode) { + // a type alias whose type cannot be read + return $children[0]; + } + + /** @var Token $tag */ + $tag = $children[0]; + $valueStart = $this->nextIndex($tag->offset); + $value = $this->tagValue($tag, $children, $valueStart, self::end($context)); + + // A description written right after a type has to be written after a + // space, which is not something the grammar says + if ( + isset(self::DESCRIPTION_AFTER_TYPE[$this->tagKinds[$tag->id]]) + && $this->textStart > 0 + && self::description($children) !== '' + && !($value instanceof Ast\PhpDoc\VarTagValueNode && $value->variableName !== '') + ) { + $tokens = $this->tokens; + $textStart = $this->textStart; + if ( + $tokens[$textStart][Lexer::TYPE_OFFSET] !== Lexer::TOKEN_PHPDOC_EOL + && $tokens[$textStart - 1][Lexer::TYPE_OFFSET] !== Lexer::TOKEN_HORIZONTAL_WS + ) { + $value = new Ast\PhpDoc\InvalidTagValueNode( + trim($this->textBetween($valueStart, self::end($context)), " \t"), + $this->createExceptionAt($textStart, Lexer::TOKEN_HORIZONTAL_WS), + ); + } + } + + $value = $this->attributesAt($value, $valueStart, self::end($context)); + + return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + } + + /** + * @param list $children + */ + private function tagValue(Token $tag, array $children, int $valueStart, int $end): Ast\PhpDoc\PhpDocTagValueNode + { + $description = self::description($children); + $type = null; + $variable = null; + $isReference = false; + $isVariadic = false; + foreach ($children as $i => $child) { + if ($i === 0) { + continue; + } + + if ($child instanceof TypeNode) { + $type ??= $child; + } elseif ($child instanceof Token) { + $id = $child->id; + if ($id === $this->tVariable || $id === $this->tThis) { + $variable ??= $child->value; + } elseif ($id === $this->tReference) { + $isReference = true; + } elseif ($id === $this->tVariadic) { + $isVariadic = true; + } + } + } + + switch ($this->tagKinds[$tag->id]) { + case 'param': + /** @var string $variable */ + if ($type === null) { + return new Ast\PhpDoc\TypelessParamTagValueNode($isVariadic, $variable, $description, $isReference); + } + + return new Ast\PhpDoc\ParamTagValueNode($type, $isVariadic, $variable, $description, $isReference); + case 'var': + /** @var TypeNode $type */ + return new Ast\PhpDoc\VarTagValueNode($type, $variable ?? '', $description); + case 'return': + /** @var TypeNode $type */ + return new Ast\PhpDoc\ReturnTagValueNode($type, $description); + case 'throws': + /** @var TypeNode $type */ + return new Ast\PhpDoc\ThrowsTagValueNode($type, $description); + case 'mixin': + /** @var TypeNode $type */ + return new Ast\PhpDoc\MixinTagValueNode($type, $description); + case 'require-extends': + /** @var TypeNode $type */ + return new Ast\PhpDoc\RequireExtendsTagValueNode($type, $description); + case 'require-implements': + /** @var TypeNode $type */ + return new Ast\PhpDoc\RequireImplementsTagValueNode($type, $description); + case 'sealed': + /** @var TypeNode $type */ + return new Ast\PhpDoc\SealedTagValueNode($type, $description); + case 'self-out': + /** @var TypeNode $type */ + return new Ast\PhpDoc\SelfOutTagValueNode($type, $description); + case 'property': + /** @var TypeNode $type */ + /** @var string $variable */ + return new Ast\PhpDoc\PropertyTagValueNode($type, $variable, $description); + case 'param-out': + /** @var TypeNode $type */ + /** @var string $variable */ + return new Ast\PhpDoc\ParamOutTagValueNode($type, $variable, $description); + case 'param-closure-this': + /** @var TypeNode $type */ + /** @var string $variable */ + return new Ast\PhpDoc\ParamClosureThisTagValueNode($type, $variable, $description); + case 'param-immediately-invoked-callable': + /** @var string $variable */ + return new Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode($variable, $description); + case 'param-later-invoked-callable': + /** @var string $variable */ + return new Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode($variable, $description); + case 'pure-unless-callable-is-impure': + /** @var string $variable */ + return new Ast\PhpDoc\PureUnlessCallableIsImpureTagValueNode($variable, $description); + case 'pure-unless-parameter-passed': + /** @var string $variable */ + return new Ast\PhpDoc\PureUnlessParameterIsPassedTagValueNode($variable, $description); + case 'deprecated': + return new Ast\PhpDoc\DeprecatedTagValueNode($description); + case 'method': + return $this->methodTagValue($children, $description, $valueStart, $end); + case 'template': + array_shift($children); + return $this->template($children, $description); + case 'extends': + case 'implements': + case 'use': + return $this->extendsTagValue($this->tagKinds[$tag->id], $children, $description, $valueStart); + case 'type-alias': + /** @var Token $alias */ + $alias = $children[1]; + /** @var TypeNode $type */ + return new Ast\PhpDoc\TypeAliasTagValueNode($alias->value, $type); + case 'type-alias-import': + /** @var Token $alias */ + $alias = $children[1]; + /** @var Token $from */ + $from = $children[3]; + $as = isset($children[5]) ? $children[5]->value : null; + + return new Ast\PhpDoc\TypeAliasImportTagValueNode( + $alias->value, + $this->attributesAt(new Ast\Type\IdentifierTypeNode($from->value), $from->offset, $from->offset), + $as, + ); + case 'assert': + return $this->assertTagValue($children, $description); + } + + throw new LogicException('Unknown tag ' . $tag->value); + } + + /** + * @param list $children + */ + private function methodTagValue(array $children, string $description, int $valueStart, int $end): Ast\PhpDoc\PhpDocTagValueNode + { + $static = null; + $type = null; + $name = null; + $templates = []; + $parameters = []; + foreach ($children as $i => $child) { + if ($i === 0) { + continue; + } + + if ($child instanceof Token) { + if ($i === 1 && $child->id === $this->tStatic) { + $static = $child; + } elseif ($type !== null && $name === null && $templates === [] && isset($this->identifiers[$child->id])) { + $name = $child; + } + } elseif ($child instanceof Ast\PhpDoc\TemplateTagValueNode) { + $templates[] = $child; + } elseif ($child instanceof Ast\PhpDoc\MethodTagValueParameterNode) { + $parameters[] = $child; + } elseif ($child instanceof TypeNode) { + $type ??= $child; + } + } + + /** @var TypeNode $type */ + if ($name !== null) { + return new Ast\PhpDoc\MethodTagValueNode($static !== null, $type, $name->value, $parameters, $description, $templates); + } + + if (!$type instanceof Ast\Type\IdentifierTypeNode) { + // A method is named by a name, never by any other type + $after = null; + $afterType = false; + foreach ($children as $child) { + if ($child === $type) { + $afterType = true; + } elseif ($afterType && $child instanceof Token) { + $after = $child; + break; + } + } + + return new Ast\PhpDoc\InvalidTagValueNode( + trim($this->textBetween($valueStart, $end), " \t"), + $this->createExceptionAt($after !== null ? $after->offset : $this->indexes[count($this->indexes) - 1], Lexer::TOKEN_IDENTIFIER), + ); + } + + $returnType = $static !== null + ? $this->attributesAt(new Ast\Type\IdentifierTypeNode('static'), $static->offset, $static->offset, true) + : null; + + return new Ast\PhpDoc\MethodTagValueNode(false, $returnType, $type->name, $parameters, $description, $templates); + } + + /** + * @param list $children + */ + private function extendsTagValue(string $kind, array $children, string $description, int $start): Ast\PhpDoc\PhpDocTagValueNode + { + /** @var Token $name */ + $name = $children[1]; + /** @var Fragment $generic */ + $generic = $children[2]; + $type = $this->attributesAt( + new Ast\Type\GenericTypeNode($this->identifier($name), $generic->a, $generic->b), + $start, + $generic->end, + true, + ); + + switch ($kind) { + case 'extends': + return new Ast\PhpDoc\ExtendsTagValueNode($type, $description); + case 'implements': + return new Ast\PhpDoc\ImplementsTagValueNode($type, $description); + default: + return new Ast\PhpDoc\UsesTagValueNode($type, $description); + } + } + + /** + * @param list $children + */ + private function assertTagValue(array $children, string $description): Ast\PhpDoc\PhpDocTagValueNode + { + $isNegated = false; + $isEquality = false; + $type = null; + $parameter = null; + $member = null; + $isMethod = false; + foreach ($children as $i => $child) { + if ($i === 0) { + continue; + } + + if ($child instanceof TypeNode) { + $type ??= $child; + } elseif ($child instanceof Token) { + $id = $child->id; + if ($type === null) { + if ($id === $this->tNegated) { + $isNegated = true; + } elseif ($id === $this->tEqual) { + $isEquality = true; + } + } elseif ($parameter === null) { + $parameter = $child->value; + } elseif ($id === $this->tOpenParentheses || $id === $this->tOpenParenthesesWs) { + $isMethod = true; + } elseif ($member === null && isset($this->identifiers[$id])) { + $member = $child->value; + } + } + } + + /** @var TypeNode $type */ + /** @var string $parameter */ + if ($member === null) { + return new Ast\PhpDoc\AssertTagValueNode($type, $parameter, $isNegated, $description, $isEquality); + } + + if ($isMethod) { + return new Ast\PhpDoc\AssertTagMethodValueNode($type, $parameter, $member, $isNegated, $description, $isEquality); + } + + return new Ast\PhpDoc\AssertTagPropertyValueNode($type, $parameter, $member, $isNegated, $description, $isEquality); + } + + /** + * @param list $children + */ + protected function reduceMethodParameter(Context $context, $children): Ast\PhpDoc\MethodTagValueParameterNode + { + $type = null; + $isReference = false; + $isVariadic = false; + $name = ''; + $default = null; + foreach (self::children($children) as $child) { + if ($child instanceof TypeNode) { + $type = $child; + } elseif ($child instanceof ConstExprNode) { + $default = $child; + } elseif ($child instanceof Token) { + $id = $child->id; + if ($id === $this->tReference) { + $isReference = true; + } elseif ($id === $this->tVariadic) { + $isVariadic = true; + } elseif ($id === $this->tVariable) { + $name = $child->value; + } + } + } + + return $this->attributes(new Ast\PhpDoc\MethodTagValueParameterNode($type, $isReference, $isVariadic, $name, $default), $context); + } + + /** + * @param list $children + */ + protected function reduceGenericTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + { + $children = self::children($children); + /** @var Token $tag */ + $tag = $children[0]; + $valueStart = $this->nextIndex($tag->offset); + $value = $this->attributesAt(new Ast\PhpDoc\GenericTagValueNode(self::description($children)), $valueStart, self::end($context)); + + return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + { + $children = self::children($children); + /** @var Token $tag */ + $tag = $children[0]; + $valueStart = $this->nextIndex($tag->offset); + + $arguments = []; + $annotationEnd = $valueStart - 1; + foreach ($children as $i => $child) { + if ($child instanceof Doctrine\DoctrineArgument) { + $arguments[] = $child; + } elseif ($i > 0 && $child instanceof Token) { + // the closing parenthesis is the last token of the arguments + $annotationEnd = $child->offset; + } + } + + $annotation = $this->attributesAt(new Doctrine\DoctrineAnnotation($tag->value, $arguments), $valueStart, $annotationEnd); + $value = $this->attributesAt( + new Doctrine\DoctrineTagValueNode($annotation, self::description($children)), + $valueStart, + self::end($context), + ); + + return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + } + + /** + * A tag whose value cannot be read: the rest of its line is its value. + * + * @param list $children + */ + protected function reduceInvalidTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + { + $children = self::children($children); + /** @var Token $tag */ + $tag = $children[0]; + $valueStart = $this->nextIndex($tag->offset); + + $exception = $this->explain(isset($this->tagKinds[$tag->id]) ? 'KnownTag' : 'UnreadTagChild', $tag->offset); + $value = $this->attributesAt( + new Ast\PhpDoc\InvalidTagValueNode(self::description($children), $exception), + $valueStart, + self::end($context), + ); + + return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + } + + /** + * A type alias whose type cannot be read. + * + * @param list $children + */ + protected function reduceInvalidTypeAliasTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + { + $children = self::children($children); + /** @var Token $tag */ + $tag = $children[0]; + /** @var Token $alias */ + $alias = $children[1]; + $typeStart = $this->nextIndex($alias->offset); + if (isset($children[2]) && $children[2] instanceof Token && $children[2]->id === $this->tEqual) { + $typeStart = $this->nextIndex($children[2]->offset); + } + + $exception = $this->explainTypeAlias($typeStart); + $type = $this->attributesAt(new Ast\Type\InvalidTypeNode($exception), $typeStart, self::end($context)); + + $valueStart = $this->nextIndex($tag->offset); + $value = $this->attributesAt(new Ast\PhpDoc\TypeAliasTagValueNode($alias->value, $type), $valueStart, self::end($context)); + + return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + } + + private function explainTypeAlias(int $index): ParserException + { + $state = $this->saveReading(); + try { + if (!$this->parseRule(self::RULES['Type'], $this->position($index), false)) { + return $this->createException($this->failure()); + } + + $last = count($this->indexes) - 1; + + return $this->createExceptionAt($this->indexes[$this->ids[$this->p] !== -1 ? $this->p : $last], Lexer::TOKEN_PHPDOC_EOL); + } finally { + $this->restoreReading($state); + } + } + + // ------------------------------------------------------------------------- + // Doctrine annotations + // ------------------------------------------------------------------------- + + /** + * @param list $children + */ + protected function reduceDoctrineArgument(Context $context, $children): Doctrine\DoctrineArgument + { + $children = self::children($children); + $key = null; + $value = null; + $hasKey = false; + foreach ($children as $child) { + if ($child instanceof Token) { + if ($child->id === $this->tEqual) { + $hasKey = true; + } + } else { + $value = $child; + } + } + + if ($hasKey) { + /** @var Token $name */ + $name = $children[0]; + $key = $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, false, true); + } + + /** @var Doctrine\DoctrineAnnotation|Ast\Type\IdentifierTypeNode|Doctrine\DoctrineArray|ConstExprNode $value */ + return $this->doctrineAttributes(new Doctrine\DoctrineArgument($key, $value), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineNestedAnnotation(Context $context, $children): Doctrine\DoctrineAnnotation + { + $children = self::children($children); + $arguments = []; + foreach ($children as $child) { + if (!$child instanceof Doctrine\DoctrineArgument) { + continue; + } + + $arguments[] = $child; + } + + return $this->doctrineAttributes(new Doctrine\DoctrineAnnotation($children[0]->value, $arguments), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineArray(Context $context, $children): Doctrine\DoctrineArray + { + $items = []; + foreach ($children as $child) { + if (!$child instanceof Doctrine\DoctrineArrayItem) { + continue; + } + + $items[] = $child; + } + + return $this->doctrineAttributes(new Doctrine\DoctrineArray($items), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineArrayItem(Context $context, $children): Doctrine\DoctrineArrayItem + { + $nodes = []; + foreach (self::children($children) as $child) { + if ($child instanceof Token) { + continue; + } + + $nodes[] = $child; + } + + $item = count($nodes) === 2 + ? new Doctrine\DoctrineArrayItem($nodes[0], $nodes[1]) + : new Doctrine\DoctrineArrayItem(null, $nodes[0]); + + return $this->doctrineAttributes($item, $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineArrayKey(Context $context, $children): Node + { + $children = self::children($children); + $first = $children[0]; + if ($first instanceof Node) { + return $first; + } + + if ($first->id === $this->tInteger) { + $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $first->value)); + } else { + $key = $this->stringOrIdentifier($first); + } + + return $this->doctrineAttributes($key, $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineIdentifier(Context $context, $children): Ast\Type\IdentifierTypeNode + { + return $this->doctrineAttributes(new Ast\Type\IdentifierTypeNode(self::children($children)[0]->value), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineConstantFetch(Context $context, $children): ConstExprNode + { + return $this->doctrineAttributes($this->constantFetch(self::children($children)), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineFloat(Context $context, $children): ConstExprNode + { + return $this->doctrineAttributes(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', self::children($children)[0]->value)), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineInteger(Context $context, $children): ConstExprNode + { + return $this->doctrineAttributes(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', self::children($children)[0]->value)), $context); + } + + /** + * @param list $children + */ + protected function reduceDoctrineString(Context $context, $children): ConstExprNode + { + $text = ''; + foreach (self::children($children) as $child) { + $text .= $child->value; + } + + return $this->doctrineAttributes(new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)), $context); + } + +} diff --git a/src/Parser/ConstExprParser.php b/src/Parser/ConstExprParser.php index dd08cfd4..a7e7c6fe 100644 --- a/src/Parser/ConstExprParser.php +++ b/src/Parser/ConstExprParser.php @@ -5,22 +5,20 @@ use PHPStan\PhpDocParser\Ast; use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\ParserConfig; -use function str_replace; -use function strtolower; class ConstExprParser { private ParserConfig $config; - private bool $parseDoctrineStrings; + private AstBuilder $builder; public function __construct( ParserConfig $config ) { $this->config = $config; - $this->parseDoctrineStrings = false; + $this->builder = new AstBuilder($config); } /** @@ -28,202 +26,16 @@ public function __construct( */ public function toDoctrine(): self { - $self = new self($this->config); - $self->parseDoctrineStrings = true; - return $self; + return new self($this->config); } + /** + * @throws ParserException + */ public function parse(TokenIterator $tokens): Ast\ConstExpr\ConstExprNode { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_FLOAT)) { - $value = $tokens->currentTokenValue(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $value)), - $startLine, - $startIndex, - ); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { - $value = $tokens->currentTokenValue(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $value)), - $startLine, - $startIndex, - ); - } - - if ($this->parseDoctrineStrings && $tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { - $value = $tokens->currentTokenValue(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($value)), - $startLine, - $startIndex, - ); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING, Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { - if ($this->parseDoctrineStrings) { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { - throw new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_DOUBLE_QUOTED_STRING, - null, - $tokens->currentTokenLine(), - ); - } - - $value = $tokens->currentTokenValue(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - $this->parseDoctrineString($value, $tokens), - $startLine, - $startIndex, - ); - } - - $value = StringUnescaper::unescapeString($tokens->currentTokenValue()); - $type = $tokens->currentTokenType(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprStringNode( - $value, - $type === Lexer::TOKEN_SINGLE_QUOTED_STRING - ? Ast\ConstExpr\ConstExprStringNode::SINGLE_QUOTED - : Ast\ConstExpr\ConstExprStringNode::DOUBLE_QUOTED, - ), - $startLine, - $startIndex, - ); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { - $identifier = $tokens->currentTokenValue(); - $tokens->next(); - - switch (strtolower($identifier)) { - case 'true': - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprTrueNode(), - $startLine, - $startIndex, - ); - case 'false': - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprFalseNode(), - $startLine, - $startIndex, - ); - case 'null': - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprNullNode(), - $startLine, - $startIndex, - ); - case 'array': - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); - return $this->parseArray($tokens, Lexer::TOKEN_CLOSE_PARENTHESES, $startIndex); - } - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - $classConstantName = ''; - $lastType = null; - while (true) { - if ($lastType !== Lexer::TOKEN_IDENTIFIER && $tokens->currentTokenType() === Lexer::TOKEN_IDENTIFIER) { - $classConstantName .= $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - $lastType = Lexer::TOKEN_IDENTIFIER; - - continue; - } - - if ($lastType !== Lexer::TOKEN_WILDCARD && $tokens->tryConsumeTokenType(Lexer::TOKEN_WILDCARD)) { - $classConstantName .= '*'; - $lastType = Lexer::TOKEN_WILDCARD; - - if ($tokens->getSkippedHorizontalWhiteSpaceIfAny() !== '') { - break; - } - - continue; - } - - if ($lastType === null) { - // trigger parse error if nothing valid was consumed - $tokens->consumeTokenType(Lexer::TOKEN_WILDCARD); - } - - break; - } - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstFetchNode($identifier, $classConstantName), - $startLine, - $startIndex, - ); - - } - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstFetchNode('', $identifier), - $startLine, - $startIndex, - ); - - } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - return $this->parseArray($tokens, Lexer::TOKEN_CLOSE_SQUARE_BRACKET, $startIndex); - } - - throw new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_IDENTIFIER, - null, - $tokens->currentTokenLine(), - ); - } - - private function parseArray(TokenIterator $tokens, int $endToken, int $startIndex): Ast\ConstExpr\ConstExprArrayNode - { - $items = []; - - $startLine = $tokens->currentTokenLine(); - - if (!$tokens->tryConsumeTokenType($endToken)) { - do { - $items[] = $this->parseArrayItem($tokens); - } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA) && !$tokens->isCurrentTokenType($endToken)); - $tokens->consumeTokenType($endToken); - } - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprArrayNode($items), - $startLine, - $startIndex, - ); + /** @var Ast\ConstExpr\ConstExprNode */ + return $this->builder->read($tokens, 'ConstantExpr'); } /** @@ -242,48 +54,4 @@ public function parseDoctrineString(string $text, TokenIterator $tokens): Ast\Co return new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)); } - private function parseArrayItem(TokenIterator $tokens): Ast\ConstExpr\ConstExprArrayItemNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - $expr = $this->parse($tokens); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_DOUBLE_ARROW)) { - $key = $expr; - $value = $this->parse($tokens); - - } else { - $key = null; - $value = $expr; - } - - return $this->enrichWithAttributes( - $tokens, - new Ast\ConstExpr\ConstExprArrayItemNode($key, $value), - $startLine, - $startIndex, - ); - } - - /** - * @template T of Ast\ConstExpr\ConstExprNode - * @param T $node - * @return T - */ - private function enrichWithAttributes(TokenIterator $tokens, Ast\ConstExpr\ConstExprNode $node, int $startLine, int $startIndex): Ast\ConstExpr\ConstExprNode - { - if ($this->config->useLinesAttributes) { - $node->setAttribute(Ast\Attribute::START_LINE, $startLine); - $node->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); - } - - if ($this->config->useIndexAttributes) { - $node->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $node->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); - } - - return $node; - } - } diff --git a/src/Parser/Generated/GeneratedParser.php b/src/Parser/Generated/GeneratedParser.php new file mode 100644 index 00000000..e82a1015 --- /dev/null +++ b/src/Parser/Generated/GeneratedParser.php @@ -0,0 +1,27646 @@ + the identifier of each rule a reading may start at */ + public const RULES = ['PhpDoc' => 0, 'UnreadTagChild' => 10, 'PhpDocChild' => 189, 'KnownTag' => 190, 'Type' => 199, 'ConstantExpr' => 340]; + + /** @var array the identifier of each token */ + public const TOKENS = ['T_HORIZONTAL_WS' => 0, 'T_KEYWORD_CONTRAVARIANT' => 1, 'T_KEYWORD_COVARIANT' => 2, 'T_KEYWORD_NON_EMPTY_ARRAY' => 3, 'T_KEYWORD_NON_EMPTY_LIST' => 4, 'T_KEYWORD_SUPER' => 5, 'T_KEYWORD_OBJECT' => 6, 'T_KEYWORD_ARRAY' => 7, 'T_KEYWORD_LIST' => 8, 'T_KEYWORD_STATIC' => 9, 'T_KEYWORD_FROM' => 10, 'T_KEYWORD_NOT' => 11, 'T_KEYWORD_IS' => 12, 'T_KEYWORD_OF' => 13, 'T_KEYWORD_AS' => 14, 'T_KEYWORD_FALSE' => 15, 'T_KEYWORD_TRUE' => 16, 'T_KEYWORD_NULL' => 17, 'T_KEYWORD_ARRAY_ANY_CASE' => 18, 'T_FLOAT' => 19, 'T_INTEGER' => 20, 'T_SINGLE_QUOTED_STRING' => 21, 'T_DOUBLE_QUOTED_STRING' => 22, 'T_DOCTRINE_ANNOTATION_STRING' => 23, 'T_IDENTIFIER' => 24, 'T_THIS_VARIABLE' => 25, 'T_VARIABLE' => 26, 'T_REFERENCE' => 27, 'T_UNION' => 28, 'T_INTERSECTION' => 29, 'T_NULLABLE' => 30, 'T_NEGATED' => 31, 'T_OPEN_PARENTHESES' => 32, 'T_CLOSE_PARENTHESES' => 33, 'T_OPEN_ANGLE_BRACKET' => 34, 'T_CLOSE_ANGLE_BRACKET' => 35, 'T_OPEN_SQUARE_BRACKET' => 36, 'T_CLOSE_SQUARE_BRACKET' => 37, 'T_OPEN_CURLY_BRACKET' => 38, 'T_CLOSE_CURLY_BRACKET' => 39, 'T_COMMA' => 40, 'T_COMMENT' => 41, 'T_VARIADIC' => 42, 'T_DOUBLE_COLON' => 43, 'T_DOUBLE_ARROW' => 44, 'T_ARROW' => 45, 'T_EQUAL' => 46, 'T_COLON' => 47, 'T_WILDCARD' => 48, 'T_OPEN_PHPDOC' => 49, 'T_CLOSE_PHPDOC' => 50, 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE' => 51, 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE' => 52, 'T_TAG_PURE_UNLESS_PARAMETER_PASSED' => 53, 'T_TAG_PARAM_LATER_INVOKED_CALLABLE' => 54, 'T_TAG_PARAM_CLOSURE_THIS' => 55, 'T_TAG_REQUIRE_IMPLEMENTS' => 56, 'T_TAG_REQUIRE_EXTENDS' => 57, 'T_TAG_TYPE_ALIAS_IMPORT' => 58, 'T_TAG_ASSERT' => 59, 'T_TAG_SELF_OUT' => 60, 'T_TAG_SEALED' => 61, 'T_TAG_TEMPLATE' => 62, 'T_TAG_PROPERTY' => 63, 'T_TAG_IMPLEMENTS' => 64, 'T_TAG_DEPRECATED' => 65, 'T_TAG_TYPE_ALIAS' => 66, 'T_TAG_PARAM_OUT' => 67, 'T_TAG_EXTENDS' => 68, 'T_TAG_METHOD' => 69, 'T_TAG_RETURN' => 70, 'T_TAG_THROWS' => 71, 'T_TAG_PARAM' => 72, 'T_TAG_MIXIN' => 73, 'T_TAG_USE' => 74, 'T_TAG_VAR' => 75, 'T_PHPDOC_TAG_WS' => 76, 'T_PHPDOC_TAG' => 77, 'T_DOCTRINE_TAG_WS' => 78, 'T_DOCTRINE_TAG' => 79, 'T_PHPDOC_EOL' => 80, 'T_OTHER' => 81, 'T_OPEN_PARENTHESES_WS' => 82, 'T_OPEN_CURLY_BRACKET_WS' => 83, 'T_OPEN_SQUARE_BRACKET_WS' => 84, 'T_WILDCARD_WS' => 85, 'T_OPEN_ANGLE_BRACKET_HTML' => 86]; + + /** @var array the name each token is expected by */ + public const EXPECTATIONS = ['T_HORIZONTAL_WS', 'T_KEYWORD_CONTRAVARIANT', 'T_KEYWORD_COVARIANT', 'T_KEYWORD_NON_EMPTY_ARRAY', 'T_KEYWORD_NON_EMPTY_LIST', 'T_KEYWORD_SUPER', 'T_KEYWORD_OBJECT', 'T_KEYWORD_ARRAY', 'T_KEYWORD_LIST', 'T_KEYWORD_STATIC', 'T_KEYWORD_FROM', 'T_KEYWORD_NOT', 'T_KEYWORD_IS', 'T_KEYWORD_OF', 'T_KEYWORD_AS', 'T_KEYWORD_FALSE', 'T_KEYWORD_TRUE', 'T_KEYWORD_NULL', 'T_KEYWORD_ARRAY_ANY_CASE', 'T_FLOAT', 'T_INTEGER', 'T_SINGLE_QUOTED_STRING', 'T_DOUBLE_QUOTED_STRING', 'T_DOCTRINE_ANNOTATION_STRING', 'T_IDENTIFIER', 'T_THIS_VARIABLE', 'T_VARIABLE', 'T_REFERENCE', 'T_UNION', 'T_INTERSECTION', 'T_NULLABLE', 'T_NEGATED', 'T_OPEN_PARENTHESES', 'T_CLOSE_PARENTHESES', 'T_OPEN_ANGLE_BRACKET', 'T_CLOSE_ANGLE_BRACKET', 'T_OPEN_SQUARE_BRACKET', 'T_CLOSE_SQUARE_BRACKET', 'T_OPEN_CURLY_BRACKET', 'T_CLOSE_CURLY_BRACKET', 'T_COMMA', 'T_COMMENT', 'T_VARIADIC', 'T_DOUBLE_COLON', 'T_DOUBLE_ARROW', 'T_ARROW', 'T_EQUAL', 'T_COLON', 'T_WILDCARD', 'T_OPEN_PHPDOC', 'T_CLOSE_PHPDOC', 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE', 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE', 'T_TAG_PURE_UNLESS_PARAMETER_PASSED', 'T_TAG_PARAM_LATER_INVOKED_CALLABLE', 'T_TAG_PARAM_CLOSURE_THIS', 'T_TAG_REQUIRE_IMPLEMENTS', 'T_TAG_REQUIRE_EXTENDS', 'T_TAG_TYPE_ALIAS_IMPORT', 'T_TAG_ASSERT', 'T_TAG_SELF_OUT', 'T_TAG_SEALED', 'T_TAG_TEMPLATE', 'T_TAG_PROPERTY', 'T_TAG_IMPLEMENTS', 'T_TAG_DEPRECATED', 'T_TAG_TYPE_ALIAS', 'T_TAG_PARAM_OUT', 'T_TAG_EXTENDS', 'T_TAG_METHOD', 'T_TAG_RETURN', 'T_TAG_THROWS', 'T_TAG_PARAM', 'T_TAG_MIXIN', 'T_TAG_USE', 'T_TAG_VAR', 'T_PHPDOC_TAG_WS', 'T_PHPDOC_TAG', 'T_DOCTRINE_TAG_WS', 'T_DOCTRINE_TAG', 'T_PHPDOC_EOL', 'T_OTHER', 'T_OPEN_PARENTHESES_WS', 'T_OPEN_CURLY_BRACKET_WS', 'T_OPEN_SQUARE_BRACKET_WS', 'T_WILDCARD_WS', 'T_OPEN_ANGLE_BRACKET_HTML', '/[^\\s]++/']; + + private const T00b73ddb = [7=>true,15=>true,16=>true,17=>true,18=>true]; + private const T02ca7bff = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,32=>true,34=>true,82=>true,86=>true]; + private const T042ccaad = [50=>true,80=>true]; + private const T05cf281c = [1=>true,2=>true]; + private const T1ad6c327 = [7=>true,18=>true]; + private const T1e2ed78c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,22=>true,23=>true,24=>true,38=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,83=>true]; + private const T1e81050f = [7=>true,18=>true,36=>true,84=>true]; + private const T3bf4df75 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; + private const T7dfbf2bf = [22=>true,23=>true]; + private const T24d0f25b = [21=>true,22=>true]; + private const T29c7f960 = [25=>true,26=>true]; + private const T34c34eee = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,30=>true,32=>true,82=>true]; + private const T46ee5f48 = [78=>true,79=>true]; + private const T50fd39f8 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,42=>true,82=>true]; + private const T69bf8cc4 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,36=>true,84=>true]; + private const T83e30518 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true]; + private const T553dc07b = [26=>true,27=>true,42=>true]; + private const T648acf56 = [28=>true,29=>true,32=>true,34=>true,36=>true,41=>true,43=>true,80=>true,82=>true,84=>true]; + private const T796d0ca3 = [50=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; + private const T885cd349 = [36=>true,84=>true]; + private const T977f027a = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,32=>true,82=>true]; + private const T1490fe7f = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,38=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,83=>true]; + private const T4020d016 = [3=>true,4=>true,6=>true,7=>true,8=>true]; + private const T4546fd6c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true]; + private const T5448ab4c = [41=>true,80=>true]; + private const T7680fe2e = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,82=>true]; + private const T7726a0df = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,20=>true,21=>true,22=>true,23=>true,24=>true]; + private const T8458d590 = [28=>true,29=>true,41=>true,80=>true]; + private const T34048a70 = [38=>true,83=>true]; + private const T52939f91 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,49=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; + private const T942497bd = [76=>true,77=>true,78=>true,79=>true]; + private const T1895157b = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,48=>true,85=>true]; + private const T1921405e = [1=>true,2=>true,5=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true]; + private const T9373805c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; + private const T88030367 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,49=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; + private const T96867045 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,24=>true]; + private const Ta8d79561 = [3=>true,4=>true,8=>true]; + private const Ta7068161 = [46=>true,47=>true]; + private const Tb3a20a39 = [76=>true,78=>true]; + private const Tb46fb4f7 = [34=>true,86=>true]; + private const Tba8cd23a = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,48=>true,82=>true,85=>true]; + private const Tc8c984b6 = [28=>true,29=>true]; + private const Tc8cfa1df = [32=>true,82=>true]; + private const Tcd64b9c0 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,26=>true,30=>true,32=>true,82=>true]; + private const Tce49e0fc = [51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true]; + private const Tce797685 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,20=>true,21=>true,22=>true,24=>true]; + private const Td08a6883 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,24=>true]; + private const Td8017923 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,21=>true,22=>true,24=>true]; + private const Tf4b693bf = [51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; + private const Tf6aec6a4 = [76=>true,77=>true]; + private const Tf80a1c64 = [48=>true,85=>true]; + private const Tf86de613 = [32=>true,34=>true,82=>true,86=>true]; + private const Tfc0ac6dd = [3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,82=>true]; + + /** the tokens each rule is expected to begin with */ + private const EXPECTED = [0=>[49],1=>[49],3=>[80],7=>[50],8=>[76,77,78,79],9=>[76,77,78,79],10=>[76,77,78,79],11=>[76,77],12=>[76,77],13=>[77],14=>[76],16=>[32,82],17=>[32],18=>[82],21=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,81,82,83,84,85,86],22=>[24],23=>[12],24=>[11],25=>[9],26=>[10],27=>[13],28=>[14],29=>[5],30=>[2],31=>[1],32=>[7],33=>[18],34=>[8],35=>[3],36=>[4],37=>[6],38=>[16],39=>[15],40=>[17],41=>[19],42=>[20],43=>[21],44=>[22],45=>[23],46=>[25],47=>[26],48=>[27],49=>[28],50=>[29],51=>[30],52=>[31],53=>[33],54=>[34],55=>[86],56=>[35],57=>[36],58=>[84],59=>[37],60=>[38],61=>[83],62=>[39],63=>[40],64=>[41],65=>[42],66=>[43],67=>[44],68=>[45],69=>[46],70=>[47],71=>[48],72=>[85],73=>[81],74=>[76,78],76=>[50,80],77=>[50,80],78=>[80],79=>[80],81=>[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],82=>[79],83=>[78],84=>[72],85=>[51],86=>[54],87=>[55],88=>[52],89=>[53],90=>[75],91=>[70],92=>[71],93=>[73],94=>[57],95=>[56],96=>[61],97=>[65],98=>[63],99=>[69],100=>[62],101=>[68],102=>[64],103=>[74],104=>[66],105=>[58],106=>[59],107=>[60],108=>[67],109=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,81,82,83,84,85,86],110=>[80],111=>[80],113=>[80],114=>[80],115=>[80],116=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],118=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],119=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],121=>[76,78],123=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],124=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],128=>[80],129=>[80],130=>[80],131=>[80],132=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],133=>[76,78],134=>[76,77,78,79],135=>[78,79],136=>[78,79],137=>[32,82],138=>[32,82],141=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],142=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],143=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],144=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],145=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],146=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],148=>[38,83],149=>[38,83],151=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],152=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],153=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],154=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],155=>[22,23],156=>[22],158=>[22,23],159=>[22,23],160=>[1,2,3,4,5,6,8,9,10,11,12,13,14,24],162=>[7,15,16,17,18],163=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,48,85],164=>[48],166=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],168=>[48,85],169=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],171=>[46,47],172=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],173=>[19],174=>[20],176=>[40],177=>[40],178=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,39,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],179=>[39],180=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],182=>[40],183=>[40],184=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,33,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],185=>[33],186=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],187=>[76,77],189=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],190=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],191=>[72],192=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,30,32,42,82],193=>[26,27,42],194=>[26,27,42],195=>[26,27,42],198=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],199=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],200=>[30],201=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],202=>[32,82],204=>[41,80],205=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,30,32,82],206=>[26],208=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],209=>[12],210=>[12],213=>[28,29],214=>[28],215=>[28],216=>[28],218=>[29],219=>[29],220=>[29],223=>[36,84],224=>[36,84],225=>[36],227=>[36,84],228=>[36,84],229=>[25],230=>[7],231=>[38],233=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],234=>[42],235=>[34,86],236=>[34,86],237=>[34,86],238=>[34,86],240=>[40],243=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],244=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],245=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],246=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],247=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],249=>[43],252=>[40],254=>[41],255=>[3,4,8],256=>[3,4,8],257=>[38],259=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],260=>[42],261=>[34,86],262=>[34,86],263=>[34,86],264=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],266=>[40],267=>[6],268=>[38],270=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],271=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],272=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],274=>[40],275=>[40],276=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,39],277=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],278=>[3,4,6,7,8],279=>[3,4,6,7,8],281=>[32,34,36,82,84],282=>[34],283=>[34],284=>[34],285=>[34],286=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],287=>[13,14],288=>[13],289=>[14],293=>[5],294=>[5],296=>[46],297=>[46],300=>[40],301=>[40],302=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,35],303=>[35],304=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],306=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],307=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],311=>[40],312=>[40],313=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,33,82],314=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],315=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],316=>[32,82],317=>[3,4,6,7,8],318=>[34,36,84,86],319=>[34,86],320=>[34,86],321=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,48,82,85],322=>[1,2],323=>[1,2],324=>[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],327=>[40],328=>[40],329=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,35,48,82,85],330=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,48,82,85],331=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],332=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],333=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],335=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],337=>[7,18,36,84],338=>[7,18],339=>[7,18],340=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],341=>[19],342=>[20],343=>[21,22],344=>[16],345=>[15],346=>[17],347=>[7,18],349=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],350=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],351=>[44],352=>[44],355=>[40],356=>[40],357=>[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,24],360=>[43],361=>[36,84],362=>[34],363=>[34],364=>[32,82],366=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],367=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],368=>[28,29,41,80],369=>[28,29,41,80],370=>[28,29],371=>[28],372=>[28],373=>[28],376=>[28],377=>[29],378=>[29],379=>[29],382=>[29],384=>[75],385=>[25,26],386=>[25,26],387=>[25,26],390=>[70],391=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],392=>[71],393=>[73],394=>[57],395=>[56],396=>[61],397=>[60],398=>[63],399=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],400=>[67],401=>[55],402=>[51],403=>[26],404=>[54],405=>[52],406=>[53],407=>[65],408=>[69],409=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],410=>[9],412=>[28,29,32,34,36,41,43,80,82,84],413=>[28,29,41,80],414=>[28,29],415=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,32,34,82,86],416=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],417=>[32,34,82,86],418=>[34,86],419=>[34,86],421=>[40],422=>[40],424=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],425=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],426=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],427=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],428=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],429=>[46],430=>[46],431=>[26,27,42],433=>[40],434=>[40],435=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],436=>[62],437=>[68],438=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],439=>[64],440=>[74],441=>[66],442=>[66],443=>[58],444=>[14],445=>[14],446=>[59],448=>[25,26],449=>[45],450=>[45],451=>[32,82],452=>[32,82],454=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],458=>[50,80],459=>[50]]; + + /** @var array the identifier of the token at each position, the last one being -1 */ + protected array $ids = []; + + /** the position the reading is at */ + protected int $p = 0; + + /** @var array the values built, as a stack */ + protected array $v = []; + + /** the size of the stack of values */ + protected int $n = 0; + + /** @var array the comments read and not given to any node yet, by their index */ + protected array $comments = []; + + /** the furthest position a failure has been recorded at */ + private int $f = -1; + + /** @var list the rules recorded as failed at the furthest position */ + private array $er = []; + + abstract protected function token(int $position): Token; + + /** + * The context of whatever has been read from the given position up to the + * given one, or up to the position the reading is at. + */ + abstract protected function context(int $from, ?int $to = null): Context; + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceSubType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceNullable(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceAtomic(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceCallableReturnType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceArrayOrOffsetAccessItem(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceGeneric(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceGenericInReturnType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceGenericArgument(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceCallable(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceCallableWithTemplates(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceCallableTemplateArgument(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceCallableParameter(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceArrayShape(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceListShape(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceArrayShapeUnsealedType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceListShapeUnsealedType(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceArrayShapeItem(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceArrayShapeKey(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceObjectShape(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceObjectShapeItem(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceObjectShapeKey(Context $context, $children); + + /** + * @return mixed + */ + abstract protected function reduceDiscardedComment(Context $context); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantFloat(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantInteger(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantString(Context $context, $children); + + /** + * @return mixed + */ + abstract protected function reduceConstantTrue(Context $context); + + /** + * @return mixed + */ + abstract protected function reduceConstantFalse(Context $context); + + /** + * @return mixed + */ + abstract protected function reduceConstantNull(Context $context); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantArrayLiteral(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantArrayShorthand(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantArrayItem(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceConstantFetch(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reducePhpDoc(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceTextChild(Context $context, $children); + + /** + * @return mixed + */ + abstract protected function reduceText(Context $context); + + /** + * @return mixed + */ + abstract protected function reduceDoctrineText(Context $context); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceKnownTag(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceMethodParameter(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceGenericTag(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineTag(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceInvalidTag(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceInvalidTypeAliasTag(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineArgument(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineNestedAnnotation(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineArray(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineArrayItem(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineArrayKey(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineIdentifier(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineConstantFetch(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineFloat(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineInteger(Context $context, $children); + + /** + * @param list $children + * @return mixed + */ + abstract protected function reduceDoctrineString(Context $context, $children); + + /** + * Where the last reading has failed, along with the tokens expected there. + * + * @return array{int, list} + */ + protected function failure(): array + { + if ($this->f === -1 || $this->f < $this->p) { + return [$this->p, []]; + } + + $expected = []; + foreach ($this->er as $rule) { + foreach (self::EXPECTED[$rule] ?? [] as $token) { + $expected[$token] = true; + } + } + + ksort($expected); + + return [$this->f, array_keys($expected)]; + } + + /** + * Saves the state of the reading, so that a reading may be started in the + * middle of another one. + * + * @return array{int, int, list} + */ + protected function saveReading(): array + { + return [$this->p, $this->f, $this->er]; + } + + /** + * @param array{int, int, list} $state + */ + protected function restoreReading(array $state): void + { + [$this->p, $this->f, $this->er] = $state; + } + + private function rec(int $rule): void + { + $position = $this->p; + if ($position > $this->f) { + $this->f = $position; + $this->er = [$rule]; + return; + } + + if ($position !== $this->f || isset($this->er[3])) { + return; + } + + $this->er[] = $rule; + } + + /** + * The values pushed since the given size, the lists among them flattened. + * + * @return list + */ + private function merge(int $from): array + { + $result = []; + for ($i = $from, $n = $this->n; $i < $n; $i++) { + $value = $this->v[$i]; + if (!is_array($value)) { + $result[] = $value; + continue; + } + + foreach ($value as $nested) { + $result[] = $nested; + } + } + + return $result; + } + + /** + * Reads the given rule from the given position. + * + * @phpstan-impure + */ + protected function parseRule(int $rule, int $position, bool $build): bool + { + $this->p = $position; + $this->f = -1; + $this->er = []; + + switch ($rule) { + case 0: // PhpDoc + return $build ? $this->b0() : $this->s0(); + case 10: // UnreadTagChild + return $build ? $this->b10() : $this->s10(); + case 189: // PhpDocChild + return $build ? $this->b189() : $this->s189(); + case 190: // KnownTag + return $build ? $this->b190() : $this->s190(); + case 199: // Type + return $build ? $this->b199() : $this->s199(); + case 340: // ConstantExpr + return $build ? $this->b340() : $this->s340(); + default: + throw new \LogicException('Not an entrypoint: ' . $rule); + } + } + + private function b0(): bool + { + if (!($this->ids[$this->p] === 49)) { + if ($this->p > $this->f) { + $this->rec(0); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 49)) { + if ($this->p >= $this->f) { + $this->rec(1); + } + + goto f1;} + + $this->p++; + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + if (!$this->b5()) { + goto n2;} + n2: + if (!($this->ids[$this->p] === 50)) { + if ($this->p >= $this->f) { + $this->rec(7); + } + + goto f1;} + + $this->p++; + goto k1; + f1: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1: + $this->v[$m1] = $this->reducePhpDoc($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b5(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f200;} + } + if (!$this->b8()) { + goto f200;} + // b460 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + // b461 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f203;} + } + if (!$this->b8()) { + goto f203;} + goto k203; + f203: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto e202; + k203: + if ($this->p === $b2) { + goto e202; + } + } + e202: + goto k200; + f200: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k200: + + return true; + } + + private function b8(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b188 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b189()) { + goto f461;} + // b458 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + if (!($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->rec(7); + } + + goto n464;} + goto a463; + n464: + break; + case 80: + $this->p++; + goto a463; + break; + } + + if ($this->p > $this->f) { + $this->rec(458); + } + + goto f462; + a463: + goto k462; + f462: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f461; + k462: + goto k461; + f461: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n460; + k461: + goto a459; + n460: + break; + case 76: + case 77: + case 78: + case 79: + // b9 + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(9); + } + + goto n465;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b10()) { + goto f466;} + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + goto k466; + f466: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n465; + k466: + goto a459; + n465: + // b188 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b189()) { + goto f468;} + // b458 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + if (!($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->rec(7); + } + + goto n471;} + goto a470; + n471: + break; + case 80: + $this->p++; + goto a470; + break; + } + + if ($this->p > $this->f) { + $this->rec(458); + } + + goto f469; + a470: + goto k469; + f469: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f468; + k469: + goto k468; + f468: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n467; + k468: + goto a459; + n467: + break; + } + + if ($this->p > $this->f) { + $this->rec(8); + } + + goto f458; + a459: + goto k458; + f458: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k458: + + return true; + } + + private function b10(): bool + { + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(10); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + if (!$this->b11()) { + goto n11;} + goto a10; + n11: + if (!$this->b134()) { + goto n12;} + goto a10; + n12: + break; + case 78: + case 79: + if (!$this->b134()) { + goto n13;} + goto a10; + n13: + break; + } + + if ($this->p > $this->f) { + $this->rec(10); + } + + goto f9; + a10: + goto k9; + f9: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k9: + + return true; + } + + private function b11(): bool + { + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(11); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(12); + } + + goto f218;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f218;} + } + // b19 + $o2 = $this->p; + // s19 + $o3 = $this->p; + // s20 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(21); + } + + goto e222; + } + + $this->p++; + } + e222: + if (!$this->s74()) { + goto f220;} + goto k220; + f220: + $this->p = $o3; + goto f218; + k220: + $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); + goto k218; + f218: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k218: + $this->v[$m1] = $this->reduceGenericTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b125(): bool + { + $o1 = $this->p; + // s125 + $o2 = $this->p; + // s126 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(116); + } + + goto e255; + } + + $this->p++; + } + e255: + if (($this->ids[$this->p] === 80)) { + if (!$this->s128()) { + goto n256;} + n256: + } elseif ($this->p > $this->f) { + $this->rec(128); + } + $this->v[$this->n++] = $this->reduceText($this->context($o1)); + + return true; + } + + private function b134(): bool + { + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(134); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + if (!$this->b187()) { + goto n225;} + goto a224; + n225: + break; + case 78: + case 79: + if (!$this->b135()) { + goto n226;} + goto a224; + n226: + break; + } + + if ($this->p > $this->f) { + $this->rec(134); + } + + goto f223; + a224: + goto k223; + f223: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k223: + $this->v[$m1] = $this->reduceDoctrineTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b135(): bool + { + if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(135); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(136); + } + + goto f477;} + + $this->v[$this->n++] = $this->token($this->p++); + // b137 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n480;} + goto a479; + n480: + break; + case 32: + case 82: + if (!$this->b138()) { + goto n481;} + goto a479; + n481: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n482;} + goto a479; + n482: + break; + } + + if ($this->p > $this->f) { + $this->rec(137); + } + + goto f478; + a479: + goto k478; + f478: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f477; + k478: + // b19 + $o2 = $this->p; + // s19 + $o3 = $this->p; + // s20 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(21); + } + + goto e486; + } + + $this->p++; + } + e486: + if (!$this->s74()) { + goto f484;} + goto k484; + f484: + $this->p = $o3; + goto f477; + k484: + $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); + goto k477; + f477: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k477: + + return true; + } + + private function b138(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(138); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f731;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e733; + } + + $this->p++; + } + e733: + if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { + // b141 + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(141); + } + + goto n734;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b142()) { + goto f735;} + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e737; + } + + $this->p++; + } + e737: + if (($this->ids[$this->p] === 40)) { + if (!$this->b182()) { + goto n738;} + n738: + } elseif ($this->p > $this->f) { + $this->rec(182); + } + goto k735; + f735: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n734; + k735: + n734: + } elseif ($this->p > $this->f) { + $this->rec(141); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f731;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k731; + f731: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k731: + + return true; + } + + private function b142(): bool + { + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(142); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + // b146 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + goto n979;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f980;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n981;} + n981: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k980; + f980: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n979; + k980: + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a978; + n979: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->b143()) { + goto n982;} + goto a978; + n982: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n983;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f984;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f984;} + } + goto k984; + f984: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n983; + k984: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a978; + n983: + if (!$this->b160()) { + goto n985;} + goto a978; + n985: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + if (!$this->b143()) { + goto n986;} + goto a978; + n986: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n987;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f988;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f988;} + } + goto k988; + f988: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n987; + k988: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a978; + n987: + break; + case 22: + case 23: + // b155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n989;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->b156()) { + goto n992;} + goto a991; + n992: + break; + case 23: + $this->v[$this->n++] = $this->token($this->p++); + goto a991; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f990; + a991: + goto k990; + f990: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n989; + k990: + $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a978; + n989: + break; + case 38: + case 83: + if (!$this->b148()) { + goto n993;} + goto a978; + n993: + break; + case 19: + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a978; + break; + case 20: + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a978; + break; + } + + if ($this->p > $this->f) { + $this->rec(142); + } + + goto f977; + a978: + goto k977; + f977: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k977: + $this->v[$m1] = $this->reduceDoctrineArgument($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b143(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(143); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1290;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1292; + } + + $this->p++; + } + e1292: + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f1290;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1294; + } + + $this->p++; + } + e1294: + if (!$this->b145()) { + goto f1290;} + goto k1290; + f1290: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1290: + + return true; + } + + private function b145(): bool + { + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(145); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + // b146 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + goto n1580;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f1581;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n1582;} + n1582: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k1581; + f1581: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1580; + k1581: + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1579; + n1580: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1583;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1584;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1584;} + } + goto k1584; + f1584: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1583; + k1584: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1579; + n1583: + if (!$this->b160()) { + goto n1585;} + goto a1579; + n1585: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1586;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1587;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1587;} + } + goto k1587; + f1587: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1586; + k1587: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1579; + n1586: + break; + case 22: + case 23: + // b155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1588;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->b156()) { + goto n1591;} + goto a1590; + n1591: + break; + case 23: + $this->v[$this->n++] = $this->token($this->p++); + goto a1590; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1589; + a1590: + goto k1589; + f1589: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1588; + k1589: + $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1579; + n1588: + break; + case 38: + case 83: + if (!$this->b148()) { + goto n1592;} + goto a1579; + n1592: + break; + case 19: + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a1579; + break; + case 20: + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a1579; + break; + } + + if ($this->p > $this->f) { + $this->rec(145); + } + + goto f1578; + a1579: + goto k1578; + f1578: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1578: + + return true; + } + + private function b148(): bool + { + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(148); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(149); + } + + goto f1300;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1302; + } + + $this->p++; + } + e1302: + if (isset(self::T1490fe7f[$this->ids[$this->p]])) { + // b151 + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(151); + } + + goto n1303;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b152()) { + goto f1304;} + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1306; + } + + $this->p++; + } + e1306: + if (($this->ids[$this->p] === 40)) { + if (!$this->b176()) { + goto n1307;} + n1307: + } elseif ($this->p > $this->f) { + $this->rec(176); + } + goto k1304; + f1304: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1303; + k1304: + n1303: + } elseif ($this->p > $this->f) { + $this->rec(151); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f1300;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1300; + f1300: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1300: + $this->v[$m1] = $this->reduceDoctrineArray($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b152(): bool + { + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(152); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + // b146 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + goto n1595;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f1596;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n1597;} + n1597: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k1596; + f1596: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1595; + k1596: + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1594; + n1595: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->b153()) { + goto n1598;} + goto a1594; + n1598: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1599;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1600;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1600;} + } + goto k1600; + f1600: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1599; + k1600: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1594; + n1599: + if (!$this->b160()) { + goto n1601;} + goto a1594; + n1601: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + if (!$this->b153()) { + goto n1602;} + goto a1594; + n1602: + // b172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1603;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1604;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1604;} + } + goto k1604; + f1604: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1603; + k1604: + $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1594; + n1603: + break; + case 22: + case 23: + if (!$this->b153()) { + goto n1605;} + goto a1594; + n1605: + // b155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1606;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->b156()) { + goto n1609;} + goto a1608; + n1609: + break; + case 23: + $this->v[$this->n++] = $this->token($this->p++); + goto a1608; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1607; + a1608: + goto k1607; + f1607: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1606; + k1607: + $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1594; + n1606: + break; + case 38: + case 83: + if (!$this->b148()) { + goto n1610;} + goto a1594; + n1610: + break; + case 19: + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a1594; + break; + case 20: + if (!$this->b153()) { + goto n1611;} + goto a1594; + n1611: + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a1594; + break; + case 21: + if (!$this->b153()) { + goto n1612;} + goto a1594; + n1612: + break; + } + + if ($this->p > $this->f) { + $this->rec(152); + } + + goto f1593; + a1594: + goto k1593; + f1593: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1593: + $this->v[$m1] = $this->reduceDoctrineArrayItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b153(): bool + { + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b154()) { + goto f1735;} + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1737; + } + + $this->p++; + } + e1737: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1735;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1739; + } + + $this->p++; + } + e1739: + if (!$this->b145()) { + goto f1735;} + goto k1735; + f1735: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1735: + + return true; + } + + private function b154(): bool + { + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(154); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->b160()) { + goto n1780;} + goto a1779; + n1780: + // b169 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(169); + } + + goto n1781;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1782;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1782;} + } + goto k1782; + f1782: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1781; + k1782: + goto a1779; + n1781: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + // b169 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(169); + } + + goto n1783;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1784;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1784;} + } + goto k1784; + f1784: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1783; + k1784: + goto a1779; + n1783: + break; + case 22: + case 23: + // b155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1785;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->b156()) { + goto n1788;} + goto a1787; + n1788: + break; + case 23: + $this->v[$this->n++] = $this->token($this->p++); + goto a1787; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1786; + a1787: + goto k1786; + f1786: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1785; + k1786: + $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1779; + n1785: + break; + case 20: + $this->v[$this->n++] = $this->token($this->p++); + goto a1779; + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a1779; + break; + } + + if ($this->p > $this->f) { + $this->rec(154); + } + + goto f1778; + a1779: + goto k1778; + f1778: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1778: + $this->v[$m1] = $this->reduceDoctrineArrayKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b156(): bool + { + if (!($this->ids[$this->p] === 22)) { + if ($this->p > $this->f) { + $this->rec(156); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 22)) { + if ($this->p >= $this->f) { + $this->rec(44); + } + + goto f1296;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + // b158 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(158); + } + + goto n1297;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(159); + } + + goto e1299; + } + + $this->v[$this->n++] = $this->token($this->p++); + + $k2++; + } + e1299: + + if ($k2 < 1) { + goto f1298; + } + goto k1298; + f1298: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1297; + k1298: + n1297: + } elseif ($this->p > $this->f) { + $this->rec(158); + } + goto k1296; + f1296: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1296: + + return true; + } + + private function b160(): bool + { + if (!isset(self::T96867045[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(160); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1295;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1295;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1295;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b163()) { + goto f1295;} + goto k1295; + f1295: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1295: + $this->v[$m1] = $this->reduceDoctrineConstantFetch($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b163(): bool + { + if (!isset(self::T1895157b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(163); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // b166 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + goto n709;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f710;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!$this->b168()) { + goto n711;} + n711: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + goto k710; + f710: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n709; + k710: + goto a708; + n709: + break; + case 48: + // b164 + if (!($this->ids[$this->p] === 48)) { + if ($this->p > $this->f) { + $this->rec(164); + } + + goto n712;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 48)) { + if ($this->p >= $this->f) { + $this->rec(71); + } + + goto f713;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->b166()) { + goto n714;} + n714: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto k713; + f713: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n712; + k713: + goto a708; + n712: + break; + case 85: + $this->v[$this->n++] = $this->token($this->p++); + goto a708; + break; + } + + if ($this->p > $this->f) { + $this->rec(163); + } + + goto f707; + a708: + goto k707; + f707: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k707: + + return true; + } + + private function b164(): bool + { + if (!($this->ids[$this->p] === 48)) { + if ($this->p > $this->f) { + $this->rec(164); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 48)) { + if ($this->p >= $this->f) { + $this->rec(71); + } + + goto f1286;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->b166()) { + goto n1287;} + n1287: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto k1286; + f1286: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1286: + + return true; + } + + private function b166(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f952;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!$this->b168()) { + goto n953;} + n953: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + goto k952; + f952: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k952: + + return true; + } + + private function b168(): bool + { + if (!isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(168); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 48: + if (!$this->b164()) { + goto n951;} + goto a950; + n951: + break; + case 85: + $this->v[$this->n++] = $this->token($this->p++); + goto a950; + break; + } + + if ($this->p > $this->f) { + $this->rec(168); + } + + goto f949; + a950: + goto k949; + f949: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k949: + + return true; + } + + private function b176(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(176); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(177); + } + + goto e1614; + } + + // b177 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(177); + } + + goto e1614;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1615;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1617; + } + + $this->p++; + } + e1617: + if (!$this->b178()) { + goto f1615;} + goto k1615; + f1615: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1614; + k1615: + if ($this->p === $b1) { + $k1 = 1; + goto e1614; + } + + $k1++; + } + e1614: + + if ($k1 < 1) { + goto f1613; + } + goto k1613; + f1613: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1613: + + return true; + } + + private function b178(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b180 + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(180); + } + + goto n1742;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b152()) { + goto f1743;} + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1745; + } + + $this->p++; + } + e1745: + goto k1743; + f1743: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1742; + k1743: + goto a1741; + n1742: + break; + case 0: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 80: + case 81: + case 82: + case 84: + case 85: + case 86: + case -1: + break; + case 39: + if (!($this->ids[$this->p] === 39)) { + if ($this->p > $this->f) { + $this->rec(62); + } + + goto n1746;} + goto a1741; + n1746: + break; + } + + if ($this->p > $this->f) { + $this->rec(178); + } + + goto f1740; + a1741: + goto k1740; + f1740: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1740: + + return true; + } + + private function b182(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(182); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(183); + } + + goto e995; + } + + // b183 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(183); + } + + goto e995;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f996;} + + $this->v[$this->n++] = $this->token($this->p++); + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e998; + } + + $this->p++; + } + e998: + if (!$this->b184()) { + goto f996;} + goto k996; + f996: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e995; + k996: + if ($this->p === $b1) { + $k1 = 1; + goto e995; + } + + $k1++; + } + e995: + + if ($k1 < 1) { + goto f994; + } + goto k994; + f994: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k994: + + return true; + } + + private function b184(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b186 + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(186); + } + + goto n1310;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b142()) { + goto f1311;} + // b139 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1313; + } + + $this->p++; + } + e1313: + goto k1311; + f1311: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1310; + k1311: + goto a1309; + n1310: + break; + case 0: + case 21: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 80: + case 81: + case 82: + case 84: + case 85: + case 86: + case -1: + break; + case 33: + if (!($this->ids[$this->p] === 33)) { + if ($this->p > $this->f) { + $this->rec(53); + } + + goto n1314;} + goto a1309; + n1314: + break; + } + + if ($this->p > $this->f) { + $this->rec(184); + } + + goto f1308; + a1309: + goto k1308; + f1308: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1308: + + return true; + } + + private function b187(): bool + { + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(187); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(12); + } + + goto f472;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b138()) { + goto f472;} + // b19 + $o2 = $this->p; + // s19 + $o3 = $this->p; + // s20 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(21); + } + + goto e476; + } + + $this->p++; + } + e476: + if (!$this->s74()) { + goto f474;} + goto k474; + f474: + $this->p = $o3; + goto f472; + k474: + $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); + goto k472; + f472: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k472: + + return true; + } + + private function b189(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b455 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f34;} + } + // b457 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b125()) { + goto f35;} + goto k35; + f35: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f34; + k35: + $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); + $this->n = $m3 + 1; + goto k34; + f34: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n33; + k34: + goto a32; + n33: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + if (!$this->b190()) { + goto n36;} + goto a32; + n36: + // b454 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(454); + } + + goto n37;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f38;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f38;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k38; + f38: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n37; + k38: + $this->v[$m2] = $this->reduceInvalidTag($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a32; + n37: + // b455 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f41;} + } + // b457 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b125()) { + goto f42;} + goto k42; + f42: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f41; + k42: + $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); + $this->n = $m3 + 1; + goto k41; + f41: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n40; + k41: + goto a32; + n40: + break; + case 76: + case 77: + case 78: + case 79: + // b454 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(454); + } + + goto n43;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f44;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f44;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k44; + f44: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n43; + k44: + $this->v[$m2] = $this->reduceInvalidTag($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a32; + n43: + // b455 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f47;} + } + // b457 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b125()) { + goto f48;} + goto k48; + f48: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f47; + k48: + $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); + $this->n = $m3 + 1; + goto k47; + f47: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n46; + k47: + goto a32; + n46: + break; + } + + if ($this->p > $this->f) { + $this->rec(189); + } + + goto f31; + a32: + goto k31; + f31: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k31: + + return true; + } + + private function b190(): bool + { + if (!isset(self::Tce49e0fc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(190); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + if (!$this->b402()) { + goto n65;} + goto a64; + n65: + break; + case 52: + if (!$this->b405()) { + goto n66;} + goto a64; + n66: + break; + case 53: + if (!$this->b406()) { + goto n67;} + goto a64; + n67: + break; + case 54: + if (!$this->b404()) { + goto n68;} + goto a64; + n68: + break; + case 55: + if (!$this->b401()) { + goto n69;} + goto a64; + n69: + break; + case 56: + // b395 + if (!($this->ids[$this->p] === 56)) { + if ($this->p > $this->f) { + $this->rec(395); + } + + goto n70;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 56)) { + if ($this->p >= $this->f) { + $this->rec(95); + } + + goto f71;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f71;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f72;} + if (!$this->b388()) { + goto f72;} + goto k72; + f72: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f71; + k72: + goto k71; + f71: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n70; + k71: + goto a64; + n70: + break; + case 57: + // b394 + if (!($this->ids[$this->p] === 57)) { + if ($this->p > $this->f) { + $this->rec(394); + } + + goto n73;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 57)) { + if ($this->p >= $this->f) { + $this->rec(94); + } + + goto f74;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f74;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f75;} + if (!$this->b388()) { + goto f75;} + goto k75; + f75: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f74; + k75: + goto k74; + f74: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n73; + k74: + goto a64; + n73: + break; + case 58: + if (!$this->b443()) { + goto n76;} + goto a64; + n76: + break; + case 59: + if (!$this->b446()) { + goto n77;} + goto a64; + n77: + break; + case 60: + // b397 + if (!($this->ids[$this->p] === 60)) { + if ($this->p > $this->f) { + $this->rec(397); + } + + goto n78;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 60)) { + if ($this->p >= $this->f) { + $this->rec(107); + } + + goto f79;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f79;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f80;} + if (!$this->b388()) { + goto f80;} + goto k80; + f80: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f79; + k80: + goto k79; + f79: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n78; + k79: + goto a64; + n78: + break; + case 61: + // b396 + if (!($this->ids[$this->p] === 61)) { + if ($this->p > $this->f) { + $this->rec(396); + } + + goto n81;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 61)) { + if ($this->p >= $this->f) { + $this->rec(96); + } + + goto f82;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f82;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f83;} + if (!$this->b388()) { + goto f83;} + goto k83; + f83: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f82; + k83: + goto k82; + f82: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n81; + k82: + goto a64; + n81: + break; + case 62: + if (!$this->b436()) { + goto n84;} + goto a64; + n84: + break; + case 63: + if (!$this->b398()) { + goto n85;} + goto a64; + n85: + break; + case 64: + if (!$this->b439()) { + goto n86;} + goto a64; + n86: + break; + case 65: + // b407 + if (!($this->ids[$this->p] === 65)) { + if ($this->p > $this->f) { + $this->rec(407); + } + + goto n87;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 65)) { + if ($this->p >= $this->f) { + $this->rec(97); + } + + goto f88;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f88;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k88; + f88: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n87; + k88: + goto a64; + n87: + break; + case 66: + if (!$this->b441()) { + goto n90;} + goto a64; + n90: + if (!$this->b442()) { + goto n91;} + goto a64; + n91: + break; + case 67: + if (!$this->b400()) { + goto n92;} + goto a64; + n92: + break; + case 68: + if (!$this->b437()) { + goto n93;} + goto a64; + n93: + break; + case 69: + // b408 + if (!($this->ids[$this->p] === 69)) { + if ($this->p > $this->f) { + $this->rec(408); + } + + goto n94;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 69)) { + if ($this->p >= $this->f) { + $this->rec(99); + } + + goto f95;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b409()) { + goto f95;} + goto k95; + f95: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n94; + k95: + goto a64; + n94: + break; + case 70: + // b390 + if (!($this->ids[$this->p] === 70)) { + if ($this->p > $this->f) { + $this->rec(390); + } + + goto n96;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 70)) { + if ($this->p >= $this->f) { + $this->rec(91); + } + + goto f97;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f97;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f98;} + if (!$this->b388()) { + goto f98;} + goto k98; + f98: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f97; + k98: + goto k97; + f97: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n96; + k97: + goto a64; + n96: + break; + case 71: + // b392 + if (!($this->ids[$this->p] === 71)) { + if ($this->p > $this->f) { + $this->rec(392); + } + + goto n99;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 71)) { + if ($this->p >= $this->f) { + $this->rec(92); + } + + goto f100;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f100;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f101;} + if (!$this->b388()) { + goto f101;} + goto k101; + f101: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f100; + k101: + goto k100; + f100: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n99; + k100: + goto a64; + n99: + break; + case 72: + // b191 + if (!($this->ids[$this->p] === 72)) { + if ($this->p > $this->f) { + $this->rec(191); + } + + goto n102;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 72)) { + if ($this->p >= $this->f) { + $this->rec(84); + } + + goto f103;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b192()) { + goto f103;} + goto k103; + f103: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n102; + k103: + goto a64; + n102: + break; + case 73: + // b393 + if (!($this->ids[$this->p] === 73)) { + if ($this->p > $this->f) { + $this->rec(393); + } + + goto n104;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 73)) { + if ($this->p >= $this->f) { + $this->rec(93); + } + + goto f105;} + + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + goto f105;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f106;} + if (!$this->b388()) { + goto f106;} + goto k106; + f106: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f105; + k106: + goto k105; + f105: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n104; + k105: + goto a64; + n104: + break; + case 74: + if (!$this->b440()) { + goto n107;} + goto a64; + n107: + break; + case 75: + // b384 + if (!($this->ids[$this->p] === 75)) { + if ($this->p > $this->f) { + $this->rec(384); + } + + goto n108;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 75)) { + if ($this->p >= $this->f) { + $this->rec(90); + } + + goto f109;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f109;} + if (!$this->b385()) { + goto f109;} + goto k109; + f109: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n108; + k109: + goto a64; + n108: + break; + } + + if ($this->p > $this->f) { + $this->rec(190); + } + + goto f63; + a64: + goto k63; + f63: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k63: + $this->v[$m1] = $this->reduceKnownTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b192(): bool + { + if (!isset(self::T3bf4df75[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(192); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->b198()) { + goto n311;} + goto a310; + n311: + break; + case 26: + case 27: + case 42: + if (!$this->b193()) { + goto n312;} + goto a310; + n312: + break; + } + + if ($this->p > $this->f) { + $this->rec(192); + } + + goto f309; + a310: + goto k309; + f309: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k309: + + return true; + } + + private function b193(): bool + { + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(193); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(195); + } + + goto f566;} + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f566;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f566;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k566; + f566: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k566: + + return true; + } + + private function b198(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(198); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b199()) { + goto f564;} + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f564;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f564;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k564; + f564: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k564: + + return true; + } + + private function b199(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(199); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 32: + case 82: + // b367 + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(367); + } + + goto n172;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b201()) { + goto f173;} + if (!$this->b368()) { + goto f173;} + goto k173; + f173: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n172; + k173: + goto a171; + n172: + break; + case 30: + // b200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n174;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f175;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f175;} + goto k175; + f175: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n174; + k175: + $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a171; + n174: + break; + } + + if ($this->p > $this->f) { + $this->rec(199); + } + + goto f170; + a171: + goto k170; + f170: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k170: + $this->v[$m1] = $this->reduceType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b201(): bool + { + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(201); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 5: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // b366 + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(366); + } + + goto n368;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(332); + } + + goto f369;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f369;} + } + if (!$this->b281()) { + goto f369;} + goto k369; + f369: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n368; + k369: + goto a367; + n368: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n370;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f371;} + } + if (!$this->b335()) { + goto f371;} + goto k371; + f371: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n370; + k371: + goto a367; + n370: + break; + case 19: + case 20: + case 21: + case 22: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n373;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f374;} + } + if (!$this->b335()) { + goto f374;} + goto k374; + f374: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n373; + k374: + goto a367; + n373: + break; + case 3: + case 4: + case 8: + if (!$this->b255()) { + goto n376;} + goto a367; + n376: + // b278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n377;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f378;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f378;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f378;} + } + if (!$this->b281()) { + goto f378;} + goto k378; + f378: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n377; + k378: + goto a367; + n377: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n379;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f380;} + } + if (!$this->b335()) { + goto f380;} + goto k380; + f380: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n379; + k380: + goto a367; + n379: + break; + case 32: + case 82: + if (!$this->b202()) { + goto n382;} + goto a367; + n382: + break; + case 6: + if (!$this->b267()) { + goto n383;} + goto a367; + n383: + // b278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n384;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f385;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f385;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f385;} + } + if (!$this->b281()) { + goto f385;} + goto k385; + f385: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n384; + k385: + goto a367; + n384: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n386;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f387;} + } + if (!$this->b335()) { + goto f387;} + goto k387; + f387: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n386; + k387: + goto a367; + n386: + break; + case 7: + if (!$this->b230()) { + goto n389;} + goto a367; + n389: + // b278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n390;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f391;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f391;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f391;} + } + if (!$this->b281()) { + goto f391;} + goto k391; + f391: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n390; + k391: + goto a367; + n390: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n392;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f393;} + } + if (!$this->b335()) { + goto f393;} + goto k393; + f393: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n392; + k393: + goto a367; + n392: + break; + case 25: + if (!$this->b229()) { + goto n395;} + goto a367; + n395: + break; + } + + if ($this->p > $this->f) { + $this->rec(201); + } + + goto f366; + a367: + goto k366; + f366: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k366: + $this->v[$m1] = $this->reduceAtomic($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b202(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(202); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f633;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e635; + } + + $this->p++; + } + e635: + if (!$this->b205()) { + goto f633;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e637; + } + + $this->p++; + } + e637: + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f633;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n638;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e640; + } + + if (!$this->b224()) { + goto e640;} + if ($this->p === $b2) { + $k2 = 1; + goto e640; + } + + $k2++; + } + e640: + + if ($k2 < 1) { + goto f639; + } + goto k639; + f639: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n638; + k639: + n638: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k633; + f633: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k633: + + return true; + } + + private function b205(): bool + { + if (!isset(self::Tcd64b9c0[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(205); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 32: + case 82: + // b208 + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(208); + } + + goto n859;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b201()) { + goto f860;} + if (!$this->b209()) { + goto f860;} + goto k860; + f860: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n859; + k860: + goto a858; + n859: + break; + case 26: + if (!$this->b206()) { + goto n861;} + goto a858; + n861: + break; + case 30: + // b200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n862;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f863;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f863;} + goto k863; + f863: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n862; + k863: + $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a858; + n862: + break; + } + + if ($this->p > $this->f) { + $this->rec(205); + } + + goto f857; + a858: + goto k857; + f857: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k857: + $this->v[$m1] = $this->reduceSubType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b206(): bool + { + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(206); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1135;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 12)) { + if ($this->p >= $this->f) { + $this->rec(23); + } + + goto f1135;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 11)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(24); + } + if (!$this->b199()) { + goto f1135;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1137; + } + + $this->p++; + } + e1137: + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1135;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1139; + } + + $this->p++; + } + e1139: + if (!$this->b199()) { + goto f1135;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1141; + } + + $this->p++; + } + e1141: + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1135;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1143; + } + + $this->p++; + } + e1143: + if (!$this->b205()) { + goto f1135;} + goto k1135; + f1135: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1135: + + return true; + } + + private function b209(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b211 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1127; + } + + $this->p++; + } + e1127: + if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!$this->b213()) { + goto n1128;} + n1128: + } elseif ($this->p > $this->f) { + $this->rec(213); + } + goto a1123; + n1124: + break; + case 12: + if (!$this->b210()) { + goto n1129;} + goto a1123; + n1129: + // b211 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1133; + } + + $this->p++; + } + e1133: + if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!$this->b213()) { + goto n1134;} + n1134: + } elseif ($this->p > $this->f) { + $this->rec(213); + } + goto a1123; + n1130: + break; + } + + if ($this->p > $this->f) { + $this->rec(209); + } + + goto f1122; + a1123: + goto k1122; + f1122: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1122: + + return true; + } + + private function b210(): bool + { + if (!($this->ids[$this->p] === 12)) { + if ($this->p > $this->f) { + $this->rec(210); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 12)) { + if ($this->p >= $this->f) { + $this->rec(23); + } + + goto f1467;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 11)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(24); + } + if (!$this->b199()) { + goto f1467;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1469; + } + + $this->p++; + } + e1469: + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1467;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1471; + } + + $this->p++; + } + e1471: + if (!$this->b199()) { + goto f1467;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1473; + } + + $this->p++; + } + e1473: + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1467;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1475; + } + + $this->p++; + } + e1475: + if (!$this->b205()) { + goto f1467;} + goto k1467; + f1467: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1467: + + return true; + } + + private function b213(): bool + { + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(213); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + if (!$this->b214()) { + goto n1465;} + goto a1464; + n1465: + break; + case 29: + if (!$this->b218()) { + goto n1466;} + goto a1464; + n1466: + break; + } + + if ($this->p > $this->f) { + $this->rec(213); + } + + goto f1463; + a1464: + goto k1463; + f1463: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1463: + + return true; + } + + private function b214(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(214); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b215 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(215); + } + + goto f1671;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b2 > $this->f) { + $this->rec(216); + } + + goto e1673; + } + + if (!$this->b216()) { + goto e1673;} + if ($this->p === $b2) { + $k2 = 1; + goto e1673; + } + + $k2++; + } + e1673: + + if ($k2 < 1) { + goto f1672; + } + goto k1672; + f1672: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1671; + k1672: + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1671;} + } + goto k1671; + f1671: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1671: + + return true; + } + + private function b216(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(216); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 28)) { + if ($this->p >= $this->f) { + $this->rec(49); + } + + goto f1755;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1757; + } + + $this->p++; + } + e1757: + if (!$this->b201()) { + goto f1755;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1759; + } + + $this->p++; + } + e1759: + goto k1755; + f1755: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1755: + + return true; + } + + private function b218(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(218); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b219 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(219); + } + + goto f1674;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b2 > $this->f) { + $this->rec(220); + } + + goto e1676; + } + + if (!$this->b220()) { + goto e1676;} + if ($this->p === $b2) { + $k2 = 1; + goto e1676; + } + + $k2++; + } + e1676: + + if ($k2 < 1) { + goto f1675; + } + goto k1675; + f1675: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1674; + k1675: + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1674;} + } + goto k1674; + f1674: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1674: + + return true; + } + + private function b220(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(220); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 29)) { + if ($this->p >= $this->f) { + $this->rec(50); + } + + goto f1760;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1762; + } + + $this->p++; + } + e1762: + if (!$this->b201()) { + goto f1760;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1764; + } + + $this->p++; + } + e1764: + goto k1760; + f1760: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1760: + + return true; + } + + private function b224(): bool + { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(224); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 36: + // b225 + if (!($this->ids[$this->p] === 36)) { + if ($this->p > $this->f) { + $this->rec(225); + } + + goto n837;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 36)) { + if ($this->p >= $this->f) { + $this->rec(57); + } + + goto f838;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 37)) { + if (($this->ids[$this->p] === 37)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f838;} + } + if (!$this->b199()) { + goto f838;} + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f838;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k838; + f838: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n837; + k838: + goto a836; + n837: + // b227 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(227); + } + + goto n839;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f840;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f840;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k840; + f840: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n839; + k840: + goto a836; + n839: + break; + case 84: + // b227 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(227); + } + + goto n841;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f842;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f842;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k842; + f842: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n841; + k842: + goto a836; + n841: + break; + } + + if ($this->p > $this->f) { + $this->rec(224); + } + + goto f835; + a836: + goto k835; + f835: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k835: + $this->v[$m1] = $this->reduceArrayOrOffsetAccessItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b229(): bool + { + if (!($this->ids[$this->p] === 25)) { + if ($this->p > $this->f) { + $this->rec(229); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 25)) { + if ($this->p >= $this->f) { + $this->rec(46); + } + + goto f649;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n650;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e652; + } + + if (!$this->b224()) { + goto e652;} + if ($this->p === $b2) { + $k2 = 1; + goto e652; + } + + $k2++; + } + e652: + + if ($k2 < 1) { + goto f651; + } + goto k651; + f651: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n650; + k651: + n650: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k649; + f649: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k649: + + return true; + } + + private function b230(): bool + { + if (!($this->ids[$this->p] === 7)) { + if ($this->p > $this->f) { + $this->rec(230); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 7)) { + if ($this->p >= $this->f) { + $this->rec(32); + } + + goto f645;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f645;} + } + if (!$this->b231()) { + goto f645;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n646;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e648; + } + + if (!$this->b224()) { + goto e648;} + if ($this->p === $b2) { + $k2 = 1; + goto e648; + } + + $k2++; + } + e648: + + if ($k2 < 1) { + goto f647; + } + goto k647; + f647: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n646; + k647: + n646: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k645; + f645: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k645: + + return true; + } + + private function b231(): bool + { + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(231); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f872;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e874; + } + + $this->p++; + } + e874: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b233()) { + goto n875;} + n875: + } elseif ($this->p > $this->f) { + $this->rec(233); + } + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e877; + } + + $this->p++; + } + e877: + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f872;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k872; + f872: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k872: + $this->v[$m1] = $this->reduceArrayShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b233(): bool + { + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(233); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b243 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(243); + } + + goto n1152;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b244()) { + goto f1153;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1155; + } + + $this->p++; + } + e1155: + if (($this->ids[$this->p] === 40)) { + if (!$this->b252()) { + goto n1156;} + n1156: + } elseif ($this->p > $this->f) { + $this->rec(252); + } + goto k1153; + f1153: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1152; + k1153: + goto a1151; + n1152: + break; + case 42: + if (!$this->b234()) { + goto n1157;} + goto a1151; + n1157: + break; + } + + if ($this->p > $this->f) { + $this->rec(233); + } + + goto f1150; + a1151: + goto k1150; + f1150: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1150: + + return true; + } + + private function b234(): bool + { + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(234); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1489;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1491; + } + + $this->p++; + } + e1491: + if (!$this->b235()) { + goto f1489;} + if (($this->ids[$this->p] === 40)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1489; + f1489: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1489: + + return true; + } + + private function b235(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1679;} + goto a1678; + n1679: + break; + case 34: + case 86: + // b236 + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(236); + } + + goto n1680;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b237()) { + goto f1681;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1683; + } + + $this->p++; + } + e1683: + goto k1681; + f1681: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1680; + k1681: + goto a1678; + n1680: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1684;} + goto a1678; + n1684: + break; + } + + if ($this->p > $this->f) { + $this->rec(235); + } + + goto f1677; + a1678: + goto k1677; + f1677: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1677: + + return true; + } + + private function b237(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(237); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1765;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1767; + } + + $this->p++; + } + e1767: + if (!$this->b199()) { + goto f1765;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1769; + } + + $this->p++; + } + e1769: + if (($this->ids[$this->p] === 40)) { + if (!$this->b240()) { + goto n1770;} + n1770: + } elseif ($this->p > $this->f) { + $this->rec(240); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1765;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1765; + f1765: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1765: + $this->v[$m1] = $this->reduceArrayShapeUnsealedType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b240(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(240); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1789;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1791; + } + + $this->p++; + } + e1791: + if (!$this->b199()) { + goto f1789;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1793; + } + + $this->p++; + } + e1793: + goto k1789; + f1789: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1789: + + return true; + } + + private function b244(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(244); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 20: + case 21: + case 22: + case 24: + // b245 + if (!isset(self::Tce797685[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(245); + } + + goto n1452;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b246()) { + goto f1453;} + if (($this->ids[$this->p] === 30)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1453;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f1453;} + goto k1453; + f1453: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1452; + k1453: + goto a1451; + n1452: + if (!$this->b199()) { + goto n1454;} + goto a1451; + n1454: + break; + case 19: + case 25: + case 30: + case 32: + case 82: + if (!$this->b199()) { + goto n1455;} + goto a1451; + n1455: + break; + } + + if ($this->p > $this->f) { + $this->rec(244); + } + + goto f1450; + a1451: + goto k1450; + f1450: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1450: + $this->v[$m1] = $this->reduceArrayShapeItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b246(): bool + { + if (!isset(self::Tce797685[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(246); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + if (!$this->b247()) { + goto n1662;} + goto a1661; + n1662: + break; + case 20: + $this->v[$this->n++] = $this->token($this->p++); + goto a1661; + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a1661; + break; + case 22: + $this->v[$this->n++] = $this->token($this->p++); + goto a1661; + break; + } + + if ($this->p > $this->f) { + $this->rec(246); + } + + goto f1660; + a1661: + goto k1660; + f1660: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1660: + $this->v[$m1] = $this->reduceArrayShapeKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b247(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(247); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1747;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + // b249 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(249); + } + + goto n1748;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1749;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1749;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1749; + f1749: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1748; + k1749: + n1748: + } elseif ($this->p > $this->f) { + $this->rec(249); + } + goto k1747; + f1747: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1747: + + return true; + } + + private function b252(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(252); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1485;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 41)) { + $this->v[$this->n++] = $this->reduceDiscardedComment($this->context($this->p, $this->p + 1)); + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1487; + } + + $this->p++; + } + e1487: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b233()) { + goto n1488;} + n1488: + } elseif ($this->p > $this->f) { + $this->rec(233); + } + goto k1485; + f1485: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1485: + + return true; + } + + private function b255(): bool + { + if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(255); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(256); + } + + goto f629;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f629;} + } + if (!$this->b257()) { + goto f629;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n630;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e632; + } + + if (!$this->b224()) { + goto e632;} + if ($this->p === $b2) { + $k2 = 1; + goto e632; + } + + $k2++; + } + e632: + + if ($k2 < 1) { + goto f631; + } + goto k631; + f631: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n630; + k631: + n630: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k629; + f629: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k629: + + return true; + } + + private function b257(): bool + { + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(257); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f851;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e853; + } + + $this->p++; + } + e853: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b259()) { + goto n854;} + n854: + } elseif ($this->p > $this->f) { + $this->rec(259); + } + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e856; + } + + $this->p++; + } + e856: + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f851;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k851; + f851: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k851: + $this->v[$m1] = $this->reduceListShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b259(): bool + { + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(259); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b264 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(264); + } + + goto n1116;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b244()) { + goto f1117;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1119; + } + + $this->p++; + } + e1119: + if (($this->ids[$this->p] === 40)) { + if (!$this->b266()) { + goto n1120;} + n1120: + } elseif ($this->p > $this->f) { + $this->rec(266); + } + goto k1117; + f1117: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1116; + k1117: + goto a1115; + n1116: + break; + case 42: + if (!$this->b260()) { + goto n1121;} + goto a1115; + n1121: + break; + } + + if ($this->p > $this->f) { + $this->rec(259); + } + + goto f1114; + a1115: + goto k1114; + f1114: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1114: + + return true; + } + + private function b260(): bool + { + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(260); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1460;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1462; + } + + $this->p++; + } + e1462: + if (!$this->b261()) { + goto f1460;} + if (($this->ids[$this->p] === 40)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1460; + f1460: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1460: + + return true; + } + + private function b261(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1665;} + goto a1664; + n1665: + break; + case 34: + case 86: + // b262 + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(262); + } + + goto n1666;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b263()) { + goto f1667;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1669; + } + + $this->p++; + } + e1669: + goto k1667; + f1667: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1666; + k1667: + goto a1664; + n1666: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1670;} + goto a1664; + n1670: + break; + } + + if ($this->p > $this->f) { + $this->rec(261); + } + + goto f1663; + a1664: + goto k1663; + f1663: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1663: + + return true; + } + + private function b263(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(263); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1750;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1752; + } + + $this->p++; + } + e1752: + if (!$this->b199()) { + goto f1750;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1754; + } + + $this->p++; + } + e1754: + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1750;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1750; + f1750: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1750: + $this->v[$m1] = $this->reduceListShapeUnsealedType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b266(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(266); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1456;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 41)) { + $this->v[$this->n++] = $this->reduceDiscardedComment($this->context($this->p, $this->p + 1)); + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1458; + } + + $this->p++; + } + e1458: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b259()) { + goto n1459;} + n1459: + } elseif ($this->p > $this->f) { + $this->rec(259); + } + goto k1456; + f1456: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1456: + + return true; + } + + private function b267(): bool + { + if (!($this->ids[$this->p] === 6)) { + if ($this->p > $this->f) { + $this->rec(267); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 6)) { + if ($this->p >= $this->f) { + $this->rec(37); + } + + goto f641;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f641;} + } + if (!$this->b268()) { + goto f641;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n642;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e644; + } + + if (!$this->b224()) { + goto e644;} + if ($this->p === $b2) { + $k2 = 1; + goto e644; + } + + $k2++; + } + e644: + + if ($k2 < 1) { + goto f643; + } + goto k643; + f643: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n642; + k643: + n642: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k641; + f641: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k641: + + return true; + } + + private function b268(): bool + { + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(268); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f864;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e866; + } + + $this->p++; + } + e866: + if (isset(self::Td8017923[$this->ids[$this->p]])) { + // b270 + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(270); + } + + goto n867;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b271()) { + goto f868;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e870; + } + + $this->p++; + } + e870: + if (($this->ids[$this->p] === 40)) { + if (!$this->b274()) { + goto n871;} + n871: + } elseif ($this->p > $this->f) { + $this->rec(274); + } + goto k868; + f868: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n867; + k868: + n867: + } elseif ($this->p > $this->f) { + $this->rec(270); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f864;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k864; + f864: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k864: + $this->v[$m1] = $this->reduceObjectShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b271(): bool + { + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(271); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b272()) { + goto f1144;} + if (($this->ids[$this->p] === 30)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1144;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f1144;} + goto k1144; + f1144: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1144: + $this->v[$m1] = $this->reduceObjectShapeItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b272(): bool + { + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(272); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 2: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 3: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 4: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 5: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 6: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 7: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 8: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 9: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 10: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 11: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 12: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 13: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 14: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 15: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 16: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 17: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 18: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 22: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + case 24: + $this->v[$this->n++] = $this->token($this->p++); + goto a1477; + break; + } + + if ($this->p > $this->f) { + $this->rec(272); + } + + goto f1476; + a1477: + goto k1476; + f1476: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1476: + $this->v[$m1] = $this->reduceObjectShapeKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b274(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(274); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(275); + } + + goto e1146; + } + + // b275 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(275); + } + + goto e1146;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1147;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1149; + } + + $this->p++; + } + e1149: + if (!$this->b276()) { + goto f1147;} + goto k1147; + f1147: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1146; + k1147: + if ($this->p === $b1) { + $k1 = 1; + goto e1146; + } + + $k1++; + } + e1146: + + if ($k1 < 1) { + goto f1145; + } + goto k1145; + f1145: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1145: + + return true; + } + + private function b276(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 21: + case 22: + case 24: + // b277 + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(277); + } + + goto n1480;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b271()) { + goto f1481;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1483; + } + + $this->p++; + } + e1483: + goto k1481; + f1481: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1480; + k1481: + goto a1479; + n1480: + break; + case 39: + if (!($this->ids[$this->p] === 39)) { + if ($this->p > $this->f) { + $this->rec(62); + } + + goto n1484;} + goto a1479; + n1484: + break; + } + + if ($this->p > $this->f) { + $this->rec(276); + } + + goto f1478; + a1479: + goto k1478; + f1478: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1478: + + return true; + } + + private function b281(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n613;} + goto a612; + n613: + break; + case 32: + case 82: + if (!$this->b364()) { + goto n614;} + goto a612; + n614: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n615;} + goto a612; + n615: + break; + case 36: + case 84: + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n616;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e618; + } + + if (!$this->b224()) { + goto e618;} + if ($this->p === $b2) { + $k2 = 1; + goto e618; + } + + $k2++; + } + e618: + + if ($k2 < 1) { + goto f617; + } + goto k617; + f617: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n616; + k617: + goto a612; + n616: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n619;} + goto a612; + n619: + break; + case 34: + // b282 + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(282); + } + + goto n620;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(54); + } + + goto f621;} + if (!$this->b284()) { + goto f621;} + goto k621; + f621: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n620; + k621: + goto a612; + n620: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n622;} + goto a612; + n622: + break; + } + + if ($this->p > $this->f) { + $this->rec(281); + } + + goto f611; + a612: + goto k611; + f611: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k611: + + return true; + } + + private function b284(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(284); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 34: + if (!$this->b285()) { + goto n845;} + goto a844; + n845: + if (!$this->b362()) { + goto n846;} + goto a844; + n846: + break; + } + + if ($this->p > $this->f) { + $this->rec(284); + } + + goto f843; + a844: + goto k843; + f843: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k843: + + return true; + } + + private function b285(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(285); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 34)) { + if ($this->p >= $this->f) { + $this->rec(54); + } + + goto f1094;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1096; + } + + $this->p++; + } + e1096: + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1094;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1097;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1097;} + if (!$this->b293()) { + goto f1097;} + if (!$this->b296()) { + goto f1097;} + goto k1097; + f1097: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1094; + k1097: + $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1099; + } + + $this->p++; + } + e1099: + if (($this->ids[$this->p] === 40)) { + // b300 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(300); + } + + goto n1100;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(301); + } + + goto e1102; + } + + if (!$this->b301()) { + goto e1102;} + if ($this->p === $b2) { + $k2 = 1; + goto e1102; + } + + $k2++; + } + e1102: + + if ($k2 < 1) { + goto f1101; + } + goto k1101; + f1101: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1100; + k1101: + n1100: + } elseif ($this->p > $this->f) { + $this->rec(300); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1094;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1094;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1104; + } + + $this->p++; + } + e1104: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b306 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(306); + } + + goto n1105;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b307()) { + goto f1106;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1108; + } + + $this->p++; + } + e1108: + if (($this->ids[$this->p] === 40)) { + if (!$this->b311()) { + goto n1109;} + n1109: + } elseif ($this->p > $this->f) { + $this->rec(311); + } + goto k1106; + f1106: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1105; + k1106: + n1105: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1094;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1094;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b315()) { + goto f1094;} + goto k1094; + f1094: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1094: + $this->v[$m1] = $this->reduceCallableWithTemplates($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b287(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b290 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f529;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f529;} + } + goto k529; + f529: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n528; + k529: + goto a527; + n528: + break; + case 13: + // b288 + if (!($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->rec(288); + } + + goto n530;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 13)) { + if ($this->p >= $this->f) { + $this->rec(27); + } + + goto f531;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f531;} + goto k531; + f531: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n530; + k531: + goto a527; + n530: + // b290 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f533;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f533;} + } + goto k533; + f533: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n532; + k533: + goto a527; + n532: + break; + case 14: + // b289 + if (!($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->rec(289); + } + + goto n534;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 14)) { + if ($this->p >= $this->f) { + $this->rec(28); + } + + goto f535;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f535;} + goto k535; + f535: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n534; + k535: + goto a527; + n534: + // b290 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f537;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f537;} + } + goto k537; + f537: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n536; + k537: + goto a527; + n536: + break; + } + + if ($this->p > $this->f) { + $this->rec(287); + } + + goto f526; + a527: + goto k526; + f526: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k526: + + return true; + } + + private function b293(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n540;} + goto a539; + n540: + break; + case 5: + // b294 + if (!($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->rec(294); + } + + goto n541;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 5)) { + if ($this->p >= $this->f) { + $this->rec(29); + } + + goto f542;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f542;} + goto k542; + f542: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n541; + k542: + goto a539; + n541: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n543;} + goto a539; + n543: + break; + } + + if ($this->p > $this->f) { + $this->rec(293); + } + + goto f538; + a539: + goto k538; + f538: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k538: + + return true; + } + + private function b296(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n546;} + goto a545; + n546: + break; + case 46: + // b297 + if (!($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->rec(297); + } + + goto n547;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f548;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f548;} + goto k548; + f548: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n547; + k548: + goto a545; + n547: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n549;} + goto a545; + n549: + break; + } + + if ($this->p > $this->f) { + $this->rec(296); + } + + goto f544; + a545: + goto k544; + f544: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k544: + + return true; + } + + private function b301(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(301); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1437;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1439; + } + + $this->p++; + } + e1439: + // b302 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + if (!$this->b304()) { + goto n1442;} + goto a1441; + n1442: + break; + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } + + goto n1443;} + goto a1441; + n1443: + break; + } + + if ($this->p > $this->f) { + $this->rec(302); + } + + goto f1440; + a1441: + goto k1440; + f1440: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1437; + k1440: + goto k1437; + f1437: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1437: + + return true; + } + + private function b304(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(304); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1656;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1657;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1657;} + if (!$this->b293()) { + goto f1657;} + if (!$this->b296()) { + goto f1657;} + goto k1657; + f1657: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1656; + k1657: + $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1659; + } + + $this->p++; + } + e1659: + goto k1656; + f1656: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1656: + + return true; + } + + private function b307(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(307); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b199()) { + goto f1059;} + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (($this->ids[$this->p] === 26)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(47); + } + if (($this->ids[$this->p] === 46)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + goto k1059; + f1059: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1059: + $this->v[$m1] = $this->reduceCallableParameter($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b311(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(311); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(312); + } + + goto e1061; + } + + // b312 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(312); + } + + goto e1061;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1062;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1064; + } + + $this->p++; + } + e1064: + if (!$this->b313()) { + goto f1062;} + goto k1062; + f1062: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1061; + k1062: + if ($this->p === $b1) { + $k1 = 1; + goto e1061; + } + + $k1++; + } + e1061: + + if ($k1 < 1) { + goto f1060; + } + goto k1060; + f1060: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1060: + + return true; + } + + private function b313(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b314 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(314); + } + + goto n1418;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b307()) { + goto f1419;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1421; + } + + $this->p++; + } + e1421: + goto k1419; + f1419: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1418; + k1419: + goto a1417; + n1418: + break; + case 33: + if (!($this->ids[$this->p] === 33)) { + if ($this->p > $this->f) { + $this->rec(53); + } + + goto n1422;} + goto a1417; + n1422: + break; + } + + if ($this->p > $this->f) { + $this->rec(313); + } + + goto f1416; + a1417: + goto k1416; + f1416: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1416: + + return true; + } + + private function b315(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(315); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 5: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // b331 + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(331); + } + + goto n1067;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(332); + } + + goto f1068;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1068;} + } + if (!$this->b318()) { + goto f1068;} + goto k1068; + f1068: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1067; + k1068: + goto a1066; + n1067: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1069;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1070;} + } + if (!$this->b335()) { + goto f1070;} + goto k1070; + f1070: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1069; + k1070: + goto a1066; + n1069: + break; + case 19: + case 20: + case 21: + case 22: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1072;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1073;} + } + if (!$this->b335()) { + goto f1073;} + goto k1073; + f1073: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1072; + k1073: + goto a1066; + n1072: + break; + case 3: + case 4: + case 8: + if (!$this->b255()) { + goto n1075;} + goto a1066; + n1075: + if (!$this->b317()) { + goto n1076;} + goto a1066; + n1076: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1077;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1078;} + } + if (!$this->b335()) { + goto f1078;} + goto k1078; + f1078: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1077; + k1078: + goto a1066; + n1077: + break; + case 32: + case 82: + if (!$this->b316()) { + goto n1080;} + goto a1066; + n1080: + break; + case 6: + if (!$this->b267()) { + goto n1081;} + goto a1066; + n1081: + if (!$this->b317()) { + goto n1082;} + goto a1066; + n1082: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1083;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1084;} + } + if (!$this->b335()) { + goto f1084;} + goto k1084; + f1084: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1083; + k1084: + goto a1066; + n1083: + break; + case 7: + if (!$this->b230()) { + goto n1086;} + goto a1066; + n1086: + if (!$this->b317()) { + goto n1087;} + goto a1066; + n1087: + // b333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1088;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1089;} + } + if (!$this->b335()) { + goto f1089;} + goto k1089; + f1089: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1088; + k1089: + goto a1066; + n1088: + break; + case 25: + if (!$this->b229()) { + goto n1091;} + goto a1066; + n1091: + break; + case 30: + // b200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n1092;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1093;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f1093;} + goto k1093; + f1093: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1092; + k1093: + $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a1066; + n1092: + break; + } + + if ($this->p > $this->f) { + $this->rec(315); + } + + goto f1065; + a1066: + goto k1065; + f1065: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1065: + $this->v[$m1] = $this->reduceCallableReturnType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b316(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(316); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1433;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b205()) { + goto f1433;} + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1433;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1434;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1436; + } + + if (!$this->b224()) { + goto e1436;} + if ($this->p === $b2) { + $k2 = 1; + goto e1436; + } + + $k2++; + } + e1436: + + if ($k2 < 1) { + goto f1435; + } + goto k1435; + f1435: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1434; + k1435: + n1434: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1433; + f1433: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1433: + + return true; + } + + private function b317(): bool + { + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(317); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f1432;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1432;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1432;} + } + if (!$this->b318()) { + goto f1432;} + goto k1432; + f1432: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1432: + + return true; + } + + private function b318(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1425;} + goto a1424; + n1425: + break; + case 34: + case 86: + if (!$this->b319()) { + goto n1426;} + goto a1424; + n1426: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1427;} + goto a1424; + n1427: + break; + case 36: + case 84: + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1428;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1430; + } + + if (!$this->b224()) { + goto e1430;} + if ($this->p === $b2) { + $k2 = 1; + goto e1430; + } + + $k2++; + } + e1430: + + if ($k2 < 1) { + goto f1429; + } + goto k1429; + f1429: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1428; + k1429: + goto a1424; + n1428: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1431;} + goto a1424; + n1431: + break; + } + + if ($this->p > $this->f) { + $this->rec(318); + } + + goto f1423; + a1424: + goto k1423; + f1423: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1423: + + return true; + } + + private function b319(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(319); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b320()) { + goto f1652;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1653;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1655; + } + + if (!$this->b224()) { + goto e1655;} + if ($this->p === $b2) { + $k2 = 1; + goto e1655; + } + + $k2++; + } + e1655: + + if ($k2 < 1) { + goto f1654; + } + goto k1654; + f1654: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1653; + k1654: + n1653: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1652; + f1652: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1652: + + return true; + } + + private function b320(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(320); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f787;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e789; + } + + $this->p++; + } + e789: + if (!$this->b321()) { + goto f787;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e791; + } + + $this->p++; + } + e791: + if (($this->ids[$this->p] === 40)) { + if (!$this->b327()) { + goto n792;} + n792: + } elseif ($this->p > $this->f) { + $this->rec(327); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f787;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k787; + f787: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k787: + $this->v[$m1] = $this->reduceGenericInReturnType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b321(): bool + { + if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(321); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b324 + if (!isset(self::Tfc0ac6dd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(324); + } + + goto n1027;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1028;} + } + if (!$this->b199()) { + goto f1028;} + goto k1028; + f1028: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1027; + k1028: + goto a1026; + n1027: + break; + case 1: + case 2: + // b322 + if (!isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(322); + } + + goto n1029;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(323); + } + + goto f1030;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f1030;} + goto k1030; + f1030: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1029; + k1030: + goto a1026; + n1029: + break; + case 48: + $this->v[$this->n++] = $this->token($this->p++); + goto a1026; + break; + case 85: + $this->v[$this->n++] = $this->token($this->p++); + goto a1026; + break; + } + + if ($this->p > $this->f) { + $this->rec(321); + } + + goto f1025; + a1026: + goto k1025; + f1025: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1025: + $this->v[$m1] = $this->reduceGenericArgument($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b327(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(327); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(328); + } + + goto e1032; + } + + // b328 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(328); + } + + goto e1032;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1033;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1035; + } + + $this->p++; + } + e1035: + if (!$this->b329()) { + goto f1033;} + goto k1033; + f1033: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1032; + k1033: + if ($this->p === $b1) { + $k1 = 1; + goto e1032; + } + + $k1++; + } + e1032: + + if ($k1 < 1) { + goto f1031; + } + goto k1031; + f1031: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1031: + + return true; + } + + private function b329(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 48: + case 82: + case 85: + // b330 + if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(330); + } + + goto n1392;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b321()) { + goto f1393;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1395; + } + + $this->p++; + } + e1395: + goto k1393; + f1393: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1392; + k1393: + goto a1391; + n1392: + break; + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } + + goto n1396;} + goto a1391; + n1396: + break; + } + + if ($this->p > $this->f) { + $this->rec(329); + } + + goto f1390; + a1391: + goto k1390; + f1390: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1390: + + return true; + } + + private function b335(): bool + { + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(335); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (isset(self::T1e81050f[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s337(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f624;} + } + if (!$this->b340()) { + goto f624;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n626;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e628; + } + + if (!$this->b224()) { + goto e628;} + if ($this->p === $b2) { + $k2 = 1; + goto e628; + } + + $k2++; + } + e628: + + if ($k2 < 1) { + goto f627; + } + goto k627; + f627: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n626; + k627: + n626: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k624; + f624: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k624: + + return true; + } + + private function b340(): bool + { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(340); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->b357()) { + goto n184;} + goto a183; + n184: + break; + case 7: + case 18: + if (!$this->b347()) { + goto n185;} + goto a183; + n185: + break; + case 21: + case 22: + // b343 + if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(343); + } + + goto n186;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a188; + break; + case 22: + $this->v[$this->n++] = $this->token($this->p++); + goto a188; + break; + } + + if ($this->p > $this->f) { + $this->rec(343); + } + + goto f187; + a188: + goto k187; + f187: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n186; + k187: + $this->v[$m2] = $this->reduceConstantString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto a183; + n186: + break; + case 36: + case 84: + if (!$this->b361()) { + goto n189;} + goto a183; + n189: + break; + case 15: + $this->v[$this->n++] = $this->reduceConstantFalse($this->context($this->p, $this->p + 1)); + $this->p++; + goto a183; + break; + case 16: + $this->v[$this->n++] = $this->reduceConstantTrue($this->context($this->p, $this->p + 1)); + $this->p++; + goto a183; + break; + case 17: + $this->v[$this->n++] = $this->reduceConstantNull($this->context($this->p, $this->p + 1)); + $this->p++; + goto a183; + break; + case 19: + $this->v[$this->n++] = $this->reduceConstantFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a183; + break; + case 20: + $this->v[$this->n++] = $this->reduceConstantInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->p++; + goto a183; + break; + } + + if ($this->p > $this->f) { + $this->rec(340); + } + + goto f182; + a183: + goto k182; + f182: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k182: + + return true; + } + + private function b347(): bool + { + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(347); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(339); + } + + goto f449;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f449;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->b349()) { + goto n450;} + n450: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f449;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k449; + f449: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k449: + $this->v[$m1] = $this->reduceConstantArrayLiteral($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b349(): bool + { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(349); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b350 + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(350); + } + + goto f715;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b340()) { + goto f716;} + if (!$this->b351()) { + goto f716;} + goto k716; + f716: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f715; + k716: + $this->v[$m2] = $this->reduceConstantArrayItem($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + if (($this->ids[$this->p] === 40)) { + // b355 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(355); + } + + goto n717;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(356); + } + + goto e719; + } + + if (!$this->b356()) { + goto e719;} + if ($this->p === $b2) { + $k2 = 1; + goto e719; + } + + $k2++; + } + e719: + + if ($k2 < 1) { + goto f718; + } + goto k718; + f718: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n717; + k718: + n717: + } elseif ($this->p > $this->f) { + $this->rec(355); + } + if (($this->ids[$this->p] === 40)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k715; + f715: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k715: + + return true; + } + + private function b351(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n956;} + goto a955; + n956: + break; + case 44: + // b352 + if (!($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->rec(352); + } + + goto n957;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 44)) { + if ($this->p >= $this->f) { + $this->rec(67); + } + + goto f958;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b340()) { + goto f958;} + goto k958; + f958: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n957; + k958: + goto a955; + n957: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n959;} + goto a955; + n959: + break; + } + + if ($this->p > $this->f) { + $this->rec(351); + } + + goto f954; + a955: + goto k954; + f954: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k954: + + return true; + } + + private function b356(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(356); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f960;} + + $this->v[$this->n++] = $this->token($this->p++); + // b350 + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(350); + } + + goto f960;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b340()) { + goto f961;} + if (!$this->b351()) { + goto f961;} + goto k961; + f961: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f960; + k961: + $this->v[$m2] = $this->reduceConstantArrayItem($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto k960; + f960: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k960: + + return true; + } + + private function b357(): bool + { + if (!isset(self::Td08a6883[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(357); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f446;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f446;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + // b360 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(360); + } + + goto n447;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f448;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b163()) { + goto f448;} + goto k448; + f448: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n447; + k448: + n447: + } elseif ($this->p > $this->f) { + $this->rec(360); + } + goto k446; + f446: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k446: + $this->v[$m1] = $this->reduceConstantFetch($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b361(): bool + { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(361); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f451;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->b349()) { + goto n452;} + n452: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f451;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k451; + f451: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k451: + $this->v[$m1] = $this->reduceConstantArrayShorthand($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b362(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(362); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b363()) { + goto f1110;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1111;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1113; + } + + if (!$this->b224()) { + goto e1113;} + if ($this->p === $b2) { + $k2 = 1; + goto e1113; + } + + $k2++; + } + e1113: + + if ($k2 < 1) { + goto f1112; + } + goto k1112; + f1112: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1111; + k1112: + n1111: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1110; + f1110: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1110: + + return true; + } + + private function b363(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(363); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 34)) { + if ($this->p >= $this->f) { + $this->rec(54); + } + + goto f1444;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1446; + } + + $this->p++; + } + e1446: + if (!$this->b321()) { + goto f1444;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1448; + } + + $this->p++; + } + e1448: + if (($this->ids[$this->p] === 40)) { + if (!$this->b327()) { + goto n1449;} + n1449: + } elseif ($this->p > $this->f) { + $this->rec(327); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1444;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1444; + f1444: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1444: + $this->v[$m1] = $this->reduceGeneric($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b364(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(364); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f827;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e829; + } + + $this->p++; + } + e829: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b306 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(306); + } + + goto n830;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b307()) { + goto f831;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e833; + } + + $this->p++; + } + e833: + if (($this->ids[$this->p] === 40)) { + if (!$this->b311()) { + goto n834;} + n834: + } elseif ($this->p > $this->f) { + $this->rec(311); + } + goto k831; + f831: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n830; + k831: + n830: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f827;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f827;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b315()) { + goto f827;} + goto k827; + f827: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k827: + $this->v[$m1] = $this->reduceCallable($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b368(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b383 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f399;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f399;} + } + goto k399; + f399: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n398; + k399: + goto a397; + n398: + break; + case 28: + case 29: + case 41: + case 80: + // b369 + if (!isset(self::T8458d590[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(369); + } + + goto n400;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e403; + } + + $this->p++; + } + e403: + if (!$this->b370()) { + goto f401;} + goto k401; + f401: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n400; + k401: + goto a397; + n400: + // b383 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f405;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f405;} + } + goto k405; + f405: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n404; + k405: + goto a397; + n404: + break; + } + + if ($this->p > $this->f) { + $this->rec(368); + } + + goto f396; + a397: + goto k396; + f396: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k396: + + return true; + } + + private function b370(): bool + { + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(370); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + if (!$this->b371()) { + goto n655;} + goto a654; + n655: + break; + case 29: + if (!$this->b377()) { + goto n656;} + goto a654; + n656: + break; + } + + if ($this->p > $this->f) { + $this->rec(370); + } + + goto f653; + a654: + goto k653; + f653: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k653: + + return true; + } + + private function b371(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(371); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b372 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(372); + } + + goto f878;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b2 > $this->f) { + $this->rec(373); + } + + goto e880; + } + + if (!$this->b373()) { + goto e880;} + if ($this->p === $b2) { + $k2 = 1; + goto e880; + } + + $k2++; + } + e880: + + if ($k2 < 1) { + goto f879; + } + goto k879; + f879: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f878; + k879: + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f878;} + } + goto k878; + f878: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k878: + + return true; + } + + private function b373(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(373); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 28)) { + if ($this->p >= $this->f) { + $this->rec(49); + } + + goto f1158;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f1158;} + // b375 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1162; + } + + $this->p++; + } + e1162: + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(49); + } + + goto f1160;} + goto k1160; + f1160: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1159; + k1160: + n1159: + goto k1158; + f1158: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1158: + + return true; + } + + private function b377(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(377); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b378 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(378); + } + + goto f881;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b2 > $this->f) { + $this->rec(379); + } + + goto e883; + } + + if (!$this->b379()) { + goto e883;} + if ($this->p === $b2) { + $k2 = 1; + goto e883; + } + + $k2++; + } + e883: + + if ($k2 < 1) { + goto f882; + } + goto k882; + f882: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f881; + k882: + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f881;} + } + goto k881; + f881: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k881: + + return true; + } + + private function b379(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(379); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 29)) { + if ($this->p >= $this->f) { + $this->rec(50); + } + + goto f1163;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f1163;} + // b381 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1167; + } + + $this->p++; + } + e1167: + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(50); + } + + goto f1165;} + goto k1165; + f1165: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1164; + k1165: + n1164: + goto k1163; + f1163: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1163: + + return true; + } + + private function b385(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + // b388 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f317;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f317;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f317;} + } + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f317;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k317; + f317: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n316; + k317: + goto a315; + n316: + break; + case 25: + case 26: + // b386 + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(386); + } + + goto n319;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(387); + } + + goto f320;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f320;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k320; + f320: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n319; + k320: + goto a315; + n319: + // b388 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f323;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f323;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f323;} + } + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f323;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k323; + f323: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n322; + k323: + goto a315; + n322: + break; + } + + if ($this->p > $this->f) { + $this->rec(385); + } + + goto f314; + a315: + goto k314; + f314: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k314: + + return true; + } + + private function b388(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f281;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f281;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f281;} + } + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f281;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k281; + f281: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k281: + + return true; + } + + private function b398(): bool + { + if (!($this->ids[$this->p] === 63)) { + if ($this->p > $this->f) { + $this->rec(398); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 63)) { + if ($this->p >= $this->f) { + $this->rec(98); + } + + goto f289;} + + $this->v[$this->n++] = $this->token($this->p++); + // b399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f289;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f290;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f290;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f290;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k290; + f290: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f289; + k290: + goto k289; + f289: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k289: + + return true; + } + + private function b400(): bool + { + if (!($this->ids[$this->p] === 67)) { + if ($this->p > $this->f) { + $this->rec(400); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 67)) { + if ($this->p >= $this->f) { + $this->rec(108); + } + + goto f296;} + + $this->v[$this->n++] = $this->token($this->p++); + // b399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f296;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f297;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f297;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f297;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k297; + f297: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f296; + k297: + goto k296; + f296: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k296: + + return true; + } + + private function b401(): bool + { + if (!($this->ids[$this->p] === 55)) { + if ($this->p > $this->f) { + $this->rec(401); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 55)) { + if ($this->p >= $this->f) { + $this->rec(87); + } + + goto f278;} + + $this->v[$this->n++] = $this->token($this->p++); + // b399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f278;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f279;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f279;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f279;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k279; + f279: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f278; + k279: + goto k278; + f278: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k278: + + return true; + } + + private function b402(): bool + { + if (!($this->ids[$this->p] === 51)) { + if ($this->p > $this->f) { + $this->rec(402); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 51)) { + if ($this->p >= $this->f) { + $this->rec(85); + } + + goto f266;} + + $this->v[$this->n++] = $this->token($this->p++); + // b403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f266;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f267;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f267;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k267; + f267: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f266; + k267: + goto k266; + f266: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k266: + + return true; + } + + private function b404(): bool + { + if (!($this->ids[$this->p] === 54)) { + if ($this->p > $this->f) { + $this->rec(404); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 54)) { + if ($this->p >= $this->f) { + $this->rec(86); + } + + goto f275;} + + $this->v[$this->n++] = $this->token($this->p++); + // b403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f275;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f276;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f276;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k276; + f276: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f275; + k276: + goto k275; + f275: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k275: + + return true; + } + + private function b405(): bool + { + if (!($this->ids[$this->p] === 52)) { + if ($this->p > $this->f) { + $this->rec(405); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 52)) { + if ($this->p >= $this->f) { + $this->rec(88); + } + + goto f269;} + + $this->v[$this->n++] = $this->token($this->p++); + // b403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f269;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f270;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f270;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k270; + f270: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f269; + k270: + goto k269; + f269: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k269: + + return true; + } + + private function b406(): bool + { + if (!($this->ids[$this->p] === 53)) { + if ($this->p > $this->f) { + $this->rec(406); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 53)) { + if ($this->p >= $this->f) { + $this->rec(89); + } + + goto f272;} + + $this->v[$this->n++] = $this->token($this->p++); + // b403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f272;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f273;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f273;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k273; + f273: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f272; + k273: + goto k272; + f272: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k272: + + return true; + } + + private function b409(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(409); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b435 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(435); + } + + goto n302;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f303;} + if (!$this->b415()) { + goto f303;} + goto k303; + f303: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n302; + k303: + goto a301; + n302: + break; + case 9: + // b410 + if (!($this->ids[$this->p] === 9)) { + if ($this->p > $this->f) { + $this->rec(410); + } + + goto n304;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 9)) { + if ($this->p >= $this->f) { + $this->rec(25); + } + + goto f305;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T648acf56[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s412(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f305;} + } + if (!$this->b199()) { + goto f305;} + if (!$this->b415()) { + goto f305;} + goto k305; + f305: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n304; + k305: + goto a301; + n304: + // b435 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(435); + } + + goto n307;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f308;} + if (!$this->b415()) { + goto f308;} + goto k308; + f308: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n307; + k308: + goto a301; + n307: + break; + } + + if ($this->p > $this->f) { + $this->rec(409); + } + + goto f300; + a301: + goto k300; + f300: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k300: + + return true; + } + + private function b415(): bool + { + if (!isset(self::T02ca7bff[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(415); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // b416 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(416); + } + + goto n555;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f556;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b417()) { + goto f556;} + goto k556; + f556: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n555; + k556: + goto a554; + n555: + break; + case 32: + case 34: + case 82: + case 86: + if (!$this->b417()) { + goto n557;} + goto a554; + n557: + break; + } + + if ($this->p > $this->f) { + $this->rec(415); + } + + goto f553; + a554: + goto k553; + f553: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k553: + + return true; + } + + private function b417(): bool + { + if (!isset(self::Tf86de613[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(417); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b418 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n796;} + goto a795; + n796: + break; + case 34: + case 86: + if (!$this->b419()) { + goto n797;} + goto a795; + n797: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n798;} + goto a795; + n798: + break; + } + + if ($this->p > $this->f) { + $this->rec(418); + } + + goto f794; + a795: + goto k794; + f794: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f793; + k794: + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f793;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T9373805c[$this->ids[$this->p]])) { + // b424 + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(424); + } + + goto n799;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b425()) { + goto f800;} + if (($this->ids[$this->p] === 40)) { + if (!$this->b433()) { + goto n801;} + n801: + } elseif ($this->p > $this->f) { + $this->rec(433); + } + goto k800; + f800: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n799; + k800: + n799: + } elseif ($this->p > $this->f) { + $this->rec(424); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f793;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f793;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k793; + f793: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k793: + + return true; + } + + private function b419(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(419); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1036;} + + $this->v[$this->n++] = $this->token($this->p++); + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1036;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1037;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1037;} + if (!$this->b293()) { + goto f1037;} + if (!$this->b296()) { + goto f1037;} + goto k1037; + f1037: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1036; + k1037: + $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + if (($this->ids[$this->p] === 40)) { + // b421 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(421); + } + + goto n1038;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(422); + } + + goto e1040; + } + + if (!$this->b422()) { + goto e1040;} + if ($this->p === $b2) { + $k2 = 1; + goto e1040; + } + + $k2++; + } + e1040: + + if ($k2 < 1) { + goto f1039; + } + goto k1039; + f1039: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1038; + k1039: + n1038: + } elseif ($this->p > $this->f) { + $this->rec(421); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1036;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1036; + f1036: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1036: + + return true; + } + + private function b422(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(422); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1397;} + + $this->v[$this->n++] = $this->token($this->p++); + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1397;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1398;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1398;} + if (!$this->b293()) { + goto f1398;} + if (!$this->b296()) { + goto f1398;} + goto k1398; + f1398: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1397; + k1398: + $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto k1397; + f1397: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1397: + + return true; + } + + private function b425(): bool + { + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(425); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + case 30: + case 32: + case 82: + if (!$this->b426()) { + goto n1043;} + goto a1042; + n1043: + break; + case 26: + case 27: + case 42: + // b431 + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(431); + } + + goto n1044;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1045;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b429()) { + goto f1045;} + goto k1045; + f1045: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1044; + k1045: + goto a1042; + n1044: + break; + } + + if ($this->p > $this->f) { + $this->rec(425); + } + + goto f1041; + a1042: + goto k1041; + f1041: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1041: + $this->v[$m1] = $this->reduceMethodParameter($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b426(): bool + { + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(426); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(428); + } + + goto f1399;} + if (!$this->b199()) { + goto f1399;} + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1399;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b429()) { + goto f1399;} + goto k1399; + f1399: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1399: + + return true; + } + + private function b429(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1402;} + goto a1401; + n1402: + break; + case 46: + // b430 + if (!($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->rec(430); + } + + goto n1403;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f1404;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b340()) { + goto f1404;} + goto k1404; + f1404: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1403; + k1404: + goto a1401; + n1403: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1405;} + goto a1401; + n1405: + break; + } + + if ($this->p > $this->f) { + $this->rec(429); + } + + goto f1400; + a1401: + goto k1400; + f1400: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1400: + + return true; + } + + private function b433(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(433); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(434); + } + + goto e1047; + } + + // b434 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(434); + } + + goto e1047;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1048;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b425()) { + goto f1048;} + goto k1048; + f1048: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1047; + k1048: + if ($this->p === $b1) { + $k1 = 1; + goto e1047; + } + + $k1++; + } + e1047: + + if ($k1 < 1) { + goto f1046; + } + goto k1046; + f1046: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1046: + + return true; + } + + private function b436(): bool + { + if (!($this->ids[$this->p] === 62)) { + if ($this->p > $this->f) { + $this->rec(436); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 62)) { + if ($this->p >= $this->f) { + $this->rec(100); + } + + goto f286;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f286;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f286;} + if (!$this->b293()) { + goto f286;} + if (!$this->b296()) { + goto f286;} + // b388 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f287;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f287;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f287;} + } + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f287;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k287; + f287: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f286; + k287: + goto k286; + f286: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k286: + + return true; + } + + private function b437(): bool + { + if (!($this->ids[$this->p] === 68)) { + if ($this->p > $this->f) { + $this->rec(437); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 68)) { + if ($this->p >= $this->f) { + $this->rec(101); + } + + goto f299;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b438()) { + goto f299;} + goto k299; + f299: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k299: + + return true; + } + + private function b438(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f550;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b320()) { + goto f550;} + // b388 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f551;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f551;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f551;} + } + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f551;} + $this->v[$this->n++] = $this->reduceText($this->context($o3)); + goto k551; + f551: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f550; + k551: + goto k550; + f550: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k550: + + return true; + } + + private function b439(): bool + { + if (!($this->ids[$this->p] === 64)) { + if ($this->p > $this->f) { + $this->rec(439); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 64)) { + if ($this->p >= $this->f) { + $this->rec(102); + } + + goto f292;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b438()) { + goto f292;} + goto k292; + f292: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k292: + + return true; + } + + private function b440(): bool + { + if (!($this->ids[$this->p] === 74)) { + if ($this->p > $this->f) { + $this->rec(440); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 74)) { + if ($this->p >= $this->f) { + $this->rec(103); + } + + goto f313;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b438()) { + goto f313;} + goto k313; + f313: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k313: + + return true; + } + + private function b441(): bool + { + if (!($this->ids[$this->p] === 66)) { + if ($this->p > $this->f) { + $this->rec(441); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 66)) { + if ($this->p >= $this->f) { + $this->rec(104); + } + + goto f293;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f293;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 46)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->b199()) { + goto f293;} + if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(77); + } + + goto f293;} + goto k293; + f293: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k293: + + return true; + } + + private function b442(): bool + { + if (!($this->ids[$this->p] === 66)) { + if ($this->p > $this->f) { + $this->rec(442); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 66)) { + if ($this->p >= $this->f) { + $this->rec(104); + } + + goto f294;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f294;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 46)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f294;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k294; + f294: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k294: + $this->v[$m1] = $this->reduceInvalidTypeAliasTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b443(): bool + { + if (!($this->ids[$this->p] === 58)) { + if ($this->p > $this->f) { + $this->rec(443); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 58)) { + if ($this->p >= $this->f) { + $this->rec(105); + } + + goto f283;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f283;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 10)) { + if ($this->p >= $this->f) { + $this->rec(26); + } + + goto f283;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f283;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b444()) { + goto f283;} + goto k283; + f283: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k283: + + return true; + } + + private function b444(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n516;} + goto a515; + n516: + break; + case 14: + // b445 + if (!($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->rec(445); + } + + goto n517;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 14)) { + if ($this->p >= $this->f) { + $this->rec(28); + } + + goto f518;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f518;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k518; + f518: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n517; + k518: + goto a515; + n517: + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n519;} + goto a515; + n519: + break; + } + + if ($this->p > $this->f) { + $this->rec(444); + } + + goto f514; + a515: + goto k514; + f514: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k514: + + return true; + } + + private function b446(): bool + { + if (!($this->ids[$this->p] === 59)) { + if ($this->p > $this->f) { + $this->rec(446); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 59)) { + if ($this->p >= $this->f) { + $this->rec(106); + } + + goto f284;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 31)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(52); + } + if (($this->ids[$this->p] === 46)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->b199()) { + goto f284;} + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(448); + } + + goto f284;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b449()) { + goto f284;} + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f284;} + $this->v[$this->n++] = $this->reduceText($this->context($o2)); + goto k284; + f284: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k284: + + return true; + } + + private function b449(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n522;} + goto a521; + n522: + break; + case 45: + // b450 + if (!($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->rec(450); + } + + goto n523;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 45)) { + if ($this->p >= $this->f) { + $this->rec(68); + } + + goto f524;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f524;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b451()) { + goto f524;} + goto k524; + f524: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n523; + k524: + goto a521; + n523: + if (($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n525;} + goto a521; + n525: + break; + } + + if ($this->p > $this->f) { + $this->rec(449); + } + + goto f520; + a521: + goto k520; + f520: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k520: + + return true; + } + + private function b451(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n783;} + goto a782; + n783: + break; + case 32: + case 82: + // b452 + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(452); + } + + goto n784;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f785;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f785;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k785; + f785: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n784; + k785: + goto a782; + n784: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n786;} + goto a782; + n786: + break; + } + + if ($this->p > $this->f) { + $this->rec(451); + } + + goto f781; + a782: + goto k781; + f781: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k781: + + return true; + } + + private function s0(): bool + { + if (!($this->ids[$this->p] === 49)) { + if ($this->p > $this->f) { + $this->rec(0); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 49)) { + if ($this->p >= $this->f) { + $this->rec(1); + } + + goto f3;} + + $this->p++; + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + // s5 + $o2 = $this->p; + if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f5;} + } + if (!$this->s8()) { + goto f5;} + // s460 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + // s461 + $o4 = $this->p; + if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f8;} + } + if (!$this->s8()) { + goto f8;} + goto k8; + f8: + $this->p = $o4; + goto e7; + k8: + if ($this->p === $b3) { + goto e7; + } + } + e7: + goto k5; + f5: + $this->p = $o2; + goto n4; + k5: + n4: + if (!($this->ids[$this->p] === 50)) { + if ($this->p >= $this->f) { + $this->rec(7); + } + + goto f3;} + + $this->p++; + goto k3; + f3: + $this->p = $o1; + return false; + k3: + + return true; + } + + private function s8(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s188 + $o2 = $this->p; + if (!$this->s189()) { + goto f207;} + // s458 + $o3 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + if (!($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->rec(7); + } + + goto n210;} + goto a209; + n210: + break; + case 80: + $this->p++; + goto a209; + break; + } + + if ($this->p > $this->f) { + $this->rec(458); + } + + goto f208; + a209: + goto k208; + f208: + $this->p = $o3; + goto f207; + k208: + goto k207; + f207: + $this->p = $o2; + goto n206; + k207: + goto a205; + n206: + break; + case 76: + case 77: + case 78: + case 79: + // s9 + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(9); + } + + goto n211;} + + $o2 = $this->p; + if (!$this->s10()) { + goto f212;} + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + goto k212; + f212: + $this->p = $o2; + goto n211; + k212: + goto a205; + n211: + // s188 + $o2 = $this->p; + if (!$this->s189()) { + goto f214;} + // s458 + $o3 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + if (!($this->ids[$this->p] === 50)) { + if ($this->p > $this->f) { + $this->rec(7); + } + + goto n217;} + goto a216; + n217: + break; + case 80: + $this->p++; + goto a216; + break; + } + + if ($this->p > $this->f) { + $this->rec(458); + } + + goto f215; + a216: + goto k215; + f215: + $this->p = $o3; + goto f214; + k215: + goto k214; + f214: + $this->p = $o2; + goto n213; + k214: + goto a205; + n213: + break; + } + + if ($this->p > $this->f) { + $this->rec(8); + } + + goto f204; + a205: + goto k204; + f204: + $this->p = $o1; + return false; + k204: + + return true; + } + + private function s10(): bool + { + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(10); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + // s11 + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(11); + } + + goto n16;} + + $o2 = $this->p; + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(12); + } + + goto f17;} + + $this->p++; + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f17;} + } + // s19 + $o3 = $this->p; + // s20 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(21); + } + + goto e20; + } + + $this->p++; + } + e20: + if (!$this->s74()) { + goto f18;} + goto k18; + f18: + $this->p = $o3; + goto f17; + k18: + goto k17; + f17: + $this->p = $o2; + goto n16; + k17: + goto a15; + n16: + // s134 + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(134); + } + + goto n21;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + if (!$this->s187()) { + goto n24;} + goto a23; + n24: + break; + case 78: + case 79: + if (!$this->s135()) { + goto n25;} + goto a23; + n25: + break; + } + + if ($this->p > $this->f) { + $this->rec(134); + } + + goto f22; + a23: + goto k22; + f22: + $this->p = $o2; + goto n21; + k22: + goto a15; + n21: + break; + case 78: + case 79: + // s134 + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(134); + } + + goto n26;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + if (!$this->s187()) { + goto n29;} + goto a28; + n29: + break; + case 78: + case 79: + if (!$this->s135()) { + goto n30;} + goto a28; + n30: + break; + } + + if ($this->p > $this->f) { + $this->rec(134); + } + + goto f27; + a28: + goto k27; + f27: + $this->p = $o2; + goto n26; + k27: + goto a15; + n26: + break; + } + + if ($this->p > $this->f) { + $this->rec(10); + } + + goto f14; + a15: + goto k14; + f14: + $this->p = $o1; + return false; + k14: + + return true; + } + + private function s74(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s75 + $o2 = $this->p; + if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(77); + } + + goto f230;} + if (!$this->s78()) { + goto f230;} + goto k230; + f230: + $this->p = $o2; + goto n229; + k230: + goto a228; + n229: + // s117 + $o2 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f232;} + if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { + if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f232;} + } + if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s123(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f232;} + } + if (!$this->s125()) { + goto f232;} + goto k232; + f232: + $this->p = $o2; + goto n231; + k232: + goto a228; + n231: + break; + case 76: + case 78: + // s75 + $o2 = $this->p; + if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(77); + } + + goto f235;} + if (!$this->s78()) { + goto f235;} + goto k235; + f235: + $this->p = $o2; + goto n234; + k235: + goto a228; + n234: + // s117 + $o2 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f237;} + if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { + if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f237;} + } + if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s123(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f237;} + } + if (!$this->s125()) { + goto f237;} + goto k237; + f237: + $this->p = $o2; + goto n236; + k237: + goto a228; + n236: + if (!isset(self::Tb3a20a39[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(121); + } + + goto n239;} + goto a228; + n239: + break; + } + + if ($this->p > $this->f) { + $this->rec(74); + } + + goto f227; + a228: + goto k227; + f227: + $this->p = $o1; + return false; + k227: + + return true; + } + + private function s78(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 80)) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s113(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n489;} + } + goto a488; + n489: + break; + case 80: + if (!$this->s79()) { + goto n491;} + goto a488; + n491: + if (!$this->s110()) { + goto n492;} + goto a488; + n492: + if (($this->ids[$this->p] === 80)) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s113(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n493;} + } + goto a488; + n493: + break; + } + + if ($this->p > $this->f) { + $this->rec(78); + } + + goto f487; + a488: + goto k487; + f487: + $this->p = $o1; + return false; + k487: + + return true; + } + + private function s79(): bool + { + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(79); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($this->p >= $this->f) { + $this->rec(3); + } + + goto f745;} + + $this->p++; + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f745;} + } + // s109 + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(109); + } + + goto f745;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(21); + } + + goto e747; + } + + $this->p++; + + $k2++; + } + e747: + + if ($k2 < 1) { + goto f746; + } + goto k746; + f746: + $this->p = $o2; + goto f745; + k746: + if (!$this->s74()) { + goto f745;} + goto k745; + f745: + $this->p = $o1; + return false; + k745: + + return true; + } + + private function s110(): bool + { + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(110); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($this->p >= $this->f) { + $this->rec(3); + } + + goto f748;} + + $this->p++; + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f748;} + } + // s111 + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(111); + } + + goto f748;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 80: + if (!$this->s79()) { + goto n751;} + goto a750; + n751: + if (!$this->s110()) { + goto n752;} + goto a750; + n752: + break; + } + + if ($this->p > $this->f) { + $this->rec(111); + } + + goto f749; + a750: + goto k749; + f749: + $this->p = $o2; + goto f748; + k749: + goto k748; + f748: + $this->p = $o1; + return false; + k748: + + return true; + } + + private function s113(): bool + { + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(113); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 80: + // s114 + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(114); + } + + goto n741;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($this->p >= $this->f) { + $this->rec(3); + } + + goto f742;} + + $this->p++; + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f742;} + } + if (!$this->s113()) { + goto f742;} + goto k742; + f742: + $this->p = $o2; + goto n741; + k742: + goto a740; + n741: + // s115 + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(115); + } + + goto n743;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($this->p >= $this->f) { + $this->rec(3); + } + + goto f744;} + + $this->p++; + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f744;} + } + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(116); + } + + goto f744;} + + $this->p++; + goto k744; + f744: + $this->p = $o2; + goto n743; + k744: + goto a740; + n743: + break; + } + + if ($this->p > $this->f) { + $this->rec(113); + } + + goto f739; + a740: + goto k739; + f739: + $this->p = $o1; + return false; + k739: + + return true; + } + + private function s123(): bool + { + if (!isset(self::Tce49e0fc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(123); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tce49e0fc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(124); + } + + goto f495;} + + $this->p++; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f495;} + + $this->p++; + goto k495; + f495: + $this->p = $o1; + return false; + k495: + + return true; + } + + private function s125(): bool + { + $o1 = $this->p; + // s126 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(116); + } + + goto e259; + } + + $this->p++; + } + e259: + if (($this->ids[$this->p] === 80)) { + if (!$this->s128()) { + goto n260;} + n260: + } elseif ($this->p > $this->f) { + $this->rec(128); + } + + return true; + } + + private function s128(): bool + { + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(128); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b1 > $this->f) { + $this->rec(129); + } + + goto e510; + } + + // s129 + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(129); + } + + goto e510;} + + $o2 = $this->p; + if (!$this->s130()) { + goto f511;} + // s132 + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(132); + } + + goto f511;} + + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(116); + } + + goto e513; + } + + $this->p++; + + $k3++; + } + e513: + + if ($k3 < 1) { + goto f512; + } + goto k512; + f512: + $this->p = $o3; + goto f511; + k512: + goto k511; + f511: + $this->p = $o2; + goto e510; + k511: + if ($this->p === $b1) { + $k1 = 1; + goto e510; + } + + $k1++; + } + e510: + + if ($k1 < 1) { + goto f509; + } + goto k509; + f509: + $this->p = $o1; + return false; + k509: + + return true; + } + + private function s130(): bool + { + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(130); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b1 > $this->f) { + $this->rec(131); + } + + goto e779; + } + + // s131 + if (!($this->ids[$this->p] === 80)) { + if ($this->p > $this->f) { + $this->rec(131); + } + + goto e779;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($this->p >= $this->f) { + $this->rec(3); + } + + goto f780;} + + $this->p++; + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f780;} + } + goto k780; + f780: + $this->p = $o2; + goto e779; + k780: + if ($this->p === $b1) { + $k1 = 1; + goto e779; + } + + $k1++; + } + e779: + + if ($k1 < 1) { + goto f778; + } + goto k778; + f778: + $this->p = $o1; + return false; + k778: + + return true; + } + + private function s135(): bool + { + if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(135); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(136); + } + + goto f248;} + + $this->p++; + if (!$this->s137()) { + goto f248;} + // s19 + $o2 = $this->p; + // s20 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(21); + } + + goto e251; + } + + $this->p++; + } + e251: + if (!$this->s74()) { + goto f249;} + goto k249; + f249: + $this->p = $o2; + goto f248; + k249: + goto k248; + f248: + $this->p = $o1; + return false; + k248: + + return true; + } + + private function s137(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n502;} + goto a501; + n502: + break; + case 32: + case 82: + // s138 + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(138); + } + + goto n503;} + + $o2 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f504;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e506; + } + + $this->p++; + } + e506: + if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if (!$this->s141()) { + goto n507;} + n507: + } elseif ($this->p > $this->f) { + $this->rec(141); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f504;} + + $this->p++; + goto k504; + f504: + $this->p = $o2; + goto n503; + k504: + goto a501; + n503: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n508;} + goto a501; + n508: + break; + } + + if ($this->p > $this->f) { + $this->rec(137); + } + + goto f500; + a501: + goto k500; + f500: + $this->p = $o1; + return false; + k500: + + return true; + } + + private function s138(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(138); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1618;} + + $this->p++; + // s139 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1620; + } + + $this->p++; + } + e1620: + if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { + // s141 + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(141); + } + + goto n1621;} + + $o2 = $this->p; + if (!$this->s142()) { + goto f1622;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1624; + } + + $this->p++; + } + e1624: + if (($this->ids[$this->p] === 40)) { + if (!$this->s182()) { + goto n1625;} + n1625: + } elseif ($this->p > $this->f) { + $this->rec(182); + } + goto k1622; + f1622: + $this->p = $o2; + goto n1621; + k1622: + n1621: + } elseif ($this->p > $this->f) { + $this->rec(141); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1618;} + + $this->p++; + goto k1618; + f1618: + $this->p = $o1; + return false; + k1618: + + return true; + } + + private function s141(): bool + { + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(141); + } + + return false;} + + $o1 = $this->p; + if (!$this->s142()) { + goto f496;} + // s139 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e498; + } + + $this->p++; + } + e498: + if (($this->ids[$this->p] === 40)) { + if (!$this->s182()) { + goto n499;} + n499: + } elseif ($this->p > $this->f) { + $this->rec(182); + } + goto k496; + f496: + $this->p = $o1; + return false; + k496: + + return true; + } + + private function s142(): bool + { + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(142); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + if (!$this->s146()) { + goto n755;} + goto a754; + n755: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->s143()) { + goto n756;} + goto a754; + n756: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n757;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f758;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f758;} + } + goto k758; + f758: + $this->p = $o2; + goto n757; + k758: + goto a754; + n757: + // s160 + if (!isset(self::T96867045[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(160); + } + + goto n759;} + + $o2 = $this->p; + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f760;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f760;} + + $this->p++; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f760;} + + $this->p++; + if (!$this->s163()) { + goto f760;} + goto k760; + f760: + $this->p = $o2; + goto n759; + k760: + goto a754; + n759: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + if (!$this->s143()) { + goto n761;} + goto a754; + n761: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n762;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f763;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f763;} + } + goto k763; + f763: + $this->p = $o2; + goto n762; + k763: + goto a754; + n762: + break; + case 22: + case 23: + // s155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n764;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->s156()) { + goto n767;} + goto a766; + n767: + break; + case 23: + $this->p++; + goto a766; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f765; + a766: + goto k765; + f765: + $this->p = $o2; + goto n764; + k765: + goto a754; + n764: + break; + case 38: + case 83: + // s148 + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(148); + } + + goto n768;} + + $o2 = $this->p; + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(149); + } + + goto f769;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e771; + } + + $this->p++; + } + e771: + if (isset(self::T1490fe7f[$this->ids[$this->p]])) { + if (!$this->s151()) { + goto n772;} + n772: + } elseif ($this->p > $this->f) { + $this->rec(151); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f769;} + + $this->p++; + goto k769; + f769: + $this->p = $o2; + goto n768; + k769: + goto a754; + n768: + break; + case 19: + $this->p++; + goto a754; + break; + case 20: + $this->p++; + goto a754; + break; + } + + if ($this->p > $this->f) { + $this->rec(142); + } + + goto f753; + a754: + goto k753; + f753: + $this->p = $o1; + return false; + k753: + + return true; + } + + private function s143(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(143); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1005;} + + $this->p++; + // s139 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1007; + } + + $this->p++; + } + e1007: + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f1005;} + + $this->p++; + // s139 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1009; + } + + $this->p++; + } + e1009: + if (!$this->s145()) { + goto f1005;} + goto k1005; + f1005: + $this->p = $o1; + return false; + k1005: + + return true; + } + + private function s145(): bool + { + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(145); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + // s146 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + goto n1317;} + + $o2 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f1318;} + + $this->p++; + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->s138()) { + goto n1319;} + n1319: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k1318; + f1318: + $this->p = $o2; + goto n1317; + k1318: + goto a1316; + n1317: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1320;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1321;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1321;} + } + goto k1321; + f1321: + $this->p = $o2; + goto n1320; + k1321: + goto a1316; + n1320: + // s160 + if (!isset(self::T96867045[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(160); + } + + goto n1322;} + + $o2 = $this->p; + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1323;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1323;} + + $this->p++; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1323;} + + $this->p++; + if (!$this->s163()) { + goto f1323;} + goto k1323; + f1323: + $this->p = $o2; + goto n1322; + k1323: + goto a1316; + n1322: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1324;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1325;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1325;} + } + goto k1325; + f1325: + $this->p = $o2; + goto n1324; + k1325: + goto a1316; + n1324: + break; + case 22: + case 23: + // s155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1326;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->s156()) { + goto n1329;} + goto a1328; + n1329: + break; + case 23: + $this->p++; + goto a1328; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1327; + a1328: + goto k1327; + f1327: + $this->p = $o2; + goto n1326; + k1327: + goto a1316; + n1326: + break; + case 38: + case 83: + // s148 + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(148); + } + + goto n1330;} + + $o2 = $this->p; + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(149); + } + + goto f1331;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1333; + } + + $this->p++; + } + e1333: + if (isset(self::T1490fe7f[$this->ids[$this->p]])) { + if (!$this->s151()) { + goto n1334;} + n1334: + } elseif ($this->p > $this->f) { + $this->rec(151); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f1331;} + + $this->p++; + goto k1331; + f1331: + $this->p = $o2; + goto n1330; + k1331: + goto a1316; + n1330: + break; + case 19: + $this->p++; + goto a1316; + break; + case 20: + $this->p++; + goto a1316; + break; + } + + if ($this->p > $this->f) { + $this->rec(145); + } + + goto f1315; + a1316: + goto k1315; + f1315: + $this->p = $o1; + return false; + k1315: + + return true; + } + + private function s146(): bool + { + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f999;} + + $this->p++; + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + // s138 + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(138); + } + + goto n1000;} + + $o2 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1001;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1003; + } + + $this->p++; + } + e1003: + if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if (!$this->s141()) { + goto n1004;} + n1004: + } elseif ($this->p > $this->f) { + $this->rec(141); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1001;} + + $this->p++; + goto k1001; + f1001: + $this->p = $o2; + goto n1000; + k1001: + n1000: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k999; + f999: + $this->p = $o1; + return false; + k999: + + return true; + } + + private function s151(): bool + { + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(151); + } + + return false;} + + $o1 = $this->p; + if (!$this->s152()) { + goto f1014;} + // s139 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 >= $this->f) { + $this->rec(3); + } + + goto e1016; + } + + $this->p++; + } + e1016: + if (($this->ids[$this->p] === 40)) { + if (!$this->s176()) { + goto n1017;} + n1017: + } elseif ($this->p > $this->f) { + $this->rec(176); + } + goto k1014; + f1014: + $this->p = $o1; + return false; + k1014: + + return true; + } + + private function s152(): bool + { + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(152); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + // s146 + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + goto n1337;} + + $o2 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f1338;} + + $this->p++; + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->s138()) { + goto n1339;} + n1339: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k1338; + f1338: + $this->p = $o2; + goto n1337; + k1338: + goto a1336; + n1337: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + // s153 + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + goto n1340;} + + $o2 = $this->p; + if (!$this->s154()) { + goto f1341;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1343; + } + + $this->p++; + } + e1343: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1341;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1345; + } + + $this->p++; + } + e1345: + if (!$this->s145()) { + goto f1341;} + goto k1341; + f1341: + $this->p = $o2; + goto n1340; + k1341: + goto a1336; + n1340: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1346;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1347;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1347;} + } + goto k1347; + f1347: + $this->p = $o2; + goto n1346; + k1347: + goto a1336; + n1346: + // s160 + if (!isset(self::T96867045[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(160); + } + + goto n1348;} + + $o2 = $this->p; + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1349;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1349;} + + $this->p++; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1349;} + + $this->p++; + if (!$this->s163()) { + goto f1349;} + goto k1349; + f1349: + $this->p = $o2; + goto n1348; + k1349: + goto a1336; + n1348: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + // s153 + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + goto n1350;} + + $o2 = $this->p; + if (!$this->s154()) { + goto f1351;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1353; + } + + $this->p++; + } + e1353: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1351;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1355; + } + + $this->p++; + } + e1355: + if (!$this->s145()) { + goto f1351;} + goto k1351; + f1351: + $this->p = $o2; + goto n1350; + k1351: + goto a1336; + n1350: + // s172 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + goto n1356;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1357;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1357;} + } + goto k1357; + f1357: + $this->p = $o2; + goto n1356; + k1357: + goto a1336; + n1356: + break; + case 22: + case 23: + // s153 + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + goto n1358;} + + $o2 = $this->p; + if (!$this->s154()) { + goto f1359;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1361; + } + + $this->p++; + } + e1361: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1359;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1363; + } + + $this->p++; + } + e1363: + if (!$this->s145()) { + goto f1359;} + goto k1359; + f1359: + $this->p = $o2; + goto n1358; + k1359: + goto a1336; + n1358: + // s155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1364;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->s156()) { + goto n1367;} + goto a1366; + n1367: + break; + case 23: + $this->p++; + goto a1366; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1365; + a1366: + goto k1365; + f1365: + $this->p = $o2; + goto n1364; + k1365: + goto a1336; + n1364: + break; + case 38: + case 83: + // s148 + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(148); + } + + goto n1368;} + + $o2 = $this->p; + if (!isset(self::T34048a70[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(149); + } + + goto f1369;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1371; + } + + $this->p++; + } + e1371: + if (isset(self::T1490fe7f[$this->ids[$this->p]])) { + if (!$this->s151()) { + goto n1372;} + n1372: + } elseif ($this->p > $this->f) { + $this->rec(151); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f1369;} + + $this->p++; + goto k1369; + f1369: + $this->p = $o2; + goto n1368; + k1369: + goto a1336; + n1368: + break; + case 19: + $this->p++; + goto a1336; + break; + case 20: + // s153 + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + goto n1373;} + + $o2 = $this->p; + if (!$this->s154()) { + goto f1374;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1376; + } + + $this->p++; + } + e1376: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1374;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1378; + } + + $this->p++; + } + e1378: + if (!$this->s145()) { + goto f1374;} + goto k1374; + f1374: + $this->p = $o2; + goto n1373; + k1374: + goto a1336; + n1373: + $this->p++; + goto a1336; + break; + case 21: + // s153 + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(153); + } + + goto n1379;} + + $o2 = $this->p; + if (!$this->s154()) { + goto f1380;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1382; + } + + $this->p++; + } + e1382: + if (!isset(self::Ta7068161[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(171); + } + + goto f1380;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1384; + } + + $this->p++; + } + e1384: + if (!$this->s145()) { + goto f1380;} + goto k1380; + f1380: + $this->p = $o2; + goto n1379; + k1380: + goto a1336; + n1379: + break; + } + + if ($this->p > $this->f) { + $this->rec(152); + } + + goto f1335; + a1336: + goto k1335; + f1335: + $this->p = $o1; + return false; + k1335: + + return true; + } + + private function s154(): bool + { + if (!isset(self::T7726a0df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(154); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + // s160 + if (!isset(self::T96867045[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(160); + } + + goto n1628;} + + $o2 = $this->p; + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if (isset(self::T00b73ddb[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1629;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1629;} + + $this->p++; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1629;} + + $this->p++; + if (!$this->s163()) { + goto f1629;} + goto k1629; + f1629: + $this->p = $o2; + goto n1628; + k1629: + goto a1627; + n1628: + // s169 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(169); + } + + goto n1630;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1631;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1631;} + } + goto k1631; + f1631: + $this->p = $o2; + goto n1630; + k1631: + goto a1627; + n1630: + break; + case 7: + case 15: + case 16: + case 17: + case 18: + // s169 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(169); + } + + goto n1632;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1633;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1633;} + } + goto k1633; + f1633: + $this->p = $o2; + goto n1632; + k1633: + goto a1627; + n1632: + break; + case 22: + case 23: + // s155 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + goto n1634;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 22: + if (!$this->s156()) { + goto n1637;} + goto a1636; + n1637: + break; + case 23: + $this->p++; + goto a1636; + break; + } + + if ($this->p > $this->f) { + $this->rec(155); + } + + goto f1635; + a1636: + goto k1635; + f1635: + $this->p = $o2; + goto n1634; + k1635: + goto a1627; + n1634: + break; + case 20: + $this->p++; + goto a1627; + break; + case 21: + $this->p++; + goto a1627; + break; + } + + if ($this->p > $this->f) { + $this->rec(154); + } + + goto f1626; + a1627: + goto k1626; + f1626: + $this->p = $o1; + return false; + k1626: + + return true; + } + + private function s156(): bool + { + if (!($this->ids[$this->p] === 22)) { + if ($this->p > $this->f) { + $this->rec(156); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 22)) { + if ($this->p >= $this->f) { + $this->rec(44); + } + + goto f1010;} + + $this->p++; + if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + // s158 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(158); + } + + goto n1011;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(159); + } + + goto e1013; + } + + $this->p++; + + $k2++; + } + e1013: + + if ($k2 < 1) { + goto f1012; + } + goto k1012; + f1012: + $this->p = $o2; + goto n1011; + k1012: + n1011: + } elseif ($this->p > $this->f) { + $this->rec(158); + } + goto k1010; + f1010: + $this->p = $o1; + return false; + k1010: + + return true; + } + + private function s163(): bool + { + if (!isset(self::T1895157b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(163); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // s166 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + goto n722;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f723;} + + $this->p++; + if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!$this->s168()) { + goto n724;} + n724: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + goto k723; + f723: + $this->p = $o2; + goto n722; + k723: + goto a721; + n722: + break; + case 48: + // s164 + if (!($this->ids[$this->p] === 48)) { + if ($this->p > $this->f) { + $this->rec(164); + } + + goto n725;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 48)) { + if ($this->p >= $this->f) { + $this->rec(71); + } + + goto f726;} + + $this->p++; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->s166()) { + goto n727;} + n727: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto k726; + f726: + $this->p = $o2; + goto n725; + k726: + goto a721; + n725: + break; + case 85: + $this->p++; + goto a721; + break; + } + + if ($this->p > $this->f) { + $this->rec(163); + } + + goto f720; + a721: + goto k720; + f720: + $this->p = $o1; + return false; + k720: + + return true; + } + + private function s164(): bool + { + if (!($this->ids[$this->p] === 48)) { + if ($this->p > $this->f) { + $this->rec(164); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 48)) { + if ($this->p >= $this->f) { + $this->rec(71); + } + + goto f1288;} + + $this->p++; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->s166()) { + goto n1289;} + n1289: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto k1288; + f1288: + $this->p = $o1; + return false; + k1288: + + return true; + } + + private function s166(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f965;} + + $this->p++; + if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!$this->s168()) { + goto n966;} + n966: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + goto k965; + f965: + $this->p = $o1; + return false; + k965: + + return true; + } + + private function s168(): bool + { + if (!isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(168); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 48: + if (!$this->s164()) { + goto n964;} + goto a963; + n964: + break; + case 85: + $this->p++; + goto a963; + break; + } + + if ($this->p > $this->f) { + $this->rec(168); + } + + goto f962; + a963: + goto k962; + f962: + $this->p = $o1; + return false; + k962: + + return true; + } + + private function s169(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(169); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f623;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f623;} + } + goto k623; + f623: + $this->p = $o1; + return false; + k623: + + return true; + } + + private function s176(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(176); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(177); + } + + goto e1386; + } + + // s177 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(177); + } + + goto e1386;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1387;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1389; + } + + $this->p++; + } + e1389: + if (!$this->s178()) { + goto f1387;} + goto k1387; + f1387: + $this->p = $o2; + goto e1386; + k1387: + if ($this->p === $b1) { + $k1 = 1; + goto e1386; + } + + $k1++; + } + e1386: + + if ($k1 < 1) { + goto f1385; + } + goto k1385; + f1385: + $this->p = $o1; + return false; + k1385: + + return true; + } + + private function s178(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s180 + if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(180); + } + + goto n1640;} + + $o2 = $this->p; + if (!$this->s152()) { + goto f1641;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1643; + } + + $this->p++; + } + e1643: + goto k1641; + f1641: + $this->p = $o2; + goto n1640; + k1641: + goto a1639; + n1640: + break; + case 0: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 80: + case 81: + case 82: + case 84: + case 85: + case 86: + case -1: + break; + case 39: + if (!($this->ids[$this->p] === 39)) { + if ($this->p > $this->f) { + $this->rec(62); + } + + goto n1644;} + goto a1639; + n1644: + break; + } + + if ($this->p > $this->f) { + $this->rec(178); + } + + goto f1638; + a1639: + goto k1638; + f1638: + $this->p = $o1; + return false; + k1638: + + return true; + } + + private function s182(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(182); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(183); + } + + goto e774; + } + + // s183 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(183); + } + + goto e774;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f775;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e777; + } + + $this->p++; + } + e777: + if (!$this->s184()) { + goto f775;} + goto k775; + f775: + $this->p = $o2; + goto e774; + k775: + if ($this->p === $b1) { + $k1 = 1; + goto e774; + } + + $k1++; + } + e774: + + if ($k1 < 1) { + goto f773; + } + goto k773; + f773: + $this->p = $o1; + return false; + k773: + + return true; + } + + private function s184(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s186 + if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(186); + } + + goto n1020;} + + $o2 = $this->p; + if (!$this->s142()) { + goto f1021;} + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e1023; + } + + $this->p++; + } + e1023: + goto k1021; + f1021: + $this->p = $o2; + goto n1020; + k1021: + goto a1019; + n1020: + break; + case 0: + case 21: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 34: + case 35: + case 36: + case 37: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 80: + case 81: + case 82: + case 84: + case 85: + case 86: + case -1: + break; + case 33: + if (!($this->ids[$this->p] === 33)) { + if ($this->p > $this->f) { + $this->rec(53); + } + + goto n1024;} + goto a1019; + n1024: + break; + } + + if ($this->p > $this->f) { + $this->rec(184); + } + + goto f1018; + a1019: + goto k1018; + f1018: + $this->p = $o1; + return false; + k1018: + + return true; + } + + private function s187(): bool + { + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(187); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(12); + } + + goto f240;} + + $this->p++; + // s138 + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(138); + } + + goto f240;} + + $o2 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f241;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e243; + } + + $this->p++; + } + e243: + if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { + if (!$this->s141()) { + goto n244;} + n244: + } elseif ($this->p > $this->f) { + $this->rec(141); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f241;} + + $this->p++; + goto k241; + f241: + $this->p = $o2; + goto f240; + k241: + // s19 + $o2 = $this->p; + // s20 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T88030367[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(21); + } + + goto e247; + } + + $this->p++; + } + e247: + if (!$this->s74()) { + goto f245;} + goto k245; + f245: + $this->p = $o2; + goto f240; + k245: + goto k240; + f240: + $this->p = $o1; + return false; + k240: + + return true; + } + + private function s189(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s455 + $o2 = $this->p; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f52;} + } + // s457 + $o3 = $this->p; + if (!$this->s125()) { + goto f53;} + goto k53; + f53: + $this->p = $o3; + goto f52; + k53: + goto k52; + f52: + $this->p = $o2; + goto n51; + k52: + goto a50; + n51: + break; + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + if (!$this->s190()) { + goto n54;} + goto a50; + n54: + if (!$this->s454()) { + goto n55;} + goto a50; + n55: + // s455 + $o2 = $this->p; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f57;} + } + // s457 + $o3 = $this->p; + if (!$this->s125()) { + goto f58;} + goto k58; + f58: + $this->p = $o3; + goto f57; + k58: + goto k57; + f57: + $this->p = $o2; + goto n56; + k57: + goto a50; + n56: + break; + case 76: + case 77: + case 78: + case 79: + if (!$this->s454()) { + goto n59;} + goto a50; + n59: + // s455 + $o2 = $this->p; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f61;} + } + // s457 + $o3 = $this->p; + if (!$this->s125()) { + goto f62;} + goto k62; + f62: + $this->p = $o3; + goto f61; + k62: + goto k61; + f61: + $this->p = $o2; + goto n60; + k61: + goto a50; + n60: + break; + } + + if ($this->p > $this->f) { + $this->rec(189); + } + + goto f49; + a50: + goto k49; + f49: + $this->p = $o1; + return false; + k49: + + return true; + } + + private function s190(): bool + { + if (!isset(self::Tce49e0fc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(190); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 51: + // s402 + if (!($this->ids[$this->p] === 51)) { + if ($this->p > $this->f) { + $this->rec(402); + } + + goto n112;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 51)) { + if ($this->p >= $this->f) { + $this->rec(85); + } + + goto f113;} + + $this->p++; + // s403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f113;} + + $o3 = $this->p; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f114;} + + $this->p++; + if (!$this->s125()) { + goto f114;} + goto k114; + f114: + $this->p = $o3; + goto f113; + k114: + goto k113; + f113: + $this->p = $o2; + goto n112; + k113: + goto a111; + n112: + break; + case 52: + // s405 + if (!($this->ids[$this->p] === 52)) { + if ($this->p > $this->f) { + $this->rec(405); + } + + goto n115;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 52)) { + if ($this->p >= $this->f) { + $this->rec(88); + } + + goto f116;} + + $this->p++; + // s403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f116;} + + $o3 = $this->p; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f117;} + + $this->p++; + if (!$this->s125()) { + goto f117;} + goto k117; + f117: + $this->p = $o3; + goto f116; + k117: + goto k116; + f116: + $this->p = $o2; + goto n115; + k116: + goto a111; + n115: + break; + case 53: + // s406 + if (!($this->ids[$this->p] === 53)) { + if ($this->p > $this->f) { + $this->rec(406); + } + + goto n118;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 53)) { + if ($this->p >= $this->f) { + $this->rec(89); + } + + goto f119;} + + $this->p++; + // s403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f119;} + + $o3 = $this->p; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f120;} + + $this->p++; + if (!$this->s125()) { + goto f120;} + goto k120; + f120: + $this->p = $o3; + goto f119; + k120: + goto k119; + f119: + $this->p = $o2; + goto n118; + k119: + goto a111; + n118: + break; + case 54: + // s404 + if (!($this->ids[$this->p] === 54)) { + if ($this->p > $this->f) { + $this->rec(404); + } + + goto n121;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 54)) { + if ($this->p >= $this->f) { + $this->rec(86); + } + + goto f122;} + + $this->p++; + // s403 + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(403); + } + + goto f122;} + + $o3 = $this->p; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f123;} + + $this->p++; + if (!$this->s125()) { + goto f123;} + goto k123; + f123: + $this->p = $o3; + goto f122; + k123: + goto k122; + f122: + $this->p = $o2; + goto n121; + k122: + goto a111; + n121: + break; + case 55: + // s401 + if (!($this->ids[$this->p] === 55)) { + if ($this->p > $this->f) { + $this->rec(401); + } + + goto n124;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 55)) { + if ($this->p >= $this->f) { + $this->rec(87); + } + + goto f125;} + + $this->p++; + // s399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f125;} + + $o3 = $this->p; + if (!$this->s199()) { + goto f126;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f126;} + + $this->p++; + if (!$this->s125()) { + goto f126;} + goto k126; + f126: + $this->p = $o3; + goto f125; + k126: + goto k125; + f125: + $this->p = $o2; + goto n124; + k125: + goto a111; + n124: + break; + case 56: + // s395 + if (!($this->ids[$this->p] === 56)) { + if ($this->p > $this->f) { + $this->rec(395); + } + + goto n127;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 56)) { + if ($this->p >= $this->f) { + $this->rec(95); + } + + goto f128;} + + $this->p++; + if (!$this->s391()) { + goto f128;} + goto k128; + f128: + $this->p = $o2; + goto n127; + k128: + goto a111; + n127: + break; + case 57: + // s394 + if (!($this->ids[$this->p] === 57)) { + if ($this->p > $this->f) { + $this->rec(394); + } + + goto n129;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 57)) { + if ($this->p >= $this->f) { + $this->rec(94); + } + + goto f130;} + + $this->p++; + if (!$this->s391()) { + goto f130;} + goto k130; + f130: + $this->p = $o2; + goto n129; + k130: + goto a111; + n129: + break; + case 58: + // s443 + if (!($this->ids[$this->p] === 58)) { + if ($this->p > $this->f) { + $this->rec(443); + } + + goto n131;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 58)) { + if ($this->p >= $this->f) { + $this->rec(105); + } + + goto f132;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f132;} + + $this->p++; + if (!($this->ids[$this->p] === 10)) { + if ($this->p >= $this->f) { + $this->rec(26); + } + + goto f132;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f132;} + + $this->p++; + if (!$this->s444()) { + goto f132;} + goto k132; + f132: + $this->p = $o2; + goto n131; + k132: + goto a111; + n131: + break; + case 59: + // s446 + if (!($this->ids[$this->p] === 59)) { + if ($this->p > $this->f) { + $this->rec(446); + } + + goto n133;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 59)) { + if ($this->p >= $this->f) { + $this->rec(106); + } + + goto f134;} + + $this->p++; + if (($this->ids[$this->p] === 31)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(52); + } + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->s199()) { + goto f134;} + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(448); + } + + goto f134;} + + $this->p++; + if (!$this->s449()) { + goto f134;} + if (!$this->s125()) { + goto f134;} + goto k134; + f134: + $this->p = $o2; + goto n133; + k134: + goto a111; + n133: + break; + case 60: + // s397 + if (!($this->ids[$this->p] === 60)) { + if ($this->p > $this->f) { + $this->rec(397); + } + + goto n135;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 60)) { + if ($this->p >= $this->f) { + $this->rec(107); + } + + goto f136;} + + $this->p++; + if (!$this->s391()) { + goto f136;} + goto k136; + f136: + $this->p = $o2; + goto n135; + k136: + goto a111; + n135: + break; + case 61: + // s396 + if (!($this->ids[$this->p] === 61)) { + if ($this->p > $this->f) { + $this->rec(396); + } + + goto n137;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 61)) { + if ($this->p >= $this->f) { + $this->rec(96); + } + + goto f138;} + + $this->p++; + if (!$this->s391()) { + goto f138;} + goto k138; + f138: + $this->p = $o2; + goto n137; + k138: + goto a111; + n137: + break; + case 62: + if (!$this->s436()) { + goto n139;} + goto a111; + n139: + break; + case 63: + // s398 + if (!($this->ids[$this->p] === 63)) { + if ($this->p > $this->f) { + $this->rec(398); + } + + goto n140;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 63)) { + if ($this->p >= $this->f) { + $this->rec(98); + } + + goto f141;} + + $this->p++; + // s399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f141;} + + $o3 = $this->p; + if (!$this->s199()) { + goto f142;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f142;} + + $this->p++; + if (!$this->s125()) { + goto f142;} + goto k142; + f142: + $this->p = $o3; + goto f141; + k142: + goto k141; + f141: + $this->p = $o2; + goto n140; + k141: + goto a111; + n140: + break; + case 64: + // s439 + if (!($this->ids[$this->p] === 64)) { + if ($this->p > $this->f) { + $this->rec(439); + } + + goto n143;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 64)) { + if ($this->p >= $this->f) { + $this->rec(102); + } + + goto f144;} + + $this->p++; + if (!$this->s438()) { + goto f144;} + goto k144; + f144: + $this->p = $o2; + goto n143; + k144: + goto a111; + n143: + break; + case 65: + // s407 + if (!($this->ids[$this->p] === 65)) { + if ($this->p > $this->f) { + $this->rec(407); + } + + goto n145;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 65)) { + if ($this->p >= $this->f) { + $this->rec(97); + } + + goto f146;} + + $this->p++; + if (!$this->s125()) { + goto f146;} + goto k146; + f146: + $this->p = $o2; + goto n145; + k146: + goto a111; + n145: + break; + case 66: + // s441 + if (!($this->ids[$this->p] === 66)) { + if ($this->p > $this->f) { + $this->rec(441); + } + + goto n147;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 66)) { + if ($this->p >= $this->f) { + $this->rec(104); + } + + goto f148;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f148;} + + $this->p++; + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->s199()) { + goto f148;} + if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(77); + } + + goto f148;} + goto k148; + f148: + $this->p = $o2; + goto n147; + k148: + goto a111; + n147: + // s442 + if (!($this->ids[$this->p] === 66)) { + if ($this->p > $this->f) { + $this->rec(442); + } + + goto n149;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 66)) { + if ($this->p >= $this->f) { + $this->rec(104); + } + + goto f150;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f150;} + + $this->p++; + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->s125()) { + goto f150;} + goto k150; + f150: + $this->p = $o2; + goto n149; + k150: + goto a111; + n149: + break; + case 67: + // s400 + if (!($this->ids[$this->p] === 67)) { + if ($this->p > $this->f) { + $this->rec(400); + } + + goto n151;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 67)) { + if ($this->p >= $this->f) { + $this->rec(108); + } + + goto f152;} + + $this->p++; + // s399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); + } + + goto f152;} + + $o3 = $this->p; + if (!$this->s199()) { + goto f153;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f153;} + + $this->p++; + if (!$this->s125()) { + goto f153;} + goto k153; + f153: + $this->p = $o3; + goto f152; + k153: + goto k152; + f152: + $this->p = $o2; + goto n151; + k152: + goto a111; + n151: + break; + case 68: + // s437 + if (!($this->ids[$this->p] === 68)) { + if ($this->p > $this->f) { + $this->rec(437); + } + + goto n154;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 68)) { + if ($this->p >= $this->f) { + $this->rec(101); + } + + goto f155;} + + $this->p++; + if (!$this->s438()) { + goto f155;} + goto k155; + f155: + $this->p = $o2; + goto n154; + k155: + goto a111; + n154: + break; + case 69: + // s408 + if (!($this->ids[$this->p] === 69)) { + if ($this->p > $this->f) { + $this->rec(408); + } + + goto n156;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 69)) { + if ($this->p >= $this->f) { + $this->rec(99); + } + + goto f157;} + + $this->p++; + if (!$this->s409()) { + goto f157;} + goto k157; + f157: + $this->p = $o2; + goto n156; + k157: + goto a111; + n156: + break; + case 70: + // s390 + if (!($this->ids[$this->p] === 70)) { + if ($this->p > $this->f) { + $this->rec(390); + } + + goto n158;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 70)) { + if ($this->p >= $this->f) { + $this->rec(91); + } + + goto f159;} + + $this->p++; + if (!$this->s391()) { + goto f159;} + goto k159; + f159: + $this->p = $o2; + goto n158; + k159: + goto a111; + n158: + break; + case 71: + // s392 + if (!($this->ids[$this->p] === 71)) { + if ($this->p > $this->f) { + $this->rec(392); + } + + goto n160;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 71)) { + if ($this->p >= $this->f) { + $this->rec(92); + } + + goto f161;} + + $this->p++; + if (!$this->s391()) { + goto f161;} + goto k161; + f161: + $this->p = $o2; + goto n160; + k161: + goto a111; + n160: + break; + case 72: + // s191 + if (!($this->ids[$this->p] === 72)) { + if ($this->p > $this->f) { + $this->rec(191); + } + + goto n162;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 72)) { + if ($this->p >= $this->f) { + $this->rec(84); + } + + goto f163;} + + $this->p++; + if (!$this->s192()) { + goto f163;} + goto k163; + f163: + $this->p = $o2; + goto n162; + k163: + goto a111; + n162: + break; + case 73: + // s393 + if (!($this->ids[$this->p] === 73)) { + if ($this->p > $this->f) { + $this->rec(393); + } + + goto n164;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 73)) { + if ($this->p >= $this->f) { + $this->rec(93); + } + + goto f165;} + + $this->p++; + if (!$this->s391()) { + goto f165;} + goto k165; + f165: + $this->p = $o2; + goto n164; + k165: + goto a111; + n164: + break; + case 74: + // s440 + if (!($this->ids[$this->p] === 74)) { + if ($this->p > $this->f) { + $this->rec(440); + } + + goto n166;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 74)) { + if ($this->p >= $this->f) { + $this->rec(103); + } + + goto f167;} + + $this->p++; + if (!$this->s438()) { + goto f167;} + goto k167; + f167: + $this->p = $o2; + goto n166; + k167: + goto a111; + n166: + break; + case 75: + // s384 + if (!($this->ids[$this->p] === 75)) { + if ($this->p > $this->f) { + $this->rec(384); + } + + goto n168;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 75)) { + if ($this->p >= $this->f) { + $this->rec(90); + } + + goto f169;} + + $this->p++; + if (!$this->s199()) { + goto f169;} + if (!$this->s385()) { + goto f169;} + goto k169; + f169: + $this->p = $o2; + goto n168; + k169: + goto a111; + n168: + break; + } + + if ($this->p > $this->f) { + $this->rec(190); + } + + goto f110; + a111: + goto k110; + f110: + $this->p = $o1; + return false; + k110: + + return true; + } + + private function s192(): bool + { + if (!isset(self::T3bf4df75[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(192); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // s198 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(198); + } + + goto n354;} + + $o2 = $this->p; + if (!$this->s199()) { + goto f355;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f355;} + + $this->p++; + if (!$this->s125()) { + goto f355;} + goto k355; + f355: + $this->p = $o2; + goto n354; + k355: + goto a353; + n354: + break; + case 26: + case 27: + case 42: + // s193 + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(193); + } + + goto n356;} + + $o2 = $this->p; + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(195); + } + + goto f357;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f357;} + + $this->p++; + if (!$this->s125()) { + goto f357;} + goto k357; + f357: + $this->p = $o2; + goto n356; + k357: + goto a353; + n356: + break; + } + + if ($this->p > $this->f) { + $this->rec(192); + } + + goto f352; + a353: + goto k352; + f352: + $this->p = $o1; + return false; + k352: + + return true; + } + + private function s199(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(199); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 32: + case 82: + // s367 + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(367); + } + + goto n178;} + + $o2 = $this->p; + if (!$this->s201()) { + goto f179;} + if (!$this->s368()) { + goto f179;} + goto k179; + f179: + $this->p = $o2; + goto n178; + k179: + goto a177; + n178: + break; + case 30: + // s200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n180;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f181;} + + $this->p++; + if (!$this->s201()) { + goto f181;} + goto k181; + f181: + $this->p = $o2; + goto n180; + k181: + goto a177; + n180: + break; + } + + if ($this->p > $this->f) { + $this->rec(199); + } + + goto f176; + a177: + goto k176; + f176: + $this->p = $o1; + return false; + k176: + + return true; + } + + private function s201(): bool + { + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(201); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 5: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // s366 + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(366); + } + + goto n408;} + + $o2 = $this->p; + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(332); + } + + goto f409;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f409;} + } + if (!$this->s281()) { + goto f409;} + goto k409; + f409: + $this->p = $o2; + goto n408; + k409: + goto a407; + n408: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n410;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f411;} + } + if (!$this->s335()) { + goto f411;} + goto k411; + f411: + $this->p = $o2; + goto n410; + k411: + goto a407; + n410: + break; + case 19: + case 20: + case 21: + case 22: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n413;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f414;} + } + if (!$this->s335()) { + goto f414;} + goto k414; + f414: + $this->p = $o2; + goto n413; + k414: + goto a407; + n413: + break; + case 3: + case 4: + case 8: + if (!$this->s255()) { + goto n416;} + goto a407; + n416: + // s278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n417;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f418;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f418;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f418;} + } + if (!$this->s281()) { + goto f418;} + goto k418; + f418: + $this->p = $o2; + goto n417; + k418: + goto a407; + n417: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n419;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f420;} + } + if (!$this->s335()) { + goto f420;} + goto k420; + f420: + $this->p = $o2; + goto n419; + k420: + goto a407; + n419: + break; + case 32: + case 82: + if (!$this->s202()) { + goto n422;} + goto a407; + n422: + break; + case 6: + if (!$this->s267()) { + goto n423;} + goto a407; + n423: + // s278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n424;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f425;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f425;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f425;} + } + if (!$this->s281()) { + goto f425;} + goto k425; + f425: + $this->p = $o2; + goto n424; + k425: + goto a407; + n424: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n426;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f427;} + } + if (!$this->s335()) { + goto f427;} + goto k427; + f427: + $this->p = $o2; + goto n426; + k427: + goto a407; + n426: + break; + case 7: + if (!$this->s230()) { + goto n429;} + goto a407; + n429: + // s278 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(278); + } + + goto n430;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f431;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f431;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f431;} + } + if (!$this->s281()) { + goto f431;} + goto k431; + f431: + $this->p = $o2; + goto n430; + k431: + goto a407; + n430: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n432;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f433;} + } + if (!$this->s335()) { + goto f433;} + goto k433; + f433: + $this->p = $o2; + goto n432; + k433: + goto a407; + n432: + break; + case 25: + if (!$this->s229()) { + goto n435;} + goto a407; + n435: + break; + } + + if ($this->p > $this->f) { + $this->rec(201); + } + + goto f406; + a407: + goto k406; + f406: + $this->p = $o1; + return false; + k406: + + return true; + } + + private function s202(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(202); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f677;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e679; + } + + $this->p++; + } + e679: + if (!$this->s205()) { + goto f677;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e681; + } + + $this->p++; + } + e681: + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f677;} + + $this->p++; + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n682;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e684; + } + + if (!$this->s224()) { + goto e684;} + if ($this->p === $b2) { + $k2 = 1; + goto e684; + } + + $k2++; + } + e684: + + if ($k2 < 1) { + goto f683; + } + goto k683; + f683: + $this->p = $o2; + goto n682; + k683: + n682: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k677; + f677: + $this->p = $o1; + return false; + k677: + + return true; + } + + private function s205(): bool + { + if (!isset(self::Tcd64b9c0[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(205); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 32: + case 82: + // s208 + if (!isset(self::T977f027a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(208); + } + + goto n913;} + + $o2 = $this->p; + if (!$this->s201()) { + goto f914;} + if (!$this->s209()) { + goto f914;} + goto k914; + f914: + $this->p = $o2; + goto n913; + k914: + goto a912; + n913: + break; + case 26: + if (!$this->s206()) { + goto n915;} + goto a912; + n915: + break; + case 30: + // s200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n916;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f917;} + + $this->p++; + if (!$this->s201()) { + goto f917;} + goto k917; + f917: + $this->p = $o2; + goto n916; + k917: + goto a912; + n916: + break; + } + + if ($this->p > $this->f) { + $this->rec(205); + } + + goto f911; + a912: + goto k911; + f911: + $this->p = $o1; + return false; + k911: + + return true; + } + + private function s206(): bool + { + if (!($this->ids[$this->p] === 26)) { + if ($this->p > $this->f) { + $this->rec(206); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1252;} + + $this->p++; + if (!($this->ids[$this->p] === 12)) { + if ($this->p >= $this->f) { + $this->rec(23); + } + + goto f1252;} + + $this->p++; + if (($this->ids[$this->p] === 11)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(24); + } + if (!$this->s199()) { + goto f1252;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1254; + } + + $this->p++; + } + e1254: + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1252;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1256; + } + + $this->p++; + } + e1256: + if (!$this->s199()) { + goto f1252;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1258; + } + + $this->p++; + } + e1258: + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1252;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1260; + } + + $this->p++; + } + e1260: + if (!$this->s205()) { + goto f1252;} + goto k1252; + f1252: + $this->p = $o1; + return false; + k1252: + + return true; + } + + private function s209(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s211 + $o2 = $this->p; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1244; + } + + $this->p++; + } + e1244: + if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!$this->s213()) { + goto n1245;} + n1245: + } elseif ($this->p > $this->f) { + $this->rec(213); + } + goto a1240; + n1241: + break; + case 12: + if (!$this->s210()) { + goto n1246;} + goto a1240; + n1246: + // s211 + $o2 = $this->p; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1250; + } + + $this->p++; + } + e1250: + if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!$this->s213()) { + goto n1251;} + n1251: + } elseif ($this->p > $this->f) { + $this->rec(213); + } + goto a1240; + n1247: + break; + } + + if ($this->p > $this->f) { + $this->rec(209); + } + + goto f1239; + a1240: + goto k1239; + f1239: + $this->p = $o1; + return false; + k1239: + + return true; + } + + private function s210(): bool + { + if (!($this->ids[$this->p] === 12)) { + if ($this->p > $this->f) { + $this->rec(210); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 12)) { + if ($this->p >= $this->f) { + $this->rec(23); + } + + goto f1550;} + + $this->p++; + if (($this->ids[$this->p] === 11)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(24); + } + if (!$this->s199()) { + goto f1550;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1552; + } + + $this->p++; + } + e1552: + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1550;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1554; + } + + $this->p++; + } + e1554: + if (!$this->s199()) { + goto f1550;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1556; + } + + $this->p++; + } + e1556: + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1550;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1558; + } + + $this->p++; + } + e1558: + if (!$this->s205()) { + goto f1550;} + goto k1550; + f1550: + $this->p = $o1; + return false; + k1550: + + return true; + } + + private function s213(): bool + { + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(213); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + // s214 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(214); + } + + goto n1546;} + + $o2 = $this->p; + if (!$this->s215()) { + goto f1547;} + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1547;} + } + goto k1547; + f1547: + $this->p = $o2; + goto n1546; + k1547: + goto a1545; + n1546: + break; + case 29: + // s218 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(218); + } + + goto n1548;} + + $o2 = $this->p; + if (!$this->s219()) { + goto f1549;} + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1549;} + } + goto k1549; + f1549: + $this->p = $o2; + goto n1548; + k1549: + goto a1545; + n1548: + break; + } + + if ($this->p > $this->f) { + $this->rec(213); + } + + goto f1544; + a1545: + goto k1544; + f1544: + $this->p = $o1; + return false; + k1544: + + return true; + } + + private function s215(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(215); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b1 > $this->f) { + $this->rec(216); + } + + goto e1711; + } + + // s216 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(216); + } + + goto e1711;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($this->p >= $this->f) { + $this->rec(49); + } + + goto f1712;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1714; + } + + $this->p++; + } + e1714: + if (!$this->s201()) { + goto f1712;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1716; + } + + $this->p++; + } + e1716: + goto k1712; + f1712: + $this->p = $o2; + goto e1711; + k1712: + if ($this->p === $b1) { + $k1 = 1; + goto e1711; + } + + $k1++; + } + e1711: + + if ($k1 < 1) { + goto f1710; + } + goto k1710; + f1710: + $this->p = $o1; + return false; + k1710: + + return true; + } + + private function s219(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(219); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b1 > $this->f) { + $this->rec(220); + } + + goto e1718; + } + + // s220 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(220); + } + + goto e1718;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($this->p >= $this->f) { + $this->rec(50); + } + + goto f1719;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1721; + } + + $this->p++; + } + e1721: + if (!$this->s201()) { + goto f1719;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1723; + } + + $this->p++; + } + e1723: + goto k1719; + f1719: + $this->p = $o2; + goto e1718; + k1719: + if ($this->p === $b1) { + $k1 = 1; + goto e1718; + } + + $k1++; + } + e1718: + + if ($k1 < 1) { + goto f1717; + } + goto k1717; + f1717: + $this->p = $o1; + return false; + k1717: + + return true; + } + + private function s224(): bool + { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(224); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 36: + // s225 + if (!($this->ids[$this->p] === 36)) { + if ($this->p > $this->f) { + $this->rec(225); + } + + goto n890;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 36)) { + if ($this->p >= $this->f) { + $this->rec(57); + } + + goto f891;} + + $this->p++; + if (($this->ids[$this->p] === 37)) { + if (($this->ids[$this->p] === 37)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f891;} + } + if (!$this->s199()) { + goto f891;} + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f891;} + + $this->p++; + goto k891; + f891: + $this->p = $o2; + goto n890; + k891: + goto a889; + n890: + // s227 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(227); + } + + goto n892;} + + $o2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f893;} + + $this->p++; + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f893;} + + $this->p++; + goto k893; + f893: + $this->p = $o2; + goto n892; + k893: + goto a889; + n892: + break; + case 84: + // s227 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(227); + } + + goto n894;} + + $o2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f895;} + + $this->p++; + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f895;} + + $this->p++; + goto k895; + f895: + $this->p = $o2; + goto n894; + k895: + goto a889; + n894: + break; + } + + if ($this->p > $this->f) { + $this->rec(224); + } + + goto f888; + a889: + goto k888; + f888: + $this->p = $o1; + return false; + k888: + + return true; + } + + private function s229(): bool + { + if (!($this->ids[$this->p] === 25)) { + if ($this->p > $this->f) { + $this->rec(229); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 25)) { + if ($this->p >= $this->f) { + $this->rec(46); + } + + goto f697;} + + $this->p++; + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n698;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e700; + } + + if (!$this->s224()) { + goto e700;} + if ($this->p === $b2) { + $k2 = 1; + goto e700; + } + + $k2++; + } + e700: + + if ($k2 < 1) { + goto f699; + } + goto k699; + f699: + $this->p = $o2; + goto n698; + k699: + n698: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k697; + f697: + $this->p = $o1; + return false; + k697: + + return true; + } + + private function s230(): bool + { + if (!($this->ids[$this->p] === 7)) { + if ($this->p > $this->f) { + $this->rec(230); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 7)) { + if ($this->p >= $this->f) { + $this->rec(32); + } + + goto f693;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f693;} + } + if (!$this->s231()) { + goto f693;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n694;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e696; + } + + if (!$this->s224()) { + goto e696;} + if ($this->p === $b2) { + $k2 = 1; + goto e696; + } + + $k2++; + } + e696: + + if ($k2 < 1) { + goto f695; + } + goto k695; + f695: + $this->p = $o2; + goto n694; + k695: + n694: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k693; + f693: + $this->p = $o1; + return false; + k693: + + return true; + } + + private function s231(): bool + { + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(231); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f925;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e927; + } + + $this->p++; + } + e927: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + // s233 + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(233); + } + + goto n928;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->s243()) { + goto n931;} + goto a930; + n931: + break; + case 42: + if (!$this->s234()) { + goto n932;} + goto a930; + n932: + break; + } + + if ($this->p > $this->f) { + $this->rec(233); + } + + goto f929; + a930: + goto k929; + f929: + $this->p = $o2; + goto n928; + k929: + n928: + } elseif ($this->p > $this->f) { + $this->rec(233); + } + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e934; + } + + $this->p++; + } + e934: + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f925;} + + $this->p++; + goto k925; + f925: + $this->p = $o1; + return false; + k925: + + return true; + } + + private function s233(): bool + { + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(233); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->s243()) { + goto n1565;} + goto a1564; + n1565: + break; + case 42: + // s234 + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(234); + } + + goto n1566;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1567;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1569; + } + + $this->p++; + } + e1569: + if (!$this->s235()) { + goto f1567;} + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1567; + f1567: + $this->p = $o2; + goto n1566; + k1567: + goto a1564; + n1566: + break; + } + + if ($this->p > $this->f) { + $this->rec(233); + } + + goto f1563; + a1564: + goto k1563; + f1563: + $this->p = $o1; + return false; + k1563: + + return true; + } + + private function s234(): bool + { + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(234); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1283;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1285; + } + + $this->p++; + } + e1285: + if (!$this->s235()) { + goto f1283;} + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1283; + f1283: + $this->p = $o1; + return false; + k1283: + + return true; + } + + private function s235(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1572;} + goto a1571; + n1572: + break; + case 34: + case 86: + // s236 + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(236); + } + + goto n1573;} + + $o2 = $this->p; + if (!$this->s237()) { + goto f1574;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1576; + } + + $this->p++; + } + e1576: + goto k1574; + f1574: + $this->p = $o2; + goto n1573; + k1574: + goto a1571; + n1573: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1577;} + goto a1571; + n1577: + break; + } + + if ($this->p > $this->f) { + $this->rec(235); + } + + goto f1570; + a1571: + goto k1570; + f1570: + $this->p = $o1; + return false; + k1570: + + return true; + } + + private function s237(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(237); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1724;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1726; + } + + $this->p++; + } + e1726: + if (!$this->s199()) { + goto f1724;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1728; + } + + $this->p++; + } + e1728: + if (($this->ids[$this->p] === 40)) { + // s240 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(240); + } + + goto n1729;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1730;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1732; + } + + $this->p++; + } + e1732: + if (!$this->s199()) { + goto f1730;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1734; + } + + $this->p++; + } + e1734: + goto k1730; + f1730: + $this->p = $o2; + goto n1729; + k1730: + n1729: + } elseif ($this->p > $this->f) { + $this->rec(240); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1724;} + + $this->p++; + goto k1724; + f1724: + $this->p = $o1; + return false; + k1724: + + return true; + } + + private function s243(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(243); + } + + return false;} + + $o1 = $this->p; + // s244 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(244); + } + + goto f1270;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 20: + case 21: + case 22: + case 24: + if (!$this->s245()) { + goto n1273;} + goto a1272; + n1273: + if (!$this->s199()) { + goto n1274;} + goto a1272; + n1274: + break; + case 19: + case 25: + case 30: + case 32: + case 82: + if (!$this->s199()) { + goto n1275;} + goto a1272; + n1275: + break; + } + + if ($this->p > $this->f) { + $this->rec(244); + } + + goto f1271; + a1272: + goto k1271; + f1271: + $this->p = $o2; + goto f1270; + k1271: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1277; + } + + $this->p++; + } + e1277: + if (($this->ids[$this->p] === 40)) { + // s252 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(252); + } + + goto n1278;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1279;} + + $this->p++; + if (($this->ids[$this->p] === 41)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1281; + } + + $this->p++; + } + e1281: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->s233()) { + goto n1282;} + n1282: + } elseif ($this->p > $this->f) { + $this->rec(233); + } + goto k1279; + f1279: + $this->p = $o2; + goto n1278; + k1279: + n1278: + } elseif ($this->p > $this->f) { + $this->rec(252); + } + goto k1270; + f1270: + $this->p = $o1; + return false; + k1270: + + return true; + } + + private function s245(): bool + { + if (!isset(self::Tce797685[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(245); + } + + return false;} + + $o1 = $this->p; + // s246 + if (!isset(self::Tce797685[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(246); + } + + goto f1525;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + if (!$this->s247()) { + goto n1528;} + goto a1527; + n1528: + break; + case 20: + $this->p++; + goto a1527; + break; + case 21: + $this->p++; + goto a1527; + break; + case 22: + $this->p++; + goto a1527; + break; + } + + if ($this->p > $this->f) { + $this->rec(246); + } + + goto f1526; + a1527: + goto k1526; + f1526: + $this->p = $o2; + goto f1525; + k1526: + if (($this->ids[$this->p] === 30)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1525;} + + $this->p++; + if (!$this->s199()) { + goto f1525;} + goto k1525; + f1525: + $this->p = $o1; + return false; + k1525: + + return true; + } + + private function s247(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(247); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1702;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + // s249 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(249); + } + + goto n1703;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f1704;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1704;} + + $this->p++; + goto k1704; + f1704: + $this->p = $o2; + goto n1703; + k1704: + n1703: + } elseif ($this->p > $this->f) { + $this->rec(249); + } + goto k1702; + f1702: + $this->p = $o1; + return false; + k1702: + + return true; + } + + private function s255(): bool + { + if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(255); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(256); + } + + goto f673;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f673;} + } + if (!$this->s257()) { + goto f673;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n674;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e676; + } + + if (!$this->s224()) { + goto e676;} + if ($this->p === $b2) { + $k2 = 1; + goto e676; + } + + $k2++; + } + e676: + + if ($k2 < 1) { + goto f675; + } + goto k675; + f675: + $this->p = $o2; + goto n674; + k675: + n674: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k673; + f673: + $this->p = $o1; + return false; + k673: + + return true; + } + + private function s257(): bool + { + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(257); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f901;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e903; + } + + $this->p++; + } + e903: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + // s259 + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(259); + } + + goto n904;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->s264()) { + goto n907;} + goto a906; + n907: + break; + case 42: + if (!$this->s260()) { + goto n908;} + goto a906; + n908: + break; + } + + if ($this->p > $this->f) { + $this->rec(259); + } + + goto f905; + a906: + goto k905; + f905: + $this->p = $o2; + goto n904; + k905: + n904: + } elseif ($this->p > $this->f) { + $this->rec(259); + } + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e910; + } + + $this->p++; + } + e910: + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f901;} + + $this->p++; + goto k901; + f901: + $this->p = $o1; + return false; + k901: + + return true; + } + + private function s259(): bool + { + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(259); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->s264()) { + goto n1531;} + goto a1530; + n1531: + break; + case 42: + // s260 + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(260); + } + + goto n1532;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1533;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1535; + } + + $this->p++; + } + e1535: + if (!$this->s261()) { + goto f1533;} + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1533; + f1533: + $this->p = $o2; + goto n1532; + k1533: + goto a1530; + n1532: + break; + } + + if ($this->p > $this->f) { + $this->rec(259); + } + + goto f1529; + a1530: + goto k1529; + f1529: + $this->p = $o1; + return false; + k1529: + + return true; + } + + private function s260(): bool + { + if (!($this->ids[$this->p] === 42)) { + if ($this->p > $this->f) { + $this->rec(260); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 42)) { + if ($this->p >= $this->f) { + $this->rec(65); + } + + goto f1236;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1238; + } + + $this->p++; + } + e1238: + if (!$this->s261()) { + goto f1236;} + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k1236; + f1236: + $this->p = $o1; + return false; + k1236: + + return true; + } + + private function s261(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1538;} + goto a1537; + n1538: + break; + case 34: + case 86: + // s262 + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(262); + } + + goto n1539;} + + $o2 = $this->p; + if (!$this->s263()) { + goto f1540;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1542; + } + + $this->p++; + } + e1542: + goto k1540; + f1540: + $this->p = $o2; + goto n1539; + k1540: + goto a1537; + n1539: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1543;} + goto a1537; + n1543: + break; + } + + if ($this->p > $this->f) { + $this->rec(261); + } + + goto f1536; + a1537: + goto k1536; + f1536: + $this->p = $o1; + return false; + k1536: + + return true; + } + + private function s263(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(263); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1705;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1707; + } + + $this->p++; + } + e1707: + if (!$this->s199()) { + goto f1705;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1709; + } + + $this->p++; + } + e1709: + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1705;} + + $this->p++; + goto k1705; + f1705: + $this->p = $o1; + return false; + k1705: + + return true; + } + + private function s264(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(264); + } + + return false;} + + $o1 = $this->p; + // s244 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(244); + } + + goto f1223;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 20: + case 21: + case 22: + case 24: + if (!$this->s245()) { + goto n1226;} + goto a1225; + n1226: + if (!$this->s199()) { + goto n1227;} + goto a1225; + n1227: + break; + case 19: + case 25: + case 30: + case 32: + case 82: + if (!$this->s199()) { + goto n1228;} + goto a1225; + n1228: + break; + } + + if ($this->p > $this->f) { + $this->rec(244); + } + + goto f1224; + a1225: + goto k1224; + f1224: + $this->p = $o2; + goto f1223; + k1224: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1230; + } + + $this->p++; + } + e1230: + if (($this->ids[$this->p] === 40)) { + // s266 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(266); + } + + goto n1231;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1232;} + + $this->p++; + if (($this->ids[$this->p] === 41)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1234; + } + + $this->p++; + } + e1234: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->s259()) { + goto n1235;} + n1235: + } elseif ($this->p > $this->f) { + $this->rec(259); + } + goto k1232; + f1232: + $this->p = $o2; + goto n1231; + k1232: + n1231: + } elseif ($this->p > $this->f) { + $this->rec(266); + } + goto k1223; + f1223: + $this->p = $o1; + return false; + k1223: + + return true; + } + + private function s267(): bool + { + if (!($this->ids[$this->p] === 6)) { + if ($this->p > $this->f) { + $this->rec(267); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 6)) { + if ($this->p >= $this->f) { + $this->rec(37); + } + + goto f685;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f685;} + } + // s268 + if (!($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->rec(268); + } + + goto f685;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 38)) { + if ($this->p >= $this->f) { + $this->rec(60); + } + + goto f686;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e688; + } + + $this->p++; + } + e688: + if (isset(self::Td8017923[$this->ids[$this->p]])) { + if (!$this->s270()) { + goto n689;} + n689: + } elseif ($this->p > $this->f) { + $this->rec(270); + } + if (!($this->ids[$this->p] === 39)) { + if ($this->p >= $this->f) { + $this->rec(62); + } + + goto f686;} + + $this->p++; + goto k686; + f686: + $this->p = $o2; + goto f685; + k686: + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n690;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e692; + } + + if (!$this->s224()) { + goto e692;} + if ($this->p === $b2) { + $k2 = 1; + goto e692; + } + + $k2++; + } + e692: + + if ($k2 < 1) { + goto f691; + } + goto k691; + f691: + $this->p = $o2; + goto n690; + k691: + n690: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k685; + f685: + $this->p = $o1; + return false; + k685: + + return true; + } + + private function s270(): bool + { + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(270); + } + + return false;} + + $o1 = $this->p; + // s271 + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(271); + } + + goto f918;} + + $o2 = $this->p; + if (!$this->s272()) { + goto f919;} + if (($this->ids[$this->p] === 30)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f919;} + + $this->p++; + if (!$this->s199()) { + goto f919;} + goto k919; + f919: + $this->p = $o2; + goto f918; + k919: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e921; + } + + $this->p++; + } + e921: + if (($this->ids[$this->p] === 40)) { + // s274 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(274); + } + + goto n922;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(275); + } + + goto e924; + } + + if (!$this->s275()) { + goto e924;} + if ($this->p === $b2) { + $k2 = 1; + goto e924; + } + + $k2++; + } + e924: + + if ($k2 < 1) { + goto f923; + } + goto k923; + f923: + $this->p = $o2; + goto n922; + k923: + n922: + } elseif ($this->p > $this->f) { + $this->rec(274); + } + goto k918; + f918: + $this->p = $o1; + return false; + k918: + + return true; + } + + private function s272(): bool + { + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(272); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + $this->p++; + goto a1262; + break; + case 2: + $this->p++; + goto a1262; + break; + case 3: + $this->p++; + goto a1262; + break; + case 4: + $this->p++; + goto a1262; + break; + case 5: + $this->p++; + goto a1262; + break; + case 6: + $this->p++; + goto a1262; + break; + case 7: + $this->p++; + goto a1262; + break; + case 8: + $this->p++; + goto a1262; + break; + case 9: + $this->p++; + goto a1262; + break; + case 10: + $this->p++; + goto a1262; + break; + case 11: + $this->p++; + goto a1262; + break; + case 12: + $this->p++; + goto a1262; + break; + case 13: + $this->p++; + goto a1262; + break; + case 14: + $this->p++; + goto a1262; + break; + case 15: + $this->p++; + goto a1262; + break; + case 16: + $this->p++; + goto a1262; + break; + case 17: + $this->p++; + goto a1262; + break; + case 18: + $this->p++; + goto a1262; + break; + case 21: + $this->p++; + goto a1262; + break; + case 22: + $this->p++; + goto a1262; + break; + case 24: + $this->p++; + goto a1262; + break; + } + + if ($this->p > $this->f) { + $this->rec(272); + } + + goto f1261; + a1262: + goto k1261; + f1261: + $this->p = $o1; + return false; + k1261: + + return true; + } + + private function s275(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(275); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1263;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1265; + } + + $this->p++; + } + e1265: + // s276 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 21: + case 22: + case 24: + if (!$this->s277()) { + goto n1268;} + goto a1267; + n1268: + break; + case 39: + if (!($this->ids[$this->p] === 39)) { + if ($this->p > $this->f) { + $this->rec(62); + } + + goto n1269;} + goto a1267; + n1269: + break; + } + + if ($this->p > $this->f) { + $this->rec(276); + } + + goto f1266; + a1267: + goto k1266; + f1266: + $this->p = $o2; + goto f1263; + k1266: + goto k1263; + f1263: + $this->p = $o1; + return false; + k1263: + + return true; + } + + private function s277(): bool + { + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(277); + } + + return false;} + + $o1 = $this->p; + // s271 + if (!isset(self::Td8017923[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(271); + } + + goto f1559;} + + $o2 = $this->p; + if (!$this->s272()) { + goto f1560;} + if (($this->ids[$this->p] === 30)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1560;} + + $this->p++; + if (!$this->s199()) { + goto f1560;} + goto k1560; + f1560: + $this->p = $o2; + goto f1559; + k1560: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1562; + } + + $this->p++; + } + e1562: + goto k1559; + f1559: + $this->p = $o1; + return false; + k1559: + + return true; + } + + private function s281(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n659;} + goto a658; + n659: + break; + case 32: + case 82: + if (!$this->s364()) { + goto n660;} + goto a658; + n660: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n661;} + goto a658; + n661: + break; + case 36: + case 84: + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n662;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e664; + } + + if (!$this->s224()) { + goto e664;} + if ($this->p === $b2) { + $k2 = 1; + goto e664; + } + + $k2++; + } + e664: + + if ($k2 < 1) { + goto f663; + } + goto k663; + f663: + $this->p = $o2; + goto n662; + k663: + goto a658; + n662: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n665;} + goto a658; + n665: + break; + case 34: + if (!$this->s282()) { + goto n666;} + goto a658; + n666: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n667;} + goto a658; + n667: + break; + } + + if ($this->p > $this->f) { + $this->rec(281); + } + + goto f657; + a658: + goto k657; + f657: + $this->p = $o1; + return false; + k657: + + return true; + } + + private function s282(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(282); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(54); + } + + goto f896;} + // s284 + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(284); + } + + goto f896;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 34: + if (!$this->s285()) { + goto n899;} + goto a898; + n899: + if (!$this->s362()) { + goto n900;} + goto a898; + n900: + break; + } + + if ($this->p > $this->f) { + $this->rec(284); + } + + goto f897; + a898: + goto k897; + f897: + $this->p = $o2; + goto f896; + k897: + goto k896; + f896: + $this->p = $o1; + return false; + k896: + + return true; + } + + private function s285(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(285); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 34)) { + if ($this->p >= $this->f) { + $this->rec(54); + } + + goto f1207;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1209; + } + + $this->p++; + } + e1209: + // s286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1207;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1210;} + + $this->p++; + if (!$this->s287()) { + goto f1210;} + if (!$this->s293()) { + goto f1210;} + if (!$this->s296()) { + goto f1210;} + goto k1210; + f1210: + $this->p = $o2; + goto f1207; + k1210: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1212; + } + + $this->p++; + } + e1212: + if (($this->ids[$this->p] === 40)) { + // s300 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(300); + } + + goto n1213;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(301); + } + + goto e1215; + } + + if (!$this->s301()) { + goto e1215;} + if ($this->p === $b2) { + $k2 = 1; + goto e1215; + } + + $k2++; + } + e1215: + + if ($k2 < 1) { + goto f1214; + } + goto k1214; + f1214: + $this->p = $o2; + goto n1213; + k1214: + n1213: + } elseif ($this->p > $this->f) { + $this->rec(300); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1207;} + + $this->p++; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1207;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1217; + } + + $this->p++; + } + e1217: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + if (!$this->s306()) { + goto n1218;} + n1218: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1207;} + + $this->p++; + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1207;} + + $this->p++; + if (!$this->s315()) { + goto f1207;} + goto k1207; + f1207: + $this->p = $o1; + return false; + k1207: + + return true; + } + + private function s286(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1645;} + + $this->p++; + if (!$this->s287()) { + goto f1645;} + if (!$this->s293()) { + goto f1645;} + if (!$this->s296()) { + goto f1645;} + goto k1645; + f1645: + $this->p = $o1; + return false; + k1645: + + return true; + } + + private function s287(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s290 + $o2 = $this->p; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f577;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f577;} + } + goto k577; + f577: + $this->p = $o2; + goto n576; + k577: + goto a575; + n576: + break; + case 13: + // s288 + if (!($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->rec(288); + } + + goto n578;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 13)) { + if ($this->p >= $this->f) { + $this->rec(27); + } + + goto f579;} + + $this->p++; + if (!$this->s199()) { + goto f579;} + goto k579; + f579: + $this->p = $o2; + goto n578; + k579: + goto a575; + n578: + // s290 + $o2 = $this->p; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f581;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f581;} + } + goto k581; + f581: + $this->p = $o2; + goto n580; + k581: + goto a575; + n580: + break; + case 14: + // s289 + if (!($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->rec(289); + } + + goto n582;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 14)) { + if ($this->p >= $this->f) { + $this->rec(28); + } + + goto f583;} + + $this->p++; + if (!$this->s199()) { + goto f583;} + goto k583; + f583: + $this->p = $o2; + goto n582; + k583: + goto a575; + n582: + // s290 + $o2 = $this->p; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f585;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f585;} + } + goto k585; + f585: + $this->p = $o2; + goto n584; + k585: + goto a575; + n584: + break; + } + + if ($this->p > $this->f) { + $this->rec(287); + } + + goto f574; + a575: + goto k574; + f574: + $this->p = $o1; + return false; + k574: + + return true; + } + + private function s293(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n588;} + goto a587; + n588: + break; + case 5: + // s294 + if (!($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->rec(294); + } + + goto n589;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 5)) { + if ($this->p >= $this->f) { + $this->rec(29); + } + + goto f590;} + + $this->p++; + if (!$this->s199()) { + goto f590;} + goto k590; + f590: + $this->p = $o2; + goto n589; + k590: + goto a587; + n589: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n591;} + goto a587; + n591: + break; + } + + if ($this->p > $this->f) { + $this->rec(293); + } + + goto f586; + a587: + goto k586; + f586: + $this->p = $o1; + return false; + k586: + + return true; + } + + private function s296(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n594;} + goto a593; + n594: + break; + case 46: + // s297 + if (!($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->rec(297); + } + + goto n595;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f596;} + + $this->p++; + if (!$this->s199()) { + goto f596;} + goto k596; + f596: + $this->p = $o2; + goto n595; + k596: + goto a593; + n595: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n597;} + goto a593; + n597: + break; + } + + if ($this->p > $this->f) { + $this->rec(296); + } + + goto f592; + a593: + goto k592; + f592: + $this->p = $o1; + return false; + k592: + + return true; + } + + private function s301(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(301); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1512;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1514; + } + + $this->p++; + } + e1514: + // s302 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + if (!$this->s304()) { + goto n1517;} + goto a1516; + n1517: + break; + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } + + goto n1518;} + goto a1516; + n1518: + break; + } + + if ($this->p > $this->f) { + $this->rec(302); + } + + goto f1515; + a1516: + goto k1515; + f1515: + $this->p = $o2; + goto f1512; + k1515: + goto k1512; + f1512: + $this->p = $o1; + return false; + k1512: + + return true; + } + + private function s304(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(304); + } + + return false;} + + $o1 = $this->p; + // s286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1693;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1694;} + + $this->p++; + if (!$this->s287()) { + goto f1694;} + if (!$this->s293()) { + goto f1694;} + if (!$this->s296()) { + goto f1694;} + goto k1694; + f1694: + $this->p = $o2; + goto f1693; + k1694: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1696; + } + + $this->p++; + } + e1696: + goto k1693; + f1693: + $this->p = $o1; + return false; + k1693: + + return true; + } + + private function s306(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(306); + } + + return false;} + + $o1 = $this->p; + // s307 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(307); + } + + goto f1168;} + + $o2 = $this->p; + if (!$this->s199()) { + goto f1169;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (($this->ids[$this->p] === 26)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(47); + } + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + goto k1169; + f1169: + $this->p = $o2; + goto f1168; + k1169: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1171; + } + + $this->p++; + } + e1171: + if (($this->ids[$this->p] === 40)) { + // s311 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(311); + } + + goto n1172;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(312); + } + + goto e1174; + } + + if (!$this->s312()) { + goto e1174;} + if ($this->p === $b2) { + $k2 = 1; + goto e1174; + } + + $k2++; + } + e1174: + + if ($k2 < 1) { + goto f1173; + } + goto k1173; + f1173: + $this->p = $o2; + goto n1172; + k1173: + n1172: + } elseif ($this->p > $this->f) { + $this->rec(311); + } + goto k1168; + f1168: + $this->p = $o1; + return false; + k1168: + + return true; + } + + private function s312(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(312); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1492;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1494; + } + + $this->p++; + } + e1494: + // s313 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->s314()) { + goto n1497;} + goto a1496; + n1497: + break; + case 33: + if (!($this->ids[$this->p] === 33)) { + if ($this->p > $this->f) { + $this->rec(53); + } + + goto n1498;} + goto a1496; + n1498: + break; + } + + if ($this->p > $this->f) { + $this->rec(313); + } + + goto f1495; + a1496: + goto k1495; + f1495: + $this->p = $o2; + goto f1492; + k1495: + goto k1492; + f1492: + $this->p = $o1; + return false; + k1492: + + return true; + } + + private function s314(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(314); + } + + return false;} + + $o1 = $this->p; + // s307 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(307); + } + + goto f1685;} + + $o2 = $this->p; + if (!$this->s199()) { + goto f1686;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (($this->ids[$this->p] === 26)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(47); + } + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + goto k1686; + f1686: + $this->p = $o2; + goto f1685; + k1686: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1688; + } + + $this->p++; + } + e1688: + goto k1685; + f1685: + $this->p = $o1; + return false; + k1685: + + return true; + } + + private function s315(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(315); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 5: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // s331 + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(331); + } + + goto n1177;} + + $o2 = $this->p; + if (!isset(self::T1921405e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(332); + } + + goto f1178;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1178;} + } + if (!$this->s318()) { + goto f1178;} + goto k1178; + f1178: + $this->p = $o2; + goto n1177; + k1178: + goto a1176; + n1177: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1179;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1180;} + } + if (!$this->s335()) { + goto f1180;} + goto k1180; + f1180: + $this->p = $o2; + goto n1179; + k1180: + goto a1176; + n1179: + break; + case 19: + case 20: + case 21: + case 22: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1182;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1183;} + } + if (!$this->s335()) { + goto f1183;} + goto k1183; + f1183: + $this->p = $o2; + goto n1182; + k1183: + goto a1176; + n1182: + break; + case 3: + case 4: + case 8: + if (!$this->s255()) { + goto n1185;} + goto a1176; + n1185: + // s317 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(317); + } + + goto n1186;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f1187;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1187;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1187;} + } + if (!$this->s318()) { + goto f1187;} + goto k1187; + f1187: + $this->p = $o2; + goto n1186; + k1187: + goto a1176; + n1186: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1188;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1189;} + } + if (!$this->s335()) { + goto f1189;} + goto k1189; + f1189: + $this->p = $o2; + goto n1188; + k1189: + goto a1176; + n1188: + break; + case 32: + case 82: + if (!$this->s316()) { + goto n1191;} + goto a1176; + n1191: + break; + case 6: + if (!$this->s267()) { + goto n1192;} + goto a1176; + n1192: + // s317 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(317); + } + + goto n1193;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f1194;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1194;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1194;} + } + if (!$this->s318()) { + goto f1194;} + goto k1194; + f1194: + $this->p = $o2; + goto n1193; + k1194: + goto a1176; + n1193: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1195;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1196;} + } + if (!$this->s335()) { + goto f1196;} + goto k1196; + f1196: + $this->p = $o2; + goto n1195; + k1196: + goto a1176; + n1195: + break; + case 7: + if (!$this->s230()) { + goto n1198;} + goto a1176; + n1198: + // s317 + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(317); + } + + goto n1199;} + + $o2 = $this->p; + if (!isset(self::T4020d016[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(279); + } + + goto f1200;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1200;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1200;} + } + if (!$this->s318()) { + goto f1200;} + goto k1200; + f1200: + $this->p = $o2; + goto n1199; + k1200: + goto a1176; + n1199: + // s333 + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(333); + } + + goto n1201;} + + $o2 = $this->p; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s169(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1202;} + } + if (!$this->s335()) { + goto f1202;} + goto k1202; + f1202: + $this->p = $o2; + goto n1201; + k1202: + goto a1176; + n1201: + break; + case 25: + if (!$this->s229()) { + goto n1204;} + goto a1176; + n1204: + break; + case 30: + // s200 + if (!($this->ids[$this->p] === 30)) { + if ($this->p > $this->f) { + $this->rec(200); + } + + goto n1205;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 30)) { + if ($this->p >= $this->f) { + $this->rec(51); + } + + goto f1206;} + + $this->p++; + if (!$this->s201()) { + goto f1206;} + goto k1206; + f1206: + $this->p = $o2; + goto n1205; + k1206: + goto a1176; + n1205: + break; + } + + if ($this->p > $this->f) { + $this->rec(315); + } + + goto f1175; + a1176: + goto k1175; + f1175: + $this->p = $o1; + return false; + k1175: + + return true; + } + + private function s316(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(316); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f1508;} + + $this->p++; + if (!$this->s205()) { + goto f1508;} + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f1508;} + + $this->p++; + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1509;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1511; + } + + if (!$this->s224()) { + goto e1511;} + if ($this->p === $b2) { + $k2 = 1; + goto e1511; + } + + $k2++; + } + e1511: + + if ($k2 < 1) { + goto f1510; + } + goto k1510; + f1510: + $this->p = $o2; + goto n1509; + k1510: + n1509: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1508; + f1508: + $this->p = $o1; + return false; + k1508: + + return true; + } + + private function s318(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1501;} + goto a1500; + n1501: + break; + case 34: + case 86: + if (!$this->s319()) { + goto n1502;} + goto a1500; + n1502: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1503;} + goto a1500; + n1503: + break; + case 36: + case 84: + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1504;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1506; + } + + if (!$this->s224()) { + goto e1506;} + if ($this->p === $b2) { + $k2 = 1; + goto e1506; + } + + $k2++; + } + e1506: + + if ($k2 < 1) { + goto f1505; + } + goto k1505; + f1505: + $this->p = $o2; + goto n1504; + k1505: + goto a1500; + n1504: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1507;} + goto a1500; + n1507: + break; + } + + if ($this->p > $this->f) { + $this->rec(318); + } + + goto f1499; + a1500: + goto k1499; + f1499: + $this->p = $o1; + return false; + k1499: + + return true; + } + + private function s319(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(319); + } + + return false;} + + $o1 = $this->p; + if (!$this->s320()) { + goto f1689;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1690;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1692; + } + + if (!$this->s224()) { + goto e1692;} + if ($this->p === $b2) { + $k2 = 1; + goto e1692; + } + + $k2++; + } + e1692: + + if ($k2 < 1) { + goto f1691; + } + goto k1691; + f1691: + $this->p = $o2; + goto n1690; + k1691: + n1690: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1689; + f1689: + $this->p = $o1; + return false; + k1689: + + return true; + } + + private function s320(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(320); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f598;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e600; + } + + $this->p++; + } + e600: + if (!$this->s321()) { + goto f598;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e602; + } + + $this->p++; + } + e602: + if (($this->ids[$this->p] === 40)) { + // s327 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(327); + } + + goto n603;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(328); + } + + goto e605; + } + + if (!$this->s328()) { + goto e605;} + if ($this->p === $b2) { + $k2 = 1; + goto e605; + } + + $k2++; + } + e605: + + if ($k2 < 1) { + goto f604; + } + goto k604; + f604: + $this->p = $o2; + goto n603; + k604: + n603: + } elseif ($this->p > $this->f) { + $this->rec(327); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f598;} + + $this->p++; + goto k598; + f598: + $this->p = $o1; + return false; + k598: + + return true; + } + + private function s321(): bool + { + if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(321); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // s324 + if (!isset(self::Tfc0ac6dd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(324); + } + + goto n805;} + + $o2 = $this->p; + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f806;} + } + if (!$this->s199()) { + goto f806;} + goto k806; + f806: + $this->p = $o2; + goto n805; + k806: + goto a804; + n805: + break; + case 1: + case 2: + // s322 + if (!isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(322); + } + + goto n807;} + + $o2 = $this->p; + if (!isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(323); + } + + goto f808;} + + $this->p++; + if (!$this->s199()) { + goto f808;} + goto k808; + f808: + $this->p = $o2; + goto n807; + k808: + goto a804; + n807: + break; + case 48: + $this->p++; + goto a804; + break; + case 85: + $this->p++; + goto a804; + break; + } + + if ($this->p > $this->f) { + $this->rec(321); + } + + goto f803; + a804: + goto k803; + f803: + $this->p = $o1; + return false; + k803: + + return true; + } + + private function s327(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(327); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(328); + } + + goto e1698; + } + + // s328 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(328); + } + + goto e1698;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1699;} + + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1701; + } + + $this->p++; + } + e1701: + if (!$this->s329()) { + goto f1699;} + goto k1699; + f1699: + $this->p = $o2; + goto e1698; + k1699: + if ($this->p === $b1) { + $k1 = 1; + goto e1698; + } + + $k1++; + } + e1698: + + if ($k1 < 1) { + goto f1697; + } + goto k1697; + f1697: + $this->p = $o1; + return false; + k1697: + + return true; + } + + private function s328(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(328); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f809;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e811; + } + + $this->p++; + } + e811: + // s329 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 48: + case 82: + case 85: + if (!$this->s330()) { + goto n814;} + goto a813; + n814: + break; + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } + + goto n815;} + goto a813; + n815: + break; + } + + if ($this->p > $this->f) { + $this->rec(329); + } + + goto f812; + a813: + goto k812; + f812: + $this->p = $o2; + goto f809; + k812: + goto k809; + f809: + $this->p = $o1; + return false; + k809: + + return true; + } + + private function s329(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 48: + case 82: + case 85: + // s330 + if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(330); + } + + goto n1773;} + + $o2 = $this->p; + if (!$this->s321()) { + goto f1774;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1776; + } + + $this->p++; + } + e1776: + goto k1774; + f1774: + $this->p = $o2; + goto n1773; + k1774: + goto a1772; + n1773: + break; + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } + + goto n1777;} + goto a1772; + n1777: + break; + } + + if ($this->p > $this->f) { + $this->rec(329); + } + + goto f1771; + a1772: + goto k1771; + f1771: + $this->p = $o1; + return false; + k1771: + + return true; + } + + private function s330(): bool + { + if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(330); + } + + return false;} + + $o1 = $this->p; + if (!$this->s321()) { + goto f1049;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1051; + } + + $this->p++; + } + e1051: + goto k1049; + f1049: + $this->p = $o1; + return false; + k1049: + + return true; + } + + private function s335(): bool + { + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(335); + } + + return false;} + + $o1 = $this->p; + if (isset(self::T1e81050f[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s337(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f668;} + } + if (!$this->s340()) { + goto f668;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n670;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e672; + } + + if (!$this->s224()) { + goto e672;} + if ($this->p === $b2) { + $k2 = 1; + goto e672; + } + + $k2++; + } + e672: + + if ($k2 < 1) { + goto f671; + } + goto k671; + f671: + $this->p = $o2; + goto n670; + k671: + n670: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k668; + f668: + $this->p = $o1; + return false; + k668: + + return true; + } + + private function s337(): bool + { + if (!isset(self::T1e81050f[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(337); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 7: + case 18: + // s338 + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(338); + } + + goto n849;} + + $o2 = $this->p; + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(339); + } + + goto f850;} + + $this->p++; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f850;} + + $this->p++; + goto k850; + f850: + $this->p = $o2; + goto n849; + k850: + goto a848; + n849: + break; + case 36: + $this->p++; + goto a848; + break; + case 84: + $this->p++; + goto a848; + break; + } + + if ($this->p > $this->f) { + $this->rec(337); + } + + goto f847; + a848: + goto k847; + f847: + $this->p = $o1; + return false; + k847: + + return true; + } + + private function s340(): bool + { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(340); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + // s357 + if (!isset(self::Td08a6883[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(357); + } + + goto n192;} + + $o2 = $this->p; + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f193;} + } + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f193;} + + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (!$this->s360()) { + goto n194;} + n194: + } elseif ($this->p > $this->f) { + $this->rec(360); + } + goto k193; + f193: + $this->p = $o2; + goto n192; + k193: + goto a191; + n192: + break; + case 7: + case 18: + if (!$this->s347()) { + goto n195;} + goto a191; + n195: + break; + case 21: + case 22: + // s343 + if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(343); + } + + goto n196;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 21: + $this->p++; + goto a198; + break; + case 22: + $this->p++; + goto a198; + break; + } + + if ($this->p > $this->f) { + $this->rec(343); + } + + goto f197; + a198: + goto k197; + f197: + $this->p = $o2; + goto n196; + k197: + goto a191; + n196: + break; + case 36: + case 84: + if (!$this->s361()) { + goto n199;} + goto a191; + n199: + break; + case 15: + $this->p++; + goto a191; + break; + case 16: + $this->p++; + goto a191; + break; + case 17: + $this->p++; + goto a191; + break; + case 19: + $this->p++; + goto a191; + break; + case 20: + $this->p++; + goto a191; + break; + } + + if ($this->p > $this->f) { + $this->rec(340); + } + + goto f190; + a191: + goto k190; + f190: + $this->p = $o1; + return false; + k190: + + return true; + } + + private function s347(): bool + { + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(347); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(339); + } + + goto f454;} + + $this->p++; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f454;} + + $this->p++; + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->s349()) { + goto n455;} + n455: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f454;} + + $this->p++; + goto k454; + f454: + $this->p = $o1; + return false; + k454: + + return true; + } + + private function s349(): bool + { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(349); + } + + return false;} + + $o1 = $this->p; + // s350 + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(350); + } + + goto f728;} + + $o2 = $this->p; + if (!$this->s340()) { + goto f729;} + if (!$this->s351()) { + goto f729;} + goto k729; + f729: + $this->p = $o2; + goto f728; + k729: + if (($this->ids[$this->p] === 40)) { + if (!$this->s355()) { + goto n730;} + n730: + } elseif ($this->p > $this->f) { + $this->rec(355); + } + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k728; + f728: + $this->p = $o1; + return false; + k728: + + return true; + } + + private function s351(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n969;} + goto a968; + n969: + break; + case 44: + // s352 + if (!($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->rec(352); + } + + goto n970;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 44)) { + if ($this->p >= $this->f) { + $this->rec(67); + } + + goto f971;} + + $this->p++; + if (!$this->s340()) { + goto f971;} + goto k971; + f971: + $this->p = $o2; + goto n970; + k971: + goto a968; + n970: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n972;} + goto a968; + n972: + break; + } + + if ($this->p > $this->f) { + $this->rec(351); + } + + goto f967; + a968: + goto k967; + f967: + $this->p = $o1; + return false; + k967: + + return true; + } + + private function s355(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(355); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(356); + } + + goto e974; + } + + // s356 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(356); + } + + goto e974;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f975;} + + $this->p++; + // s350 + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(350); + } + + goto f975;} + + $o3 = $this->p; + if (!$this->s340()) { + goto f976;} + if (!$this->s351()) { + goto f976;} + goto k976; + f976: + $this->p = $o3; + goto f975; + k976: + goto k975; + f975: + $this->p = $o2; + goto e974; + k975: + if ($this->p === $b1) { + $k1 = 1; + goto e974; + } + + $k1++; + } + e974: + + if ($k1 < 1) { + goto f973; + } + goto k973; + f973: + $this->p = $o1; + return false; + k973: + + return true; + } + + private function s360(): bool + { + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(360); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 43)) { + if ($this->p >= $this->f) { + $this->rec(66); + } + + goto f453;} + + $this->p++; + if (!$this->s163()) { + goto f453;} + goto k453; + f453: + $this->p = $o1; + return false; + k453: + + return true; + } + + private function s361(): bool + { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(361); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(228); + } + + goto f456;} + + $this->p++; + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->s349()) { + goto n457;} + n457: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f456;} + + $this->p++; + goto k456; + f456: + $this->p = $o1; + return false; + k456: + + return true; + } + + private function s362(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(362); + } + + return false;} + + $o1 = $this->p; + if (!$this->s363()) { + goto f1219;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1220;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1222; + } + + if (!$this->s224()) { + goto e1222;} + if ($this->p === $b2) { + $k2 = 1; + goto e1222; + } + + $k2++; + } + e1222: + + if ($k2 < 1) { + goto f1221; + } + goto k1221; + f1221: + $this->p = $o2; + goto n1220; + k1221: + n1220: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1219; + f1219: + $this->p = $o1; + return false; + k1219: + + return true; + } + + private function s363(): bool + { + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(363); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 34)) { + if ($this->p >= $this->f) { + $this->rec(54); + } + + goto f1519;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1521; + } + + $this->p++; + } + e1521: + if (!$this->s321()) { + goto f1519;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1523; + } + + $this->p++; + } + e1523: + if (($this->ids[$this->p] === 40)) { + if (!$this->s327()) { + goto n1524;} + n1524: + } elseif ($this->p > $this->f) { + $this->rec(327); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1519;} + + $this->p++; + goto k1519; + f1519: + $this->p = $o1; + return false; + k1519: + + return true; + } + + private function s364(): bool + { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(364); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f884;} + + $this->p++; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e886; + } + + $this->p++; + } + e886: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + if (!$this->s306()) { + goto n887;} + n887: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f884;} + + $this->p++; + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f884;} + + $this->p++; + if (!$this->s315()) { + goto f884;} + goto k884; + f884: + $this->p = $o1; + return false; + k884: + + return true; + } + + private function s368(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s383 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f439;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f439;} + } + goto k439; + f439: + $this->p = $o2; + goto n438; + k439: + goto a437; + n438: + break; + case 28: + case 29: + case 41: + case 80: + // s369 + if (!isset(self::T8458d590[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(369); + } + + goto n440;} + + $o2 = $this->p; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e443; + } + + $this->p++; + } + e443: + if (!$this->s370()) { + goto f441;} + goto k441; + f441: + $this->p = $o2; + goto n440; + k441: + goto a437; + n440: + // s383 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f445;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f445;} + } + goto k445; + f445: + $this->p = $o2; + goto n444; + k445: + goto a437; + n444: + break; + } + + if ($this->p > $this->f) { + $this->rec(368); + } + + goto f436; + a437: + goto k436; + f436: + $this->p = $o1; + return false; + k436: + + return true; + } + + private function s370(): bool + { + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(370); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + // s371 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(371); + } + + goto n703;} + + $o2 = $this->p; + if (!$this->s372()) { + goto f704;} + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f704;} + } + goto k704; + f704: + $this->p = $o2; + goto n703; + k704: + goto a702; + n703: + break; + case 29: + // s377 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(377); + } + + goto n705;} + + $o2 = $this->p; + if (!$this->s378()) { + goto f706;} + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f706;} + } + goto k706; + f706: + $this->p = $o2; + goto n705; + k706: + goto a702; + n705: + break; + } + + if ($this->p > $this->f) { + $this->rec(370); + } + + goto f701; + a702: + goto k701; + f701: + $this->p = $o1; + return false; + k701: + + return true; + } + + private function s372(): bool + { + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(372); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b1 > $this->f) { + $this->rec(373); + } + + goto e936; + } + + // s373 + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(373); + } + + goto e936;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($this->p >= $this->f) { + $this->rec(49); + } + + goto f937;} + + $this->p++; + if (!$this->s201()) { + goto f937;} + // s375 + $o3 = $this->p; + // s203 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(204); + } + + goto e941; + } + + $this->p++; + } + e941: + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(49); + } + + goto f939;} + goto k939; + f939: + $this->p = $o3; + goto n938; + k939: + n938: + goto k937; + f937: + $this->p = $o2; + goto e936; + k937: + if ($this->p === $b1) { + $k1 = 1; + goto e936; + } + + $k1++; + } + e936: + + if ($k1 < 1) { + goto f935; + } + goto k935; + f935: + $this->p = $o1; + return false; + k935: + + return true; + } + + private function s378(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(378); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b1 > $this->f) { + $this->rec(379); + } + + goto e943; + } + + // s379 + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(379); + } + + goto e943;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($this->p >= $this->f) { + $this->rec(50); + } + + goto f944;} + + $this->p++; + if (!$this->s201()) { + goto f944;} + // s381 + $o3 = $this->p; + // s203 + $o4 = $this->p; + while (true) { + $b4 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b4 > $this->f) { + $this->rec(204); + } + + goto e948; + } + + $this->p++; + } + e948: + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(50); + } + + goto f946;} + goto k946; + f946: + $this->p = $o3; + goto n945; + k946: + n945: + goto k944; + f944: + $this->p = $o2; + goto e943; + k944: + if ($this->p === $b1) { + $k1 = 1; + goto e943; + } + + $k1++; + } + e943: + + if ($k1 < 1) { + goto f942; + } + goto k942; + f942: + $this->p = $o1; + return false; + k942: + + return true; + } + + private function s385(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + // s388 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f361;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f361;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f361;} + } + if (!$this->s125()) { + goto f361;} + goto k361; + f361: + $this->p = $o2; + goto n360; + k361: + goto a359; + n360: + break; + case 25: + case 26: + // s386 + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(386); + } + + goto n362;} + + $o2 = $this->p; + if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(387); + } + + goto f363;} + + $this->p++; + if (!$this->s125()) { + goto f363;} + goto k363; + f363: + $this->p = $o2; + goto n362; + k363: + goto a359; + n362: + // s388 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f365;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f365;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f365;} + } + if (!$this->s125()) { + goto f365;} + goto k365; + f365: + $this->p = $o2; + goto n364; + k365: + goto a359; + n364: + break; + } + + if ($this->p > $this->f) { + $this->rec(385); + } + + goto f358; + a359: + goto k358; + f358: + $this->p = $o1; + return false; + k358: + + return true; + } + + private function s391(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } + + return false;} + + $o1 = $this->p; + if (!$this->s199()) { + goto f325;} + // s388 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f326;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f326;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f326;} + } + if (!$this->s125()) { + goto f326;} + goto k326; + f326: + $this->p = $o2; + goto f325; + k326: + goto k325; + f325: + $this->p = $o1; + return false; + k325: + + return true; + } + + private function s409(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(409); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // s435 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(435); + } + + goto n345;} + + $o2 = $this->p; + if (!$this->s199()) { + goto f346;} + if (!$this->s415()) { + goto f346;} + goto k346; + f346: + $this->p = $o2; + goto n345; + k346: + goto a344; + n345: + break; + case 9: + // s410 + if (!($this->ids[$this->p] === 9)) { + if ($this->p > $this->f) { + $this->rec(410); + } + + goto n347;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 9)) { + if ($this->p >= $this->f) { + $this->rec(25); + } + + goto f348;} + + $this->p++; + if (isset(self::T648acf56[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s412(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f348;} + } + if (!$this->s199()) { + goto f348;} + if (!$this->s415()) { + goto f348;} + goto k348; + f348: + $this->p = $o2; + goto n347; + k348: + goto a344; + n347: + // s435 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(435); + } + + goto n350;} + + $o2 = $this->p; + if (!$this->s199()) { + goto f351;} + if (!$this->s415()) { + goto f351;} + goto k351; + f351: + $this->p = $o2; + goto n350; + k351: + goto a344; + n350: + break; + } + + if ($this->p > $this->f) { + $this->rec(409); + } + + goto f343; + a344: + goto k343; + f343: + $this->p = $o1; + return false; + k343: + + return true; + } + + private function s412(): bool + { + if (!isset(self::T648acf56[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(412); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + case 29: + case 41: + case 80: + // s413 + if (!isset(self::T8458d590[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(413); + } + + goto n560;} + + $o2 = $this->p; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e563; + } + + $this->p++; + } + e563: + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(414); + } + + goto f561;} + + $this->p++; + goto k561; + f561: + $this->p = $o2; + goto n560; + k561: + goto a559; + n560: + break; + case 32: + $this->p++; + goto a559; + break; + case 34: + $this->p++; + goto a559; + break; + case 36: + $this->p++; + goto a559; + break; + case 43: + $this->p++; + goto a559; + break; + case 82: + $this->p++; + goto a559; + break; + case 84: + $this->p++; + goto a559; + break; + } + + if ($this->p > $this->f) { + $this->rec(412); + } + + goto f558; + a559: + goto k558; + f558: + $this->p = $o1; + return false; + k558: + + return true; + } + + private function s415(): bool + { + if (!isset(self::T02ca7bff[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(415); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // s416 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(416); + } + + goto n608;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f609;} + + $this->p++; + if (!$this->s417()) { + goto f609;} + goto k609; + f609: + $this->p = $o2; + goto n608; + k609: + goto a607; + n608: + break; + case 32: + case 34: + case 82: + case 86: + if (!$this->s417()) { + goto n610;} + goto a607; + n610: + break; + } + + if ($this->p > $this->f) { + $this->rec(415); + } + + goto f606; + a607: + goto k606; + f606: + $this->p = $o1; + return false; + k606: + + return true; + } + + private function s417(): bool + { + if (!isset(self::Tf86de613[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(417); + } + + return false;} + + $o1 = $this->p; + // s418 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n819;} + goto a818; + n819: + break; + case 34: + case 86: + if (!$this->s419()) { + goto n820;} + goto a818; + n820: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n821;} + goto a818; + n821: + break; + } + + if ($this->p > $this->f) { + $this->rec(418); + } + + goto f817; + a818: + goto k817; + f817: + $this->p = $o2; + goto f816; + k817: + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f816;} + + $this->p++; + if (isset(self::T9373805c[$this->ids[$this->p]])) { + if (!$this->s424()) { + goto n822;} + n822: + } elseif ($this->p > $this->f) { + $this->rec(424); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f816;} + + $this->p++; + // s125 + $o2 = $this->p; + // s126 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(116); + } + + goto e825; + } + + $this->p++; + } + e825: + if (($this->ids[$this->p] === 80)) { + if (!$this->s128()) { + goto n826;} + n826: + } elseif ($this->p > $this->f) { + $this->rec(128); + } + goto k816; + f816: + $this->p = $o1; + return false; + k816: + + return true; + } + + private function s419(): bool + { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(419); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } + + goto f1052;} + + $this->p++; + // s286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f1052;} + + $o2 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1053;} + + $this->p++; + if (!$this->s287()) { + goto f1053;} + if (!$this->s293()) { + goto f1053;} + if (!$this->s296()) { + goto f1053;} + goto k1053; + f1053: + $this->p = $o2; + goto f1052; + k1053: + if (($this->ids[$this->p] === 40)) { + if (!$this->s421()) { + goto n1054;} + n1054: + } elseif ($this->p > $this->f) { + $this->rec(421); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1052;} + + $this->p++; + goto k1052; + f1052: + $this->p = $o1; + return false; + k1052: + + return true; + } + + private function s421(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(421); + } + + return false;} + + $o1 = $this->p; + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(422); + } + + goto e1407; + } + + // s422 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(422); + } + + goto e1407;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1408;} + + $this->p++; + if (!$this->s286()) { + goto f1408;} + goto k1408; + f1408: + $this->p = $o2; + goto e1407; + k1408: + if ($this->p === $b1) { + $k1 = 1; + goto e1407; + } + + $k1++; + } + e1407: + + if ($k1 < 1) { + goto f1406; + } + goto k1406; + f1406: + $this->p = $o1; + return false; + k1406: + + return true; + } + + private function s424(): bool + { + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(424); + } + + return false;} + + $o1 = $this->p; + if (!$this->s425()) { + goto f1055;} + if (($this->ids[$this->p] === 40)) { + // s433 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(433); + } + + goto n1056;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(434); + } + + goto e1058; + } + + if (!$this->s434()) { + goto e1058;} + if ($this->p === $b2) { + $k2 = 1; + goto e1058; + } + + $k2++; + } + e1058: + + if ($k2 < 1) { + goto f1057; + } + goto k1057; + f1057: + $this->p = $o2; + goto n1056; + k1057: + n1056: + } elseif ($this->p > $this->f) { + $this->rec(433); + } + goto k1055; + f1055: + $this->p = $o1; + return false; + k1055: + + return true; + } + + private function s425(): bool + { + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(425); + } + + return false;} + + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + case 30: + case 32: + case 82: + // s426 + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(426); + } + + goto n1411;} + + $o2 = $this->p; + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(428); + } + + goto f1412;} + if (!$this->s199()) { + goto f1412;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1412;} + + $this->p++; + if (!$this->s429()) { + goto f1412;} + goto k1412; + f1412: + $this->p = $o2; + goto n1411; + k1412: + goto a1410; + n1411: + break; + case 26: + case 27: + case 42: + // s431 + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(431); + } + + goto n1413;} + + $o2 = $this->p; + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1414;} + + $this->p++; + if (!$this->s429()) { + goto f1414;} + goto k1414; + f1414: + $this->p = $o2; + goto n1413; + k1414: + goto a1410; + n1413: + break; + } + + if ($this->p > $this->f) { + $this->rec(425); + } + + goto f1409; + a1410: + goto k1409; + f1409: + $this->p = $o1; + return false; + k1409: + + return true; + } + + private function s429(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1648;} + goto a1647; + n1648: + break; + case 46: + // s430 + if (!($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->rec(430); + } + + goto n1649;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); + } + + goto f1650;} + + $this->p++; + if (!$this->s340()) { + goto f1650;} + goto k1650; + f1650: + $this->p = $o2; + goto n1649; + k1650: + goto a1647; + n1649: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1651;} + goto a1647; + n1651: + break; + } + + if ($this->p > $this->f) { + $this->rec(429); + } + + goto f1646; + a1647: + goto k1646; + f1646: + $this->p = $o1; + return false; + k1646: + + return true; + } + + private function s434(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(434); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1415;} + + $this->p++; + if (!$this->s425()) { + goto f1415;} + goto k1415; + f1415: + $this->p = $o1; + return false; + k1415: + + return true; + } + + private function s436(): bool + { + if (!($this->ids[$this->p] === 62)) { + if ($this->p > $this->f) { + $this->rec(436); + } + + return false;} + + $o1 = $this->p; + if (!($this->ids[$this->p] === 62)) { + if ($this->p >= $this->f) { + $this->rec(100); + } + + goto f339;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f339;} + + $this->p++; + if (!$this->s287()) { + goto f339;} + if (!$this->s293()) { + goto f339;} + if (!$this->s296()) { + goto f339;} + // s388 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f340;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f340;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f340;} + } + if (!$this->s125()) { + goto f340;} + goto k340; + f340: + $this->p = $o2; + goto f339; + k340: + goto k339; + f339: + $this->p = $o1; + return false; + k339: + + return true; + } + + private function s438(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f341;} + + $this->p++; + if (!$this->s320()) { + goto f341;} + // s388 + $o2 = $this->p; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f342;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f342;} + } + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f342;} + } + if (!$this->s125()) { + goto f342;} + goto k342; + f342: + $this->p = $o2; + goto f341; + k342: + goto k341; + f341: + $this->p = $o1; + return false; + k341: + + return true; + } + + private function s444(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n329;} + goto a328; + n329: + break; + case 14: + // s445 + if (!($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->rec(445); + } + + goto n330;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 14)) { + if ($this->p >= $this->f) { + $this->rec(28); + } + + goto f331;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f331;} + + $this->p++; + goto k331; + f331: + $this->p = $o2; + goto n330; + k331: + goto a328; + n330: + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n332;} + goto a328; + n332: + break; + } + + if ($this->p > $this->f) { + $this->rec(444); + } + + goto f327; + a328: + goto k327; + f327: + $this->p = $o1; + return false; + k327: + + return true; + } + + private function s449(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n335;} + goto a334; + n335: + break; + case 45: + // s450 + if (!($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->rec(450); + } + + goto n336;} + + $o2 = $this->p; + if (!($this->ids[$this->p] === 45)) { + if ($this->p >= $this->f) { + $this->rec(68); + } + + goto f337;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f337;} + + $this->p++; + if (!$this->s451()) { + goto f337;} + goto k337; + f337: + $this->p = $o2; + goto n336; + k337: + goto a334; + n336: + if (($this->ids[$this->p] === 45)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n338;} + goto a334; + n338: + break; + } + + if ($this->p > $this->f) { + $this->rec(449); + } + + goto f333; + a334: + goto k333; + f333: + $this->p = $o1; + return false; + k333: + + return true; + } + + private function s451(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n570;} + goto a569; + n570: + break; + case 32: + case 82: + // s452 + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(452); + } + + goto n571;} + + $o2 = $this->p; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f572;} + + $this->p++; + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f572;} + + $this->p++; + goto k572; + f572: + $this->p = $o2; + goto n571; + k572: + goto a569; + n571: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n573;} + goto a569; + n573: + break; + } + + if ($this->p > $this->f) { + $this->rec(451); + } + + goto f568; + a569: + goto k568; + f568: + $this->p = $o1; + return false; + k568: + + return true; + } + + private function s454(): bool + { + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(454); + } + + return false;} + + $o1 = $this->p; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f261;} + + $this->p++; + // s125 + $o2 = $this->p; + // s126 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(116); + } + + goto e264; + } + + $this->p++; + } + e264: + if (($this->ids[$this->p] === 80)) { + if (!$this->s128()) { + goto n265;} + n265: + } elseif ($this->p > $this->f) { + $this->rec(128); + } + goto k261; + f261: + $this->p = $o1; + return false; + k261: + + return true; + } +} diff --git a/src/Parser/PhpDocParser.php b/src/Parser/PhpDocParser.php index f6734225..7ac8e707 100644 --- a/src/Parser/PhpDocParser.php +++ b/src/Parser/PhpDocParser.php @@ -2,41 +2,21 @@ namespace PHPStan\PhpDocParser\Parser; -use LogicException; use PHPStan\PhpDocParser\Ast; -use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprIntegerNode; -use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprStringNode; -use PHPStan\PhpDocParser\Ast\ConstExpr\ConstFetchNode; -use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine; -use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\ParserConfig; -use PHPStan\ShouldNotHappenException; -use function array_key_exists; -use function count; -use function rtrim; -use function str_replace; -use function trim; +use function strlen; -/** - * @phpstan-import-type ValueType from Doctrine\DoctrineArgument as DoctrineValueType - */ class PhpDocParser { - private const DISALLOWED_DESCRIPTION_START_TOKENS = [ - Lexer::TOKEN_UNION, - Lexer::TOKEN_INTERSECTION, - ]; - private ParserConfig $config; - private TypeParser $typeParser; - - private ConstExprParser $constantExprParser; - - private ConstExprParser $doctrineConstantExprParser; + private AstBuilder $builder; + // The parsers it has always been given are not needed anymore, but it is + // constructed the way it always has been + // @phpstan-ignore constructor.unusedParameter, constructor.unusedParameter public function __construct( ParserConfig $config, TypeParser $typeParser, @@ -44,1214 +24,110 @@ public function __construct( ) { $this->config = $config; - $this->typeParser = $typeParser; - $this->constantExprParser = $constantExprParser; - $this->doctrineConstantExprParser = $constantExprParser->toDoctrine(); + $this->builder = new AstBuilder($config); } public function parse(TokenIterator $tokens): Ast\PhpDoc\PhpDocNode { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PHPDOC); - $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); - - $children = []; - - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - $lastChild = $this->parseChild($tokens); - $children[] = $lastChild; - while (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - if ( - $lastChild instanceof Ast\PhpDoc\PhpDocTagNode - && ( - $lastChild->value instanceof Doctrine\DoctrineTagValueNode - || $lastChild->value instanceof Ast\PhpDoc\GenericTagValueNode - ) - ) { - $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - break; - } - $lastChild = $this->parseChild($tokens); - $children[] = $lastChild; - continue; - } - - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL)) { - break; - } - if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - break; - } - - $lastChild = $this->parseChild($tokens); - $children[] = $lastChild; - } - } - - try { - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PHPDOC); - } catch (ParserException $e) { - $name = ''; - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if (count($children) > 0) { - $lastChild = $children[count($children) - 1]; - if ($lastChild instanceof Ast\PhpDoc\PhpDocTagNode) { - $name = $lastChild->name; - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - } - } - - $tag = new Ast\PhpDoc\PhpDocTagNode( - $name, - $this->enrichWithAttributes( - $tokens, - new Ast\PhpDoc\InvalidTagValueNode($e->getMessage(), $e), - $startLine, - $startIndex, - ), - ); - - $tokens->forwardToTheEnd(); - - $comments = $tokens->flushComments(); - if ($comments !== []) { - throw new LogicException('Comments should already be flushed'); - } - - return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocNode([$this->enrichWithAttributes($tokens, $tag, $startLine, $startIndex)]), 1, 0); - } - - $comments = $tokens->flushComments(); - if ($comments !== []) { - throw new LogicException('Comments should already be flushed'); - } - - return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocNode($children), 1, 0); - } - - /** @phpstan-impure */ - private function parseChild(TokenIterator $tokens): Ast\PhpDoc\PhpDocChildNode - { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - return $this->enrichWithAttributes($tokens, $this->parseTag($tokens), $startLine, $startIndex); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_TAG)) { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $tag = $tokens->currentTokenValue(); - $tokens->next(); - - $tagStartLine = $tokens->currentTokenLine(); - $tagStartIndex = $tokens->currentTokenIndex(); - - return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocTagNode( - $tag, - $this->enrichWithAttributes( - $tokens, - $this->parseDoctrineTagValue($tokens, $tag), - $tagStartLine, - $tagStartIndex, - ), - ), $startLine, $startIndex); - } - - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $text = $this->parseText($tokens); - - return $this->enrichWithAttributes($tokens, $text, $startLine, $startIndex); - } - - /** - * @template T of Ast\Node - * @param T $tag - * @return T - */ - private function enrichWithAttributes(TokenIterator $tokens, Ast\Node $tag, int $startLine, int $startIndex): Ast\Node - { - if ($this->config->useLinesAttributes) { - $tag->setAttribute(Ast\Attribute::START_LINE, $startLine); - $tag->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); - } - - if ($this->config->useIndexAttributes) { - $tag->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $tag->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); - } - - return $tag; - } - - private function parseText(TokenIterator $tokens): Ast\PhpDoc\PhpDocTextNode - { - $text = ''; - - $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; - - $savepoint = false; - - // if the next token is EOL, everything below is skipped and empty string is returned - while (true) { - $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); - $text .= $tmpText; - - // stop if we're not at EOL - meaning it's the end of PHPDoc - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC)) { - break; - } - - if (!$savepoint) { - $tokens->pushSavePoint(); - $savepoint = true; - } elseif ($tmpText !== '') { - $tokens->dropSavePoint(); - $tokens->pushSavePoint(); - } - - $tokens->pushSavePoint(); - $tokens->next(); - - // if we're at EOL, check what's next - // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { - $tokens->rollback(); - break; - } - - // otherwise if the next is text, continue building the description string - - $tokens->dropSavePoint(); - $text .= $tokens->getDetectedNewline() ?? "\n"; - } - - if ($savepoint) { - $tokens->rollback(); - $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); - } - - return new Ast\PhpDoc\PhpDocTextNode(trim($text, " \t")); - } - - private function parseOptionalDescriptionAfterDoctrineTag(TokenIterator $tokens): string - { - $text = ''; - - $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; - - $savepoint = false; - - // if the next token is EOL, everything below is skipped and empty string is returned - while (true) { - $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); - $text .= $tmpText; - - // stop if we're not at EOL - meaning it's the end of PHPDoc - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC)) { - if (!$tokens->isPrecededByHorizontalWhitespace()) { - return trim($text . $this->parseText($tokens)->text, " \t"); - } - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { - $tokens->pushSavePoint(); - $child = $this->parseChild($tokens); - if ($child instanceof Ast\PhpDoc\PhpDocTagNode) { - if ( - $child->value instanceof Ast\PhpDoc\GenericTagValueNode - || $child->value instanceof Doctrine\DoctrineTagValueNode - ) { - $tokens->rollback(); - break; - } - if ($child->value instanceof Ast\PhpDoc\InvalidTagValueNode) { - $tokens->rollback(); - $tokens->pushSavePoint(); - $tokens->next(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $tokens->rollback(); - break; - } - $tokens->rollback(); - return trim($text . $this->parseText($tokens)->text, " \t"); - } - } - - $tokens->rollback(); - return trim($text . $this->parseText($tokens)->text, " \t"); - } - break; - } - - if (!$savepoint) { - $tokens->pushSavePoint(); - $savepoint = true; - } elseif ($tmpText !== '') { - $tokens->dropSavePoint(); - $tokens->pushSavePoint(); - } - - $tokens->pushSavePoint(); - $tokens->next(); - - // if we're at EOL, check what's next - // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { - $tokens->rollback(); - break; - } - - // otherwise if the next is text, continue building the description string - - $tokens->dropSavePoint(); - $text .= $tokens->getDetectedNewline() ?? "\n"; - } - - if ($savepoint) { - $tokens->rollback(); - $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); - } - - return trim($text, " \t"); - } - - public function parseTag(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagNode - { - $tag = $tokens->currentTokenValue(); - $tokens->next(); - $value = $this->parseTagValue($tokens, $tag); - - return new Ast\PhpDoc\PhpDocTagNode($tag, $value); - } - - public function parseTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode - { - $startLine = $tokens->currentTokenLine(); $startIndex = $tokens->currentTokenIndex(); - - try { - $tokens->pushSavePoint(); - - switch ($tag) { - case '@param': - case '@phpstan-param': - case '@psalm-param': - case '@phan-param': - $tagValue = $this->parseParamTagValue($tokens); - break; - - case '@param-immediately-invoked-callable': - case '@phpstan-param-immediately-invoked-callable': - $tagValue = $this->parseParamImmediatelyInvokedCallableTagValue($tokens); - break; - - case '@param-later-invoked-callable': - case '@phpstan-param-later-invoked-callable': - $tagValue = $this->parseParamLaterInvokedCallableTagValue($tokens); - break; - - case '@param-closure-this': - case '@phpstan-param-closure-this': - $tagValue = $this->parseParamClosureThisTagValue($tokens); - break; - - case '@pure-unless-callable-is-impure': - case '@phpstan-pure-unless-callable-is-impure': - $tagValue = $this->parsePureUnlessCallableIsImpureTagValue($tokens); - break; - - case '@pure-unless-parameter-passed': - case '@phpstan-pure-unless-parameter-passed': - $tagValue = $this->parsePureUnlessParameterIsPassed($tokens); - break; - - case '@var': - case '@phpstan-var': - case '@psalm-var': - case '@phan-var': - $tagValue = $this->parseVarTagValue($tokens); - break; - - case '@return': - case '@phpstan-return': - case '@psalm-return': - case '@phan-return': - case '@phan-real-return': - $tagValue = $this->parseReturnTagValue($tokens); - break; - - case '@throws': - case '@phpstan-throws': - $tagValue = $this->parseThrowsTagValue($tokens); - break; - - case '@mixin': - case '@phan-mixin': - $tagValue = $this->parseMixinTagValue($tokens); - break; - - case '@psalm-require-extends': - case '@phpstan-require-extends': - $tagValue = $this->parseRequireExtendsTagValue($tokens); - break; - - case '@psalm-require-implements': - case '@phpstan-require-implements': - $tagValue = $this->parseRequireImplementsTagValue($tokens); - break; - - case '@psalm-inheritors': - case '@phpstan-sealed': - $tagValue = $this->parseSealedTagValue($tokens); - break; - - case '@deprecated': - $tagValue = $this->parseDeprecatedTagValue($tokens); - break; - - case '@property': - case '@property-read': - case '@property-write': - case '@phpstan-property': - case '@phpstan-property-read': - case '@phpstan-property-write': - case '@psalm-property': - case '@psalm-property-read': - case '@psalm-property-write': - case '@phan-property': - case '@phan-property-read': - case '@phan-property-write': - $tagValue = $this->parsePropertyTagValue($tokens); - break; - - case '@method': - case '@phpstan-method': - case '@psalm-method': - case '@phan-method': - $tagValue = $this->parseMethodTagValue($tokens); - break; - - case '@template': - case '@phpstan-template': - case '@psalm-template': - case '@phan-template': - case '@template-covariant': - case '@phpstan-template-covariant': - case '@psalm-template-covariant': - case '@template-contravariant': - case '@phpstan-template-contravariant': - case '@psalm-template-contravariant': - $tagValue = $this->typeParser->parseTemplateTagValue( - $tokens, - fn ($tokens) => $this->parseOptionalDescription($tokens, true), - ); - break; - - case '@extends': - case '@phpstan-extends': - case '@phan-extends': - case '@phan-inherits': - case '@template-extends': - $tagValue = $this->parseExtendsTagValue('@extends', $tokens); - break; - - case '@implements': - case '@phpstan-implements': - case '@template-implements': - $tagValue = $this->parseExtendsTagValue('@implements', $tokens); - break; - - case '@use': - case '@phpstan-use': - case '@template-use': - $tagValue = $this->parseExtendsTagValue('@use', $tokens); - break; - - case '@phpstan-type': - case '@psalm-type': - case '@phan-type': - $tagValue = $this->parseTypeAliasTagValue($tokens); - break; - - case '@phpstan-import-type': - case '@psalm-import-type': - $tagValue = $this->parseTypeAliasImportTagValue($tokens); - break; - - case '@phpstan-assert': - case '@phpstan-assert-if-true': - case '@phpstan-assert-if-false': - case '@psalm-assert': - case '@psalm-assert-if-true': - case '@psalm-assert-if-false': - case '@phan-assert': - case '@phan-assert-if-true': - case '@phan-assert-if-false': - $tagValue = $this->parseAssertTagValue($tokens); - break; - - case '@phpstan-this-out': - case '@phpstan-self-out': - case '@psalm-this-out': - case '@psalm-self-out': - $tagValue = $this->parseSelfOutTagValue($tokens); - break; - - case '@param-out': - case '@phpstan-param-out': - case '@psalm-param-out': - $tagValue = $this->parseParamOutTagValue($tokens); - break; - - default: - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $tagValue = $this->parseDoctrineTagValue($tokens, $tag); - } else { - $tagValue = new Ast\PhpDoc\GenericTagValueNode($this->parseOptionalDescriptionAfterDoctrineTag($tokens)); - } - break; + $all = $tokens->getTokens(); + foreach ($all as $i => $token) { + if ($i < $startIndex || $token[Lexer::TYPE_OFFSET] !== Lexer::TOKEN_PHPDOC_EOL) { + continue; } - $tokens->dropSavePoint(); - - } catch (ParserException $e) { - $tokens->rollback(); - $tagValue = new Ast\PhpDoc\InvalidTagValueNode($this->parseOptionalDescription($tokens, false), $e); - } - - return $this->enrichWithAttributes($tokens, $tagValue, $startLine, $startIndex); - } - - private function parseDoctrineTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - return new Doctrine\DoctrineTagValueNode( - $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineAnnotation($tag, $this->parseDoctrineArguments($tokens, false)), - $startLine, - $startIndex, - ), - $this->parseOptionalDescriptionAfterDoctrineTag($tokens), - ); - } - - /** - * @return list - */ - private function parseDoctrineArguments(TokenIterator $tokens, bool $deep): array - { - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - return []; + $tokens->detectNewlineOf($token[Lexer::VALUE_OFFSET]); + break; } - if (!$deep) { - $tokens->addEndOfLineToSkippedTokens(); - } - - $arguments = []; - try { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); - - do { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { - break; - } - $arguments[] = $this->parseDoctrineArgument($tokens); - } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); - } finally { - if (!$deep) { - $tokens->removeEndOfLineFromSkippedTokens(); - } - } - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - - return $arguments; - } - - private function parseDoctrineArgument(TokenIterator $tokens): Doctrine\DoctrineArgument - { - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), - $startLine, - $startIndex, - ); - } - - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - try { - $tokens->pushSavePoint(); - $currentValue = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $key = $this->enrichWithAttributes( - $tokens, - new IdentifierTypeNode($currentValue), - $startLine, - $startIndex, - ); - $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); - - $value = $this->parseDoctrineArgumentValue($tokens); - - $tokens->dropSavePoint(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArgument($key, $value), - $startLine, - $startIndex, - ); + /** @var Ast\PhpDoc\PhpDocNode */ + return $this->builder->read($tokens, 'PhpDoc'); } catch (ParserException $e) { - $tokens->rollback(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), - $startLine, - $startIndex, - ); + return $this->createInvalidPhpDoc($tokens, $e, $startIndex); } } /** - * @return DoctrineValueType + * A PHPDoc that cannot be read up to its end is read as a single tag that + * cannot be read: the one written last before the error, if any. */ - private function parseDoctrineArgumentValue(TokenIterator $tokens) - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG)) { - $name = $tokens->currentTokenValue(); - $tokens->next(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineAnnotation($name, $this->parseDoctrineArguments($tokens, true)), - $startLine, - $startIndex, - ); - } - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET)) { - $items = []; - do { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { - break; - } - $items[] = $this->parseDoctrineArrayItem($tokens); - } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArray($items), - $startLine, - $startIndex, - ); - } - - $currentTokenValue = $tokens->currentTokenValue(); - $tokens->pushSavePoint(); // because of ConstFetchNode - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { - $identifier = $this->enrichWithAttributes( - $tokens, - new Ast\Type\IdentifierTypeNode($currentTokenValue), - $startLine, - $startIndex, - ); - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - $tokens->dropSavePoint(); - return $identifier; - } - - $tokens->rollback(); // because of ConstFetchNode - } else { - $tokens->dropSavePoint(); // because of ConstFetchNode - } - - $currentTokenValue = $tokens->currentTokenValue(); - $currentTokenType = $tokens->currentTokenType(); - $currentTokenOffset = $tokens->currentTokenOffset(); - $currentTokenLine = $tokens->currentTokenLine(); - - try { - $constExpr = $this->doctrineConstantExprParser->parse($tokens); - if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); + private function createInvalidPhpDoc(TokenIterator $tokens, ParserException $e, int $startIndex): Ast\PhpDoc\PhpDocNode + { + $all = $tokens->getTokens(); + $errorIndex = $startIndex; + $offset = 0; + foreach ($all as $i => $token) { + if ($offset >= $e->getCurrentOffset()) { + $errorIndex = $i; + break; } - return $constExpr; - } catch (LogicException $e) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); + $offset += strlen($token[Lexer::VALUE_OFFSET]); } - } - - private function parseDoctrineArrayItem(TokenIterator $tokens): Doctrine\DoctrineArrayItem - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - try { - $tokens->pushSavePoint(); - $key = $this->parseDoctrineArrayKey($tokens); - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL)) { - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_COLON)) { - $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); // will throw exception - } + $name = ''; + for ($i = $errorIndex - 1; $i > $startIndex; $i--) { + $type = $all[$i][Lexer::TYPE_OFFSET]; + if ($type === Lexer::TOKEN_PHPDOC_TAG || $type === Lexer::TOKEN_DOCTRINE_TAG) { + $name = $all[$i][Lexer::VALUE_OFFSET]; + break; } - - $value = $this->parseDoctrineArgumentValue($tokens); - - $tokens->dropSavePoint(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArrayItem($key, $value), - $startLine, - $startIndex, - ); - } catch (ParserException $e) { - $tokens->rollback(); - - return $this->enrichWithAttributes( - $tokens, - new Doctrine\DoctrineArrayItem(null, $this->parseDoctrineArgumentValue($tokens)), - $startLine, - $startIndex, - ); } - } - - /** - * @return ConstExprIntegerNode|ConstExprStringNode|IdentifierTypeNode|ConstFetchNode - */ - private function parseDoctrineArrayKey(TokenIterator $tokens) - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { - $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $tokens->currentTokenValue())); - $tokens->next(); + $tokens->forwardToTheEnd(); - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { - $key = $this->doctrineConstantExprParser->parseDoctrineString($tokens->currentTokenValue(), $tokens); + $value = new Ast\PhpDoc\InvalidTagValueNode($e->getMessage(), $e); + $tag = new Ast\PhpDoc\PhpDocTagNode($name, $value); + $node = new Ast\PhpDoc\PhpDocNode([$tag]); - $tokens->next(); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { - $key = new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\ConstExprStringNode::SINGLE_QUOTED); - $tokens->next(); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { - $value = $tokens->currentTokenValue(); - $tokens->next(); - $key = $this->doctrineConstantExprParser->parseDoctrineString($value, $tokens); - - } else { - $currentTokenValue = $tokens->currentTokenValue(); - $tokens->pushSavePoint(); // because of ConstFetchNode - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { - $tokens->dropSavePoint(); - throw new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_IDENTIFIER, - null, - $tokens->currentTokenLine(), - ); - } - - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - $tokens->dropSavePoint(); - - return $this->enrichWithAttributes( - $tokens, - new IdentifierTypeNode($currentTokenValue), - $startLine, - $startIndex, - ); + $endIndex = $tokens->endIndexOfLastRelevantToken(); + $endLine = $tokens->currentTokenLine(); + foreach ([$value, $tag, $node] as $item) { + $isPhpDoc = $item === $node; + if ($this->config->useLinesAttributes) { + $item->setAttribute(Ast\Attribute::START_LINE, $isPhpDoc ? $all[$startIndex][Lexer::LINE_OFFSET] : $all[$errorIndex][Lexer::LINE_OFFSET]); + $item->setAttribute(Ast\Attribute::END_LINE, $endLine); } - $tokens->rollback(); - $constExpr = $this->doctrineConstantExprParser->parse($tokens); - if (!$constExpr instanceof Ast\ConstExpr\ConstFetchNode) { - throw new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_IDENTIFIER, - null, - $tokens->currentTokenLine(), - ); + if (!$this->config->useIndexAttributes) { + continue; } - return $constExpr; + $item->setAttribute(Ast\Attribute::START_INDEX, $isPhpDoc ? $startIndex : $errorIndex); + $item->setAttribute(Ast\Attribute::END_INDEX, $endIndex); } - return $this->enrichWithAttributes($tokens, $key, $startLine, $startIndex); + return $node; } /** - * @return Ast\PhpDoc\ParamTagValueNode|Ast\PhpDoc\TypelessParamTagValueNode + * Reads the tag at the position the iterator is at, along with its value. */ - private function parseParamTagValue(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode - { - if ( - $tokens->isCurrentTokenType(Lexer::TOKEN_REFERENCE, Lexer::TOKEN_VARIADIC, Lexer::TOKEN_VARIABLE) - ) { - $type = null; - } else { - $type = $this->typeParser->parse($tokens); - } - - $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); - $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - if ($type !== null) { - return new Ast\PhpDoc\ParamTagValueNode($type, $isVariadic, $parameterName, $description, $isReference); - } - - return new Ast\PhpDoc\TypelessParamTagValueNode($isVariadic, $parameterName, $description, $isReference); - } - - private function parseParamImmediatelyInvokedCallableTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode - { - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode($parameterName, $description); - } - - private function parseParamLaterInvokedCallableTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode - { - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode($parameterName, $description); - } - - private function parseParamClosureThisTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamClosureThisTagValueNode - { - $type = $this->typeParser->parse($tokens); - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\ParamClosureThisTagValueNode($type, $parameterName, $description); - } - - private function parsePureUnlessCallableIsImpureTagValue(TokenIterator $tokens): Ast\PhpDoc\PureUnlessCallableIsImpureTagValueNode - { - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\PureUnlessCallableIsImpureTagValueNode($parameterName, $description); - } - - private function parsePureUnlessParameterIsPassed(TokenIterator $tokens): Ast\PhpDoc\PureUnlessParameterIsPassedTagValueNode - { - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\PureUnlessParameterIsPassedTagValueNode($parameterName, $description); - } - - private function parseVarTagValue(TokenIterator $tokens): Ast\PhpDoc\VarTagValueNode - { - $type = $this->typeParser->parse($tokens); - $variableName = $this->parseOptionalVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, $variableName === ''); - return new Ast\PhpDoc\VarTagValueNode($type, $variableName, $description); - } - - private function parseReturnTagValue(TokenIterator $tokens): Ast\PhpDoc\ReturnTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\ReturnTagValueNode($type, $description); - } - - private function parseThrowsTagValue(TokenIterator $tokens): Ast\PhpDoc\ThrowsTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\ThrowsTagValueNode($type, $description); - } - - private function parseMixinTagValue(TokenIterator $tokens): Ast\PhpDoc\MixinTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\MixinTagValueNode($type, $description); - } - - private function parseRequireExtendsTagValue(TokenIterator $tokens): Ast\PhpDoc\RequireExtendsTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\RequireExtendsTagValueNode($type, $description); - } - - private function parseRequireImplementsTagValue(TokenIterator $tokens): Ast\PhpDoc\RequireImplementsTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\RequireImplementsTagValueNode($type, $description); - } - - private function parseSealedTagValue(TokenIterator $tokens): Ast\PhpDoc\SealedTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - return new Ast\PhpDoc\SealedTagValueNode($type, $description); - } - - private function parseDeprecatedTagValue(TokenIterator $tokens): Ast\PhpDoc\DeprecatedTagValueNode - { - $description = $this->parseOptionalDescription($tokens, false); - return new Ast\PhpDoc\DeprecatedTagValueNode($description); - } - - private function parsePropertyTagValue(TokenIterator $tokens): Ast\PhpDoc\PropertyTagValueNode - { - $type = $this->typeParser->parse($tokens); - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - return new Ast\PhpDoc\PropertyTagValueNode($type, $parameterName, $description); - } - - private function parseMethodTagValue(TokenIterator $tokens): Ast\PhpDoc\MethodTagValueNode - { - $staticKeywordOrReturnTypeOrMethodName = $this->typeParser->parse($tokens); - - if ($staticKeywordOrReturnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode && $staticKeywordOrReturnTypeOrMethodName->name === 'static') { - $isStatic = true; - $returnTypeOrMethodName = $this->typeParser->parse($tokens); - - } else { - $isStatic = false; - $returnTypeOrMethodName = $staticKeywordOrReturnTypeOrMethodName; - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { - $returnType = $returnTypeOrMethodName; - $methodName = $tokens->currentTokenValue(); - $tokens->next(); - - } elseif ($returnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode) { - $returnType = $isStatic ? $staticKeywordOrReturnTypeOrMethodName : null; - $methodName = $returnTypeOrMethodName->name; - $isStatic = false; - - } else { - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); // will throw exception - exit; - } - - $templateTypes = []; - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { - do { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $templateTypes[] = $this->enrichWithAttributes( - $tokens, - $this->typeParser->parseTemplateTagValue($tokens), - $startLine, - $startIndex, - ); - } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); - } - - $parameters = []; - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { - $parameters[] = $this->parseMethodTagValueParameter($tokens); - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { - $parameters[] = $this->parseMethodTagValueParameter($tokens); - } - } - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - - $description = $this->parseOptionalDescription($tokens, false); - return new Ast\PhpDoc\MethodTagValueNode($isStatic, $returnType, $methodName, $parameters, $description, $templateTypes); - } - - private function parseMethodTagValueParameter(TokenIterator $tokens): Ast\PhpDoc\MethodTagValueParameterNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - switch ($tokens->currentTokenType()) { - case Lexer::TOKEN_IDENTIFIER: - case Lexer::TOKEN_OPEN_PARENTHESES: - case Lexer::TOKEN_NULLABLE: - $parameterType = $this->typeParser->parse($tokens); - break; - - default: - $parameterType = null; - } - - $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); - $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); - - $parameterName = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL)) { - $defaultValue = $this->constantExprParser->parse($tokens); - - } else { - $defaultValue = null; - } - - return $this->enrichWithAttributes( - $tokens, - new Ast\PhpDoc\MethodTagValueParameterNode($parameterType, $isReference, $isVariadic, $parameterName, $defaultValue), - $startLine, - $startIndex, - ); - } - - private function parseExtendsTagValue(string $tagName, TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $baseType = new IdentifierTypeNode($tokens->currentTokenValue()); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $type = $this->typeParser->parseGeneric( - $tokens, - $this->typeParser->enrichWithAttributes($tokens, $baseType, $startLine, $startIndex), - ); - - $description = $this->parseOptionalDescription($tokens, true); - - switch ($tagName) { - case '@extends': - return new Ast\PhpDoc\ExtendsTagValueNode($type, $description); - case '@implements': - return new Ast\PhpDoc\ImplementsTagValueNode($type, $description); - case '@use': - return new Ast\PhpDoc\UsesTagValueNode($type, $description); - } - - throw new ShouldNotHappenException(); - } - - private function parseTypeAliasTagValue(TokenIterator $tokens): Ast\PhpDoc\TypeAliasTagValueNode - { - $alias = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - // support phan-type/psalm-type syntax - $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); - - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - try { - $type = $this->typeParser->parse($tokens); - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { - throw new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_PHPDOC_EOL, - null, - $tokens->currentTokenLine(), - ); - } - } - - return new Ast\PhpDoc\TypeAliasTagValueNode($alias, $type); - } catch (ParserException $e) { - $this->parseOptionalDescription($tokens, false); - return new Ast\PhpDoc\TypeAliasTagValueNode( - $alias, - $this->enrichWithAttributes($tokens, new Ast\Type\InvalidTypeNode($e), $startLine, $startIndex), - ); - } - } - - private function parseTypeAliasImportTagValue(TokenIterator $tokens): Ast\PhpDoc\TypeAliasImportTagValueNode + public function parseTag(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagNode { - $importedAlias = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $tokens->consumeTokenValue(Lexer::TOKEN_IDENTIFIER, 'from'); - - $identifierStartLine = $tokens->currentTokenLine(); - $identifierStartIndex = $tokens->currentTokenIndex(); - $importedFrom = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - $importedFromType = $this->enrichWithAttributes( + /** @var Ast\PhpDoc\PhpDocTagNode */ + return $this->builder->read( $tokens, - new IdentifierTypeNode($importedFrom), - $identifierStartLine, - $identifierStartIndex, + $tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_TAG) || !isset(Phplrt\TokenStream::TAGS[$tokens->currentTokenValue()]) + ? 'UnreadTagChild' + : 'PhpDocChild', ); - - $importedAs = null; - if ($tokens->tryConsumeTokenValue('as')) { - $importedAs = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - } - - return new Ast\PhpDoc\TypeAliasImportTagValueNode($importedAlias, $importedFromType, $importedAs); } /** - * @return Ast\PhpDoc\AssertTagValueNode|Ast\PhpDoc\AssertTagPropertyValueNode|Ast\PhpDoc\AssertTagMethodValueNode + * Reads the value of the given tag at the position the iterator is at. */ - private function parseAssertTagValue(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode - { - $isNegated = $tokens->tryConsumeTokenType(Lexer::TOKEN_NEGATED); - $isEquality = $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); - $type = $this->typeParser->parse($tokens); - $parameter = $this->parseAssertParameter($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - if (array_key_exists('method', $parameter)) { - return new Ast\PhpDoc\AssertTagMethodValueNode($type, $parameter['parameter'], $parameter['method'], $isNegated, $description, $isEquality); - } elseif (array_key_exists('property', $parameter)) { - return new Ast\PhpDoc\AssertTagPropertyValueNode($type, $parameter['parameter'], $parameter['property'], $isNegated, $description, $isEquality); - } - - return new Ast\PhpDoc\AssertTagValueNode($type, $parameter['parameter'], $isNegated, $description, $isEquality); - } - - /** - * @return array{parameter: string}|array{parameter: string, property: string}|array{parameter: string, method: string} - */ - private function parseAssertParameter(TokenIterator $tokens): array - { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) { - $parameter = '$this'; - $tokens->next(); - } else { - $parameter = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_ARROW)) { - $tokens->consumeTokenType(Lexer::TOKEN_ARROW); - - $propertyOrMethod = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - - return ['parameter' => $parameter, 'method' => $propertyOrMethod]; - } - - return ['parameter' => $parameter, 'property' => $propertyOrMethod]; - } - - return ['parameter' => $parameter]; - } - - private function parseSelfOutTagValue(TokenIterator $tokens): Ast\PhpDoc\SelfOutTagValueNode - { - $type = $this->typeParser->parse($tokens); - $description = $this->parseOptionalDescription($tokens, true); - - return new Ast\PhpDoc\SelfOutTagValueNode($type, $description); - } - - private function parseParamOutTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamOutTagValueNode - { - $type = $this->typeParser->parse($tokens); - $parameterName = $this->parseRequiredVariableName($tokens); - $description = $this->parseOptionalDescription($tokens, false); - - return new Ast\PhpDoc\ParamOutTagValueNode($type, $parameterName, $description); - } - - private function parseOptionalVariableName(TokenIterator $tokens): string - { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { - $parameterName = $tokens->currentTokenValue(); - $tokens->next(); - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) { - $parameterName = '$this'; - $tokens->next(); - - } else { - $parameterName = ''; - } - - return $parameterName; - } - - private function parseRequiredVariableName(TokenIterator $tokens): string - { - $parameterName = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); - - return $parameterName; - } - - /** - * @param bool $limitStartToken true should be used when the description immediately follows a parsed type - */ - private function parseOptionalDescription(TokenIterator $tokens, bool $limitStartToken): string + public function parseTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode { - if ($limitStartToken) { - foreach (self::DISALLOWED_DESCRIPTION_START_TOKENS as $disallowedStartToken) { - if (!$tokens->isCurrentTokenType($disallowedStartToken)) { - continue; - } - - $tokens->consumeTokenType(Lexer::TOKEN_OTHER); // will throw exception - } - - if ( - !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END) - && !$tokens->isPrecededByHorizontalWhitespace() - ) { - $tokens->consumeTokenType(Lexer::TOKEN_HORIZONTAL_WS); // will throw exception - } - } + /** @var Ast\PhpDoc\PhpDocTagNode $node */ + $node = $this->builder->read( + $tokens, + isset(Phplrt\TokenStream::TAGS[$tag]) ? 'PhpDocChild' : 'UnreadTagChild', + $tag, + ); - return $this->parseText($tokens)->text; + return $node->value; } } diff --git a/src/Parser/Phplrt/Fragment.php b/src/Parser/Phplrt/Fragment.php new file mode 100644 index 00000000..2d517305 --- /dev/null +++ b/src/Parser/Phplrt/Fragment.php @@ -0,0 +1,50 @@ +kind = $kind; + $this->end = $end; + $this->a = $a; + $this->b = $b; + $this->c = $c; + } + +} diff --git a/src/Parser/Phplrt/Token.php b/src/Parser/Phplrt/Token.php new file mode 100644 index 00000000..2627c7fe --- /dev/null +++ b/src/Parser/Phplrt/Token.php @@ -0,0 +1,30 @@ +id = $id; + $this->value = $value; + $this->offset = $offset; + } + +} diff --git a/src/Parser/Phplrt/TokenStream.php b/src/Parser/Phplrt/TokenStream.php new file mode 100644 index 00000000..f8b8b9f2 --- /dev/null +++ b/src/Parser/Phplrt/TokenStream.php @@ -0,0 +1,474 @@ + 'T_KEYWORD_IS', + 'not' => 'T_KEYWORD_NOT', + 'of' => 'T_KEYWORD_OF', + 'as' => 'T_KEYWORD_AS', + 'super' => 'T_KEYWORD_SUPER', + 'static' => 'T_KEYWORD_STATIC', + 'from' => 'T_KEYWORD_FROM', + 'covariant' => 'T_KEYWORD_COVARIANT', + 'contravariant' => 'T_KEYWORD_CONTRAVARIANT', + 'array' => 'T_KEYWORD_ARRAY', + 'list' => 'T_KEYWORD_LIST', + 'non-empty-array' => 'T_KEYWORD_NON_EMPTY_ARRAY', + 'non-empty-list' => 'T_KEYWORD_NON_EMPTY_LIST', + 'object' => 'T_KEYWORD_OBJECT', + 'true' => 'T_KEYWORD_TRUE', + 'false' => 'T_KEYWORD_FALSE', + 'null' => 'T_KEYWORD_NULL', + ]; + + /** + * The words a constant expression compares without regard to case. + */ + private const KEYWORDS_ANY_CASE = [ + 'true' => 'T_KEYWORD_TRUE', + 'false' => 'T_KEYWORD_FALSE', + 'null' => 'T_KEYWORD_NULL', + 'array' => 'T_KEYWORD_ARRAY_ANY_CASE', + ]; + + /** + * The tags whose value a rule of its own reads, told apart by the whole + * name written. + */ + public const TAGS = [ + '@param' => 'T_TAG_PARAM', + '@phpstan-param' => 'T_TAG_PARAM', + '@psalm-param' => 'T_TAG_PARAM', + '@phan-param' => 'T_TAG_PARAM', + '@param-immediately-invoked-callable' => 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE', + '@phpstan-param-immediately-invoked-callable' => 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE', + '@param-later-invoked-callable' => 'T_TAG_PARAM_LATER_INVOKED_CALLABLE', + '@phpstan-param-later-invoked-callable' => 'T_TAG_PARAM_LATER_INVOKED_CALLABLE', + '@param-closure-this' => 'T_TAG_PARAM_CLOSURE_THIS', + '@phpstan-param-closure-this' => 'T_TAG_PARAM_CLOSURE_THIS', + '@pure-unless-callable-is-impure' => 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE', + '@phpstan-pure-unless-callable-is-impure' => 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE', + '@pure-unless-parameter-passed' => 'T_TAG_PURE_UNLESS_PARAMETER_PASSED', + '@phpstan-pure-unless-parameter-passed' => 'T_TAG_PURE_UNLESS_PARAMETER_PASSED', + '@var' => 'T_TAG_VAR', + '@phpstan-var' => 'T_TAG_VAR', + '@psalm-var' => 'T_TAG_VAR', + '@phan-var' => 'T_TAG_VAR', + '@return' => 'T_TAG_RETURN', + '@phpstan-return' => 'T_TAG_RETURN', + '@psalm-return' => 'T_TAG_RETURN', + '@phan-return' => 'T_TAG_RETURN', + '@phan-real-return' => 'T_TAG_RETURN', + '@throws' => 'T_TAG_THROWS', + '@phpstan-throws' => 'T_TAG_THROWS', + '@mixin' => 'T_TAG_MIXIN', + '@phan-mixin' => 'T_TAG_MIXIN', + '@psalm-require-extends' => 'T_TAG_REQUIRE_EXTENDS', + '@phpstan-require-extends' => 'T_TAG_REQUIRE_EXTENDS', + '@psalm-require-implements' => 'T_TAG_REQUIRE_IMPLEMENTS', + '@phpstan-require-implements' => 'T_TAG_REQUIRE_IMPLEMENTS', + '@psalm-inheritors' => 'T_TAG_SEALED', + '@phpstan-sealed' => 'T_TAG_SEALED', + '@deprecated' => 'T_TAG_DEPRECATED', + '@property' => 'T_TAG_PROPERTY', + '@property-read' => 'T_TAG_PROPERTY', + '@property-write' => 'T_TAG_PROPERTY', + '@phpstan-property' => 'T_TAG_PROPERTY', + '@phpstan-property-read' => 'T_TAG_PROPERTY', + '@phpstan-property-write' => 'T_TAG_PROPERTY', + '@psalm-property' => 'T_TAG_PROPERTY', + '@psalm-property-read' => 'T_TAG_PROPERTY', + '@psalm-property-write' => 'T_TAG_PROPERTY', + '@phan-property' => 'T_TAG_PROPERTY', + '@phan-property-read' => 'T_TAG_PROPERTY', + '@phan-property-write' => 'T_TAG_PROPERTY', + '@method' => 'T_TAG_METHOD', + '@phpstan-method' => 'T_TAG_METHOD', + '@psalm-method' => 'T_TAG_METHOD', + '@phan-method' => 'T_TAG_METHOD', + '@template' => 'T_TAG_TEMPLATE', + '@phpstan-template' => 'T_TAG_TEMPLATE', + '@psalm-template' => 'T_TAG_TEMPLATE', + '@phan-template' => 'T_TAG_TEMPLATE', + '@template-covariant' => 'T_TAG_TEMPLATE', + '@phpstan-template-covariant' => 'T_TAG_TEMPLATE', + '@psalm-template-covariant' => 'T_TAG_TEMPLATE', + '@template-contravariant' => 'T_TAG_TEMPLATE', + '@phpstan-template-contravariant' => 'T_TAG_TEMPLATE', + '@psalm-template-contravariant' => 'T_TAG_TEMPLATE', + '@extends' => 'T_TAG_EXTENDS', + '@phpstan-extends' => 'T_TAG_EXTENDS', + '@phan-extends' => 'T_TAG_EXTENDS', + '@phan-inherits' => 'T_TAG_EXTENDS', + '@template-extends' => 'T_TAG_EXTENDS', + '@implements' => 'T_TAG_IMPLEMENTS', + '@phpstan-implements' => 'T_TAG_IMPLEMENTS', + '@template-implements' => 'T_TAG_IMPLEMENTS', + '@use' => 'T_TAG_USE', + '@phpstan-use' => 'T_TAG_USE', + '@template-use' => 'T_TAG_USE', + '@phpstan-type' => 'T_TAG_TYPE_ALIAS', + '@psalm-type' => 'T_TAG_TYPE_ALIAS', + '@phan-type' => 'T_TAG_TYPE_ALIAS', + '@phpstan-import-type' => 'T_TAG_TYPE_ALIAS_IMPORT', + '@psalm-import-type' => 'T_TAG_TYPE_ALIAS_IMPORT', + '@phpstan-assert' => 'T_TAG_ASSERT', + '@phpstan-assert-if-true' => 'T_TAG_ASSERT', + '@phpstan-assert-if-false' => 'T_TAG_ASSERT', + '@psalm-assert' => 'T_TAG_ASSERT', + '@psalm-assert-if-true' => 'T_TAG_ASSERT', + '@psalm-assert-if-false' => 'T_TAG_ASSERT', + '@phan-assert' => 'T_TAG_ASSERT', + '@phan-assert-if-true' => 'T_TAG_ASSERT', + '@phan-assert-if-false' => 'T_TAG_ASSERT', + '@phpstan-this-out' => 'T_TAG_SELF_OUT', + '@phpstan-self-out' => 'T_TAG_SELF_OUT', + '@psalm-this-out' => 'T_TAG_SELF_OUT', + '@psalm-self-out' => 'T_TAG_SELF_OUT', + '@param-out' => 'T_TAG_PARAM_OUT', + '@phpstan-param-out' => 'T_TAG_PARAM_OUT', + '@psalm-param-out' => 'T_TAG_PARAM_OUT', + ]; + + /** + * The tokens of the lexer the grammar reads under a name of their own. + */ + private const TYPES = [ + Lexer::TOKEN_REFERENCE => 'T_REFERENCE', + Lexer::TOKEN_UNION => 'T_UNION', + Lexer::TOKEN_INTERSECTION => 'T_INTERSECTION', + Lexer::TOKEN_NULLABLE => 'T_NULLABLE', + Lexer::TOKEN_NEGATED => 'T_NEGATED', + Lexer::TOKEN_CLOSE_PARENTHESES => 'T_CLOSE_PARENTHESES', + Lexer::TOKEN_CLOSE_ANGLE_BRACKET => 'T_CLOSE_ANGLE_BRACKET', + Lexer::TOKEN_CLOSE_SQUARE_BRACKET => 'T_CLOSE_SQUARE_BRACKET', + Lexer::TOKEN_CLOSE_CURLY_BRACKET => 'T_CLOSE_CURLY_BRACKET', + Lexer::TOKEN_COMMA => 'T_COMMA', + Lexer::TOKEN_COMMENT => 'T_COMMENT', + Lexer::TOKEN_VARIADIC => 'T_VARIADIC', + Lexer::TOKEN_DOUBLE_COLON => 'T_DOUBLE_COLON', + Lexer::TOKEN_DOUBLE_ARROW => 'T_DOUBLE_ARROW', + Lexer::TOKEN_ARROW => 'T_ARROW', + Lexer::TOKEN_EQUAL => 'T_EQUAL', + Lexer::TOKEN_COLON => 'T_COLON', + Lexer::TOKEN_FLOAT => 'T_FLOAT', + Lexer::TOKEN_INTEGER => 'T_INTEGER', + Lexer::TOKEN_SINGLE_QUOTED_STRING => 'T_SINGLE_QUOTED_STRING', + Lexer::TOKEN_DOUBLE_QUOTED_STRING => 'T_DOUBLE_QUOTED_STRING', + Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING => 'T_DOCTRINE_ANNOTATION_STRING', + Lexer::TOKEN_THIS_VARIABLE => 'T_THIS_VARIABLE', + Lexer::TOKEN_VARIABLE => 'T_VARIABLE', + Lexer::TOKEN_OPEN_PHPDOC => 'T_OPEN_PHPDOC', + Lexer::TOKEN_CLOSE_PHPDOC => 'T_CLOSE_PHPDOC', + Lexer::TOKEN_PHPDOC_EOL => 'T_PHPDOC_EOL', + Lexer::TOKEN_OTHER => 'T_OTHER', + ]; + + /** @var array */ + private static ?array $types = null; + + /** @var array */ + private static array $keywords; + + /** @var array */ + + /** @var array */ + private static array $tags; + + private static int $identifier; + + private static int $phpDocTag; + + private static int $phpDocTagWs; + + private static int $doctrineTag; + + private static int $doctrineTagWs; + + private static int $openCurly; + + private static int $openCurlyWs; + + private static int $openParentheses; + + private static int $openParenthesesWs; + + private static int $openSquare; + + private static int $openSquareWs; + + private static int $wildcard; + + private static int $wildcardWs; + + private static int $openAngle; + + private static int $openAngleHtml; + + /** + * Appends the given tokens of the lexer to the stream the parser reads, one + * per token it reads: the whitespace is left out, while the index of the + * token of the lexer each of them stands for is kept along. The stream + * ends with -1, the end of the input. + * + * @param list $tokens + * @param int $start the index of the first token to read + * @param array $ids the identifier of each token of the stream + * @param array $indexes the index of each token of the stream + * @param-out array $ids + * @param-out array $indexes + */ + public static function create(array $tokens, int $start, array &$ids, array &$indexes): void + { + if (self::$types === null) { + self::initialize(); + } + + $types = self::$types; + $keywords = self::$keywords; + $identifier = self::$identifier; + + $count = count($tokens); + + for ($index = $start; $index < $count; $index++) { + $token = $tokens[$index]; + $type = $token[1]; + + // the most common tokens first + if ($type === Lexer::TOKEN_HORIZONTAL_WS) { + continue; + } + + if ($type === Lexer::TOKEN_IDENTIFIER) { + $ids[] = $keywords[$token[0]] ?? $identifier; + $indexes[] = $index; + continue; + } + + if (isset($types[$type])) { + $ids[] = $types[$type]; + $indexes[] = $index; + continue; + } + + $value = $token[0]; + + switch ($type) { + case Lexer::TOKEN_PHPDOC_TAG: + $id = self::$tags[$value] ?? (self::isPrecededByWhitespace($tokens, $index) ? self::$phpDocTagWs : self::$phpDocTag); + break; + + case Lexer::TOKEN_DOCTRINE_TAG: + $id = self::isPrecededByWhitespace($tokens, $index) ? self::$doctrineTagWs : self::$doctrineTag; + break; + + case Lexer::TOKEN_OPEN_CURLY_BRACKET: + $id = self::isPrecededByWhitespace($tokens, $index) ? self::$openCurlyWs : self::$openCurly; + break; + + case Lexer::TOKEN_OPEN_PARENTHESES: + $id = self::isPrecededByWhitespace($tokens, $index) ? self::$openParenthesesWs : self::$openParentheses; + break; + + case Lexer::TOKEN_OPEN_SQUARE_BRACKET: + $id = self::isPrecededByWhitespace($tokens, $index) ? self::$openSquareWs : self::$openSquare; + break; + + case Lexer::TOKEN_WILDCARD: + $id = ($tokens[$index + 1][1] ?? -1) === Lexer::TOKEN_HORIZONTAL_WS ? self::$wildcardWs : self::$wildcard; + break; + + case Lexer::TOKEN_OPEN_ANGLE_BRACKET: + $id = self::isHtml($tokens, $index, $count) ? self::$openAngleHtml : self::$openAngle; + break; + + default: + // Lexer::TOKEN_END + $ids[] = -1; + $indexes[] = $index; + continue 2; + } + + $ids[] = $id; + $indexes[] = $index; + } + } + + /** + * The identifier of the token a tag written nowhere in the tokens is read as. + */ + public static function tagId(string $value): int + { + if (self::$types === null) { + self::initialize(); + } + + return self::$tags[$value] ?? self::$phpDocTag; + } + + private static function initialize(): void + { + $ids = GeneratedParser::TOKENS; + + $types = []; + foreach (self::TYPES as $type => $name) { + $types[$type] = $ids[$name]; + } + + // A keyword written in any case is looked up along with the others, + // every way of writing it in, since only a few of them are + $keywords = []; + foreach (self::KEYWORDS_ANY_CASE as $value => $name) { + foreach (self::caseVariants($value) as $variant) { + $keywords[$variant] = $ids[$name]; + } + } + + foreach (self::KEYWORDS as $value => $name) { + $keywords[$value] = $ids[$name]; + } + self::$keywords = $keywords; + + $tags = []; + foreach (self::TAGS as $value => $name) { + $tags[$value] = $ids[$name]; + } + self::$tags = $tags; + + self::$identifier = $ids['T_IDENTIFIER']; + self::$phpDocTag = $ids['T_PHPDOC_TAG']; + self::$phpDocTagWs = $ids['T_PHPDOC_TAG_WS']; + self::$doctrineTag = $ids['T_DOCTRINE_TAG']; + self::$doctrineTagWs = $ids['T_DOCTRINE_TAG_WS']; + self::$openCurly = $ids['T_OPEN_CURLY_BRACKET']; + self::$openCurlyWs = $ids['T_OPEN_CURLY_BRACKET_WS']; + self::$openParentheses = $ids['T_OPEN_PARENTHESES']; + self::$openParenthesesWs = $ids['T_OPEN_PARENTHESES_WS']; + self::$openSquare = $ids['T_OPEN_SQUARE_BRACKET']; + self::$openSquareWs = $ids['T_OPEN_SQUARE_BRACKET_WS']; + self::$wildcard = $ids['T_WILDCARD']; + self::$wildcardWs = $ids['T_WILDCARD_WS']; + self::$openAngle = $ids['T_OPEN_ANGLE_BRACKET']; + self::$openAngleHtml = $ids['T_OPEN_ANGLE_BRACKET_HTML']; + + self::$types = $types; + } + + /** + * @return list + */ + private static function caseVariants(string $value): array + { + $variants = ['']; + for ($i = 0, $length = strlen($value); $i < $length; $i++) { + $next = []; + foreach ($variants as $variant) { + $next[] = $variant . strtolower($value[$i]); + $next[] = $variant . strtoupper($value[$i]); + } + $variants = $next; + } + + return $variants; + } + + /** + * @param list $tokens + */ + private static function isPrecededByWhitespace(array $tokens, int $index): bool + { + return ($tokens[$index - 1][1] ?? -1) === Lexer::TOKEN_HORIZONTAL_WS; + } + + /** + * Whether the "<" at the given position opens what looks like an HTML tag: + * a "" with a matching "" somewhere after it. + * + * @param list $tokens + */ + private static function isHtml(array $tokens, int $index, int $count): bool + { + $index = self::skipWhitespace($tokens, $index + 1, $count); + if ($index >= $count || $tokens[$index][1] !== Lexer::TOKEN_IDENTIFIER) { + return false; + } + + $name = $tokens[$index][0]; + + $index = self::skipWhitespace($tokens, $index + 1, $count); + if ($index >= $count || $tokens[$index][1] !== Lexer::TOKEN_CLOSE_ANGLE_BRACKET) { + return false; + } + + $index = self::skipWhitespace($tokens, $index + 1, $count); + + $endTag = ''; + $length = strlen($endTag); + + while ($index < $count && $tokens[$index][1] !== Lexer::TOKEN_END) { + if ($tokens[$index][1] === Lexer::TOKEN_OPEN_ANGLE_BRACKET) { + $index = self::skipWhitespace($tokens, $index + 1, $count); + + if ($index < $count && strpos($tokens[$index][0], '/' . $name . '>') !== false) { + return true; + } + } + + if ($index < $count) { + $value = $tokens[$index][0]; + + if (strlen($value) >= $length && substr_compare($value, $endTag, -$length) === 0) { + return true; + } + } + + $index = self::skipWhitespace($tokens, $index + 1, $count); + } + + return false; + } + + /** + * @param list $tokens + */ + private static function skipWhitespace(array $tokens, int $index, int $count): int + { + while ($index < $count && $tokens[$index][1] === Lexer::TOKEN_HORIZONTAL_WS) { + $index++; + } + + return $index; + } + +} diff --git a/src/Parser/TokenIterator.php b/src/Parser/TokenIterator.php index 043639f1..3b99a7ac 100644 --- a/src/Parser/TokenIterator.php +++ b/src/Parser/TokenIterator.php @@ -300,6 +300,34 @@ public function removeEndOfLineFromSkippedTokens(): void $this->skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS]; } + /** + * Moves the iterator to the given token, which the parsers do once they + * have read everything up to it. + * + * @internal + */ + public function setCurrentTokenIndex(int $index): void + { + $this->index = $index; + $this->skipIrrelevantTokens(); + } + + /** + * @internal + */ + public function detectNewlineOf(string $endOfLine): void + { + if ($this->newline !== null) { + return; + } + + if (substr($endOfLine, 0, 2) === "\r\n") { + $this->newline = "\r\n"; + } elseif (substr($endOfLine, 0, 1) === "\n") { + $this->newline = "\n"; + } + } + /** @phpstan-impure */ public function forwardToTheEnd(): void { diff --git a/src/Parser/TypeParser.php b/src/Parser/TypeParser.php index a2db4fce..a84282c3 100644 --- a/src/Parser/TypeParser.php +++ b/src/Parser/TypeParser.php @@ -2,1132 +2,36 @@ namespace PHPStan\PhpDocParser\Parser; -use LogicException; use PHPStan\PhpDocParser\Ast; -use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; -use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\ParserConfig; -use function in_array; -use function str_replace; -use function strlen; -use function strpos; -use function substr_compare; class TypeParser { - private ParserConfig $config; - - private ConstExprParser $constExprParser; + private AstBuilder $builder; + // The parsers it has always been given are not needed anymore, but it is + // constructed the way it always has been + // @phpstan-ignore constructor.unusedParameter public function __construct( ParserConfig $config, ConstExprParser $constExprParser ) { - $this->config = $config; - $this->constExprParser = $constExprParser; - } - - /** @phpstan-impure */ - public function parse(TokenIterator $tokens): Ast\Type\TypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { - $type = $this->parseNullable($tokens); - - } else { - $type = $this->parseAtomic($tokens); - - $tokens->pushSavePoint(); - $tokens->skipNewLineTokensAndConsumeComments(); - - try { - $enrichedType = $this->enrichTypeOnUnionOrIntersection($tokens, $type); - - } catch (ParserException $parserException) { - $enrichedType = null; - } - - if ($enrichedType !== null) { - $type = $enrichedType; - $tokens->dropSavePoint(); - - } else { - $tokens->rollback(); - $type = $this->enrichTypeOnUnionOrIntersection($tokens, $type) ?? $type; - } - } - - return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } - - /** @phpstan-impure */ - private function enrichTypeOnUnionOrIntersection(TokenIterator $tokens, Ast\Type\TypeNode $type): ?Ast\Type\TypeNode - { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_UNION)) { - return $this->parseUnion($tokens, $type); - - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTERSECTION)) { - return $this->parseIntersection($tokens, $type); - } - - return null; - } - - /** - * @internal - * @template T of Ast\Node - * @param T $type - * @return T - */ - public function enrichWithAttributes(TokenIterator $tokens, Ast\Node $type, int $startLine, int $startIndex): Ast\Node - { - if ($this->config->useLinesAttributes) { - $type->setAttribute(Ast\Attribute::START_LINE, $startLine); - $type->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); - } - - $comments = $tokens->flushComments(); - if ($this->config->useCommentsAttributes) { - $type->setAttribute(Ast\Attribute::COMMENTS, $comments); - } - - if ($this->config->useIndexAttributes) { - $type->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $type->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); - } - - return $type; - } - - /** @phpstan-impure */ - private function subParse(TokenIterator $tokens): Ast\Type\TypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { - $type = $this->parseNullable($tokens); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { - $type = $this->parseConditionalForParameter($tokens, $tokens->currentTokenValue()); - - } else { - $type = $this->parseAtomic($tokens); - - if ($tokens->isCurrentTokenValue('is')) { - $type = $this->parseConditional($tokens, $type); - } else { - $tokens->skipNewLineTokensAndConsumeComments(); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_UNION)) { - $type = $this->subParseUnion($tokens, $type); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_INTERSECTION)) { - $type = $this->subParseIntersection($tokens, $type); - } - } - } - - return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } - - /** @phpstan-impure */ - private function parseAtomic(TokenIterator $tokens): Ast\Type\TypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $tokens->skipNewLineTokensAndConsumeComments(); - $type = $this->subParse($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - - return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_THIS_VARIABLE)) { - $type = $this->enrichWithAttributes($tokens, new Ast\Type\ThisTypeNode(), $startLine, $startIndex); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - - return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } - - $currentTokenValue = $tokens->currentTokenValue(); - $tokens->pushSavePoint(); // because of ConstFetchNode - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { - $type = $this->enrichWithAttributes($tokens, new Ast\Type\IdentifierTypeNode($currentTokenValue), $startLine, $startIndex); - - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - $tokens->dropSavePoint(); // because of ConstFetchNode - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { - $tokens->pushSavePoint(); - - $isHtml = $this->isHtml($tokens); - $tokens->rollback(); - if ($isHtml) { - return $type; - } - - $origType = $type; - $type = $this->tryParseCallable($tokens, $type, true); - if ($type === $origType) { - $type = $this->parseGeneric($tokens, $type); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - } - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $type = $this->tryParseCallable($tokens, $type, false); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - - } elseif (in_array($type->name, [ - Ast\Type\ArrayShapeNode::KIND_ARRAY, - Ast\Type\ArrayShapeNode::KIND_LIST, - Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_ARRAY, - Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_LIST, - 'object', - ], true) && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) { - if ($type->name === 'object') { - $type = $this->parseObjectShape($tokens); - } else { - $type = $this->parseArrayShape($tokens, $type, $type->name); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess( - $tokens, - $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex), - ); - } - } - - return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } else { - $tokens->rollback(); // because of ConstFetchNode - } - } else { - $tokens->dropSavePoint(); // because of ConstFetchNode - } - - $currentTokenValue = $tokens->currentTokenValue(); - $currentTokenType = $tokens->currentTokenType(); - $currentTokenOffset = $tokens->currentTokenOffset(); - $currentTokenLine = $tokens->currentTokenLine(); - - try { - $constExpr = $this->constExprParser->parse($tokens); - if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); - } - - $type = $this->enrichWithAttributes( - $tokens, - new Ast\Type\ConstTypeNode($constExpr), - $startLine, - $startIndex, - ); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - - return $type; - } catch (LogicException $e) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); - } - } - - /** @phpstan-impure */ - private function parseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode - { - $types = [$type]; - - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_UNION)) { - $types[] = $this->parseAtomic($tokens); - $tokens->pushSavePoint(); - $tokens->skipNewLineTokensAndConsumeComments(); - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_UNION)) { - $tokens->rollback(); - break; - } - - $tokens->dropSavePoint(); - } - - return new Ast\Type\UnionTypeNode($types); - } - - /** @phpstan-impure */ - private function subParseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode - { - $types = [$type]; - - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_UNION)) { - $tokens->skipNewLineTokensAndConsumeComments(); - $types[] = $this->parseAtomic($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - - return new Ast\Type\UnionTypeNode($types); - } - - /** @phpstan-impure */ - private function parseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode - { - $types = [$type]; - - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_INTERSECTION)) { - $types[] = $this->parseAtomic($tokens); - $tokens->pushSavePoint(); - $tokens->skipNewLineTokensAndConsumeComments(); - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_INTERSECTION)) { - $tokens->rollback(); - break; - } - - $tokens->dropSavePoint(); - } - - return new Ast\Type\IntersectionTypeNode($types); - } - - /** @phpstan-impure */ - private function subParseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode - { - $types = [$type]; - - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_INTERSECTION)) { - $tokens->skipNewLineTokensAndConsumeComments(); - $types[] = $this->parseAtomic($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - - return new Ast\Type\IntersectionTypeNode($types); - } - - /** @phpstan-impure */ - private function parseConditional(TokenIterator $tokens, Ast\Type\TypeNode $subjectType): Ast\Type\TypeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $negated = false; - if ($tokens->isCurrentTokenValue('not')) { - $negated = true; - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - } - - $targetType = $this->parse($tokens); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); - $tokens->skipNewLineTokensAndConsumeComments(); - - $ifType = $this->parse($tokens); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_COLON); - $tokens->skipNewLineTokensAndConsumeComments(); - - $elseType = $this->subParse($tokens); - - return new Ast\Type\ConditionalTypeNode($subjectType, $targetType, $ifType, $elseType, $negated); - } - - /** @phpstan-impure */ - private function parseConditionalForParameter(TokenIterator $tokens, string $parameterName): Ast\Type\TypeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); - $tokens->consumeTokenValue(Lexer::TOKEN_IDENTIFIER, 'is'); - - $negated = false; - if ($tokens->isCurrentTokenValue('not')) { - $negated = true; - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - } - - $targetType = $this->parse($tokens); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); - $tokens->skipNewLineTokensAndConsumeComments(); - - $ifType = $this->parse($tokens); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_COLON); - $tokens->skipNewLineTokensAndConsumeComments(); - - $elseType = $this->subParse($tokens); - - return new Ast\Type\ConditionalTypeForParameterNode($parameterName, $targetType, $ifType, $elseType, $negated); - } - - /** @phpstan-impure */ - private function parseNullable(TokenIterator $tokens): Ast\Type\TypeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); - - $type = $this->parseAtomic($tokens); - - return new Ast\Type\NullableTypeNode($type); - } - - /** @phpstan-impure */ - public function isHtml(TokenIterator $tokens): bool - { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); - - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { - return false; - } - - $htmlTagName = $tokens->currentTokenValue(); - - $tokens->next(); - - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { - return false; - } - - $endTag = ''; - $endTagSearchOffset = - strlen($endTag); - - while (!$tokens->isCurrentTokenType(Lexer::TOKEN_END)) { - if ( - ( - $tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET) - && strpos($tokens->currentTokenValue(), '/' . $htmlTagName . '>') !== false - ) - || substr_compare($tokens->currentTokenValue(), $endTag, $endTagSearchOffset) === 0 - ) { - return true; - } - - $tokens->next(); - } - - return false; - } - - /** @phpstan-impure */ - public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $baseType): Ast\Type\GenericTypeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); - $tokens->skipNewLineTokensAndConsumeComments(); - - $startLine = $baseType->getAttribute(Ast\Attribute::START_LINE); - $startIndex = $baseType->getAttribute(Ast\Attribute::START_INDEX); - $genericTypes = []; - $variances = []; - - $isFirst = true; - while ( - $isFirst - || $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA) - ) { - $tokens->skipNewLineTokensAndConsumeComments(); - - // trailing comma case - if (!$isFirst && $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { - break; - } - $isFirst = false; - - [$genericTypes[], $variances[]] = $this->parseGenericTypeArgument($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - - $type = new Ast\Type\GenericTypeNode($baseType, $genericTypes, $variances); - if ($startLine !== null && $startIndex !== null) { - $type = $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); - } else { - // The comments read between the arguments have to be given away - // even where the node is not placed, or they would still be waiting - // for a node once the whole PHPDoc has been read - $tokens->flushComments(); - } - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); - - return $type; + $this->builder = new AstBuilder($config); } /** - * @phpstan-impure - * @return array{Ast\Type\TypeNode, Ast\Type\GenericTypeNode::VARIANCE_*} - */ - public function parseGenericTypeArgument(TokenIterator $tokens): array - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_WILDCARD)) { - return [ - $this->enrichWithAttributes($tokens, new Ast\Type\IdentifierTypeNode('mixed'), $startLine, $startIndex), - Ast\Type\GenericTypeNode::VARIANCE_BIVARIANT, - ]; - } - - if ($tokens->tryConsumeTokenValue('contravariant')) { - $variance = Ast\Type\GenericTypeNode::VARIANCE_CONTRAVARIANT; - } elseif ($tokens->tryConsumeTokenValue('covariant')) { - $variance = Ast\Type\GenericTypeNode::VARIANCE_COVARIANT; - } else { - $variance = Ast\Type\GenericTypeNode::VARIANCE_INVARIANT; - } - - $type = $this->parse($tokens); - return [$type, $variance]; - } - - /** - * @throws ParserException - * @param ?callable(TokenIterator): string $parseDescription - */ - public function parseTemplateTagValue( - TokenIterator $tokens, - ?callable $parseDescription = null - ): TemplateTagValueNode - { - $name = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $upperBound = $lowerBound = null; - - if ($tokens->tryConsumeTokenValue('of') || $tokens->tryConsumeTokenValue('as')) { - $upperBound = $this->parse($tokens); - } - - if ($tokens->tryConsumeTokenValue('super')) { - $lowerBound = $this->parse($tokens); - } - - if ($tokens->tryConsumeTokenValue('=')) { - $default = $this->parse($tokens); - } else { - $default = null; - } - - if ($parseDescription !== null) { - $description = $parseDescription($tokens); - } else { - $description = ''; - } - - if ($name === '') { - throw new LogicException('Template tag name cannot be empty.'); - } - - return new Ast\PhpDoc\TemplateTagValueNode($name, $upperBound, $description, $default, $lowerBound); - } - - /** @phpstan-impure */ - private function parseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate): Ast\Type\TypeNode - { - $templates = $hasTemplate - ? $this->parseCallableTemplates($tokens) - : []; - - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); - $tokens->skipNewLineTokensAndConsumeComments(); - - $parameters = []; - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { - $parameters[] = $this->parseCallableParameter($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { - $tokens->skipNewLineTokensAndConsumeComments(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { - break; - } - $parameters[] = $this->parseCallableParameter($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - } - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - $tokens->consumeTokenType(Lexer::TOKEN_COLON); - - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $returnType = $this->enrichWithAttributes($tokens, $this->parseCallableReturnType($tokens), $startLine, $startIndex); - - return new Ast\Type\CallableTypeNode($identifier, $parameters, $returnType, $templates); - } - - /** - * @return Ast\PhpDoc\TemplateTagValueNode[] + * Reads a type at the position the iterator is at and leaves the iterator + * right after it. * * @phpstan-impure + * @throws ParserException */ - private function parseCallableTemplates(TokenIterator $tokens): array - { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); - - $templates = []; - - $isFirst = true; - while ($isFirst || $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { - $tokens->skipNewLineTokensAndConsumeComments(); - - // trailing comma case - if (!$isFirst && $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { - break; - } - $isFirst = false; - - $templates[] = $this->parseCallableTemplateArgument($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); - - return $templates; - } - - private function parseCallableTemplateArgument(TokenIterator $tokens): Ast\PhpDoc\TemplateTagValueNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - return $this->enrichWithAttributes( - $tokens, - $this->parseTemplateTagValue($tokens), - $startLine, - $startIndex, - ); - } - - /** @phpstan-impure */ - private function parseCallableParameter(TokenIterator $tokens): Ast\Type\CallableTypeParameterNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - $type = $this->parse($tokens); - $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); - $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { - $parameterName = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); - - } else { - $parameterName = ''; - } - - $isOptional = $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $parameterName, $isOptional), - $startLine, - $startIndex, - ); - } - - /** @phpstan-impure */ - private function parseCallableReturnType(TokenIterator $tokens): Ast\Type\TypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { - return $this->parseNullable($tokens); - - } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { - $type = $this->subParse($tokens); - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - - return $type; - } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_THIS_VARIABLE)) { - $type = new Ast\Type\ThisTypeNode(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - )); - } - - return $type; - } else { - $currentTokenValue = $tokens->currentTokenValue(); - $tokens->pushSavePoint(); // because of ConstFetchNode - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { - $type = new Ast\Type\IdentifierTypeNode($currentTokenValue); - - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { - $type = $this->parseGeneric( - $tokens, - $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - ), - ); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - )); - } - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - )); - - } elseif (in_array($type->name, [ - Ast\Type\ArrayShapeNode::KIND_ARRAY, - Ast\Type\ArrayShapeNode::KIND_LIST, - Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_ARRAY, - Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_LIST, - 'object', - ], true) && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) { - if ($type->name === 'object') { - $type = $this->parseObjectShape($tokens); - } else { - $type = $this->parseArrayShape($tokens, $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - ), $type->name); - } - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - )); - } - } - - return $type; - } else { - $tokens->rollback(); // because of ConstFetchNode - } - } else { - $tokens->dropSavePoint(); // because of ConstFetchNode - } - } - - $currentTokenValue = $tokens->currentTokenValue(); - $currentTokenType = $tokens->currentTokenType(); - $currentTokenOffset = $tokens->currentTokenOffset(); - $currentTokenLine = $tokens->currentTokenLine(); - - try { - $constExpr = $this->constExprParser->parse($tokens); - if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); - } - - $type = $this->enrichWithAttributes( - $tokens, - new Ast\Type\ConstTypeNode($constExpr), - $startLine, - $startIndex, - ); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); - } - - return $type; - } catch (LogicException $e) { - throw new ParserException( - $currentTokenValue, - $currentTokenType, - $currentTokenOffset, - Lexer::TOKEN_IDENTIFIER, - null, - $currentTokenLine, - ); - } - } - - /** @phpstan-impure */ - private function tryParseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate): Ast\Type\TypeNode - { - try { - $tokens->pushSavePoint(); - $type = $this->parseCallable($tokens, $identifier, $hasTemplate); - $tokens->dropSavePoint(); - - } catch (ParserException $e) { - $tokens->rollback(); - $type = $identifier; - } - - return $type; - } - - /** @phpstan-impure */ - private function tryParseArrayOrOffsetAccess(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode - { - $startLine = $type->getAttribute(Ast\Attribute::START_LINE); - $startIndex = $type->getAttribute(Ast\Attribute::START_INDEX); - try { - while ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { - $tokens->pushSavePoint(); - - $canBeOffsetAccessType = !$tokens->isPrecededByHorizontalWhitespace(); - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET); - - if ($canBeOffsetAccessType && !$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET)) { - $offset = $this->parse($tokens); - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET); - $tokens->dropSavePoint(); - $type = new Ast\Type\OffsetAccessTypeNode($type, $offset); - - if ($startLine !== null && $startIndex !== null) { - $type = $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - ); - } - } else { - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET); - $tokens->dropSavePoint(); - $type = new Ast\Type\ArrayTypeNode($type); - - if ($startLine !== null && $startIndex !== null) { - $type = $this->enrichWithAttributes( - $tokens, - $type, - $startLine, - $startIndex, - ); - } - } - } - - } catch (ParserException $e) { - $tokens->rollback(); - } - - return $type; - } - - /** - * @phpstan-impure - * @param Ast\Type\ArrayShapeNode::KIND_* $kind - */ - private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type, string $kind): Ast\Type\ArrayShapeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET); - - $items = []; - $sealed = true; - $unsealedType = null; - - $done = false; - - do { - $tokens->skipNewLineTokensAndConsumeComments(); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { - return Ast\Type\ArrayShapeNode::createSealed($items, $kind); - } - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC)) { - $sealed = false; - - $tokens->skipNewLineTokensAndConsumeComments(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { - if ($kind === Ast\Type\ArrayShapeNode::KIND_ARRAY) { - $unsealedType = $this->parseArrayShapeUnsealedType($tokens); - } else { - $unsealedType = $this->parseListShapeUnsealedType($tokens); - } - $tokens->skipNewLineTokensAndConsumeComments(); - } - - $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA); - break; - } - - $items[] = $this->parseArrayShapeItem($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { - $done = true; - } - if ($tokens->currentTokenType() !== Lexer::TOKEN_COMMENT) { - continue; - } - - $tokens->next(); - - } while (!$done); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); - - if ($sealed) { - return Ast\Type\ArrayShapeNode::createSealed($items, $kind); - } - - return Ast\Type\ArrayShapeNode::createUnsealed($items, $unsealedType, $kind); - } - - /** @phpstan-impure */ - private function parseArrayShapeItem(TokenIterator $tokens): Ast\Type\ArrayShapeItemNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - // parse any comments above the item - $tokens->skipNewLineTokensAndConsumeComments(); - - try { - $tokens->pushSavePoint(); - $key = $this->parseArrayShapeKey($tokens); - $optional = $tokens->tryConsumeTokenType(Lexer::TOKEN_NULLABLE); - $tokens->consumeTokenType(Lexer::TOKEN_COLON); - $value = $this->parse($tokens); - - $tokens->dropSavePoint(); - - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\ArrayShapeItemNode($key, $optional, $value), - $startLine, - $startIndex, - ); - } catch (ParserException $e) { - $tokens->rollback(); - $value = $this->parse($tokens); - - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\ArrayShapeItemNode(null, false, $value), - $startLine, - $startIndex, - ); - } - } - - /** - * @phpstan-impure - * @return Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\ConstExpr\ConstFetchNode|Ast\Type\IdentifierTypeNode - */ - private function parseArrayShapeKey(TokenIterator $tokens) - { - $startIndex = $tokens->currentTokenIndex(); - $startLine = $tokens->currentTokenLine(); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { - $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $tokens->currentTokenValue())); - $tokens->next(); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { - $key = new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\ConstExprStringNode::SINGLE_QUOTED); - $tokens->next(); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { - $key = new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\ConstExprStringNode::DOUBLE_QUOTED); - - $tokens->next(); - - } else { - $identifier = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_DOUBLE_COLON)) { - $classConstantName = $tokens->currentTokenValue(); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - - $key = new Ast\ConstExpr\ConstFetchNode($identifier, $classConstantName); - } else { - $key = new Ast\Type\IdentifierTypeNode($identifier); - } - } - - return $this->enrichWithAttributes( - $tokens, - $key, - $startLine, - $startIndex, - ); - } - - /** - * @phpstan-impure - */ - private function parseArrayShapeUnsealedType(TokenIterator $tokens): Ast\Type\ArrayShapeUnsealedTypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); - $tokens->skipNewLineTokensAndConsumeComments(); - - $valueType = $this->parse($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - - $keyType = null; - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { - $tokens->skipNewLineTokensAndConsumeComments(); - - $keyType = $valueType; - $valueType = $this->parse($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - } - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); - - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\ArrayShapeUnsealedTypeNode($valueType, $keyType), - $startLine, - $startIndex, - ); - } - - /** - * @phpstan-impure - */ - private function parseListShapeUnsealedType(TokenIterator $tokens): Ast\Type\ArrayShapeUnsealedTypeNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); - $tokens->skipNewLineTokensAndConsumeComments(); - - $valueType = $this->parse($tokens); - $tokens->skipNewLineTokensAndConsumeComments(); - - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); - - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\ArrayShapeUnsealedTypeNode($valueType, null), - $startLine, - $startIndex, - ); - } - - /** - * @phpstan-impure - */ - private function parseObjectShape(TokenIterator $tokens): Ast\Type\ObjectShapeNode - { - $tokens->consumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET); - - $items = []; - - do { - $tokens->skipNewLineTokensAndConsumeComments(); - - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { - return new Ast\Type\ObjectShapeNode($items); - } - - $items[] = $this->parseObjectShapeItem($tokens); - - $tokens->skipNewLineTokensAndConsumeComments(); - } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); - - $tokens->skipNewLineTokensAndConsumeComments(); - $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); - - return new Ast\Type\ObjectShapeNode($items); - } - - /** @phpstan-impure */ - private function parseObjectShapeItem(TokenIterator $tokens): Ast\Type\ObjectShapeItemNode - { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - $tokens->skipNewLineTokensAndConsumeComments(); - - $key = $this->parseObjectShapeKey($tokens); - $optional = $tokens->tryConsumeTokenType(Lexer::TOKEN_NULLABLE); - $tokens->consumeTokenType(Lexer::TOKEN_COLON); - $value = $this->parse($tokens); - - return $this->enrichWithAttributes( - $tokens, - new Ast\Type\ObjectShapeItemNode($key, $optional, $value), - $startLine, - $startIndex, - ); - } - - /** - * @phpstan-impure - * @return Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode - */ - private function parseObjectShapeKey(TokenIterator $tokens) + public function parse(TokenIterator $tokens): Ast\Type\TypeNode { - $startLine = $tokens->currentTokenLine(); - $startIndex = $tokens->currentTokenIndex(); - - if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { - $key = new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\ConstExprStringNode::SINGLE_QUOTED); - $tokens->next(); - - } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { - $key = new Ast\ConstExpr\ConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\ConstExprStringNode::DOUBLE_QUOTED); - $tokens->next(); - - } else { - $key = new Ast\Type\IdentifierTypeNode($tokens->currentTokenValue()); - $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); - } - - return $this->enrichWithAttributes($tokens, $key, $startLine, $startIndex); + /** @var Ast\Type\TypeNode */ + return $this->builder->read($tokens, 'Type'); } } diff --git a/tests/PHPStan/Parser/PhpDocParserTest.php b/tests/PHPStan/Parser/PhpDocParserTest.php index eacece63..4918556c 100644 --- a/tests/PHPStan/Parser/PhpDocParserTest.php +++ b/tests/PHPStan/Parser/PhpDocParserTest.php @@ -473,12 +473,12 @@ public function provideParamTagsData(): Iterator new InvalidTagValueNode( 'Foo', new ParserException( - "\n\t\t\t ", - Lexer::TOKEN_PHPDOC_EOL, - 21, - Lexer::TOKEN_VARIABLE, + '*/', + Lexer::TOKEN_CLOSE_PHPDOC, + 27, + Lexer::TOKEN_IDENTIFIER, null, - 2, + 3, ), ), ), @@ -1540,7 +1540,7 @@ public function provideReturnTagsData(): Iterator '|', Lexer::TOKEN_UNION, 18, - Lexer::TOKEN_OTHER, + Lexer::TOKEN_IDENTIFIER, null, 1, ), @@ -1561,7 +1561,7 @@ public function provideReturnTagsData(): Iterator '&', Lexer::TOKEN_INTERSECTION, 18, - Lexer::TOKEN_OTHER, + Lexer::TOKEN_IDENTIFIER, null, 1, ), @@ -1844,10 +1844,10 @@ public function provideReturnTagsData(): Iterator new InvalidTagValueNode( '\Closure(...int, string): string', new ParserException( - '(', - Lexer::TOKEN_OPEN_PARENTHESES, - 20, - Lexer::TOKEN_HORIZONTAL_WS, + '...', + Lexer::TOKEN_VARIADIC, + 21, + Lexer::TOKEN_CLOSE_PARENTHESES, null, 1, ), @@ -1908,10 +1908,10 @@ public function provideReturnTagsData(): Iterator new PhpDocTagNode( '@return', new InvalidTagValueNode('callable(int, string)', new ParserException( - '(', - 4, - 20, - 27, + '*/', + Lexer::TOKEN_CLOSE_PHPDOC, + 34, + Lexer::TOKEN_COLON, null, 1, )), @@ -3089,10 +3089,10 @@ public function provideSingleLinePhpDocData(): Iterator new InvalidTagValueNode( 'callable(int)', new ParserException( - '(', - Lexer::TOKEN_OPEN_PARENTHESES, - 17, - Lexer::TOKEN_HORIZONTAL_WS, + '*/', + Lexer::TOKEN_CLOSE_PHPDOC, + 23, + Lexer::TOKEN_COLON, null, 1, ), @@ -4480,12 +4480,12 @@ public function provideMultiLinePhpDocData(): iterable ' >,' . PHP_EOL . '}> $a', new ParserException( - '?', - Lexer::TOKEN_NULLABLE, - DIRECTORY_SEPARATOR === '\\' ? 65 : 62, - Lexer::TOKEN_CLOSE_CURLY_BRACKET, + '|', + Lexer::TOKEN_UNION, + DIRECTORY_SEPARATOR === '\\' ? 192 : 186, + Lexer::TOKEN_CLOSE_ANGLE_BRACKET, null, - 4, + 7, ), )), ]), @@ -5836,7 +5836,7 @@ public function provideRealWorldExampleData(): Iterator 'malformed const fetch', '/** @param Foo::** $a */', new PhpDocNode([ - new PhpDocTagNode('@param', new InvalidTagValueNode('Foo::** $a', new ParserException('*', Lexer::TOKEN_WILDCARD, 17, Lexer::TOKEN_VARIABLE, null, 1))), + new PhpDocTagNode('@param', new InvalidTagValueNode('Foo::** $a', new ParserException('*', Lexer::TOKEN_WILDCARD, 17, Lexer::TOKEN_IDENTIFIER, null, 1))), ]), ]; @@ -7381,10 +7381,10 @@ public function provideDoctrineWithoutDoctrineCheckData(): Iterator new PhpDocNode([ new PhpDocTagNode('@X', new GenericTagValueNode('test')), new PhpDocTagNode('@Z', new InvalidTagValueNode('(test=', new ParserException( - '=', - 14, - 19, - 5, + '*/', + Lexer::TOKEN_CLOSE_PHPDOC, + 21, + Lexer::TOKEN_IDENTIFIER, null, 1, ))), @@ -7398,10 +7398,10 @@ public function provideDoctrineWithoutDoctrineCheckData(): Iterator new PhpDocNode([ new PhpDocTagNode('@X', new DoctrineTagValueNode(new DoctrineAnnotation('@X', []), 'test')), new PhpDocTagNode('@Z', new InvalidTagValueNode('(test=', new ParserException( - '=', - 14, - 21, - 5, + '*/', + Lexer::TOKEN_CLOSE_PHPDOC, + 23, + Lexer::TOKEN_IDENTIFIER, null, 1, ))), diff --git a/tests/PHPStan/Parser/TypeParserTest.php b/tests/PHPStan/Parser/TypeParserTest.php index 1f97651d..5a8612c6 100644 --- a/tests/PHPStan/Parser/TypeParserTest.php +++ b/tests/PHPStan/Parser/TypeParserTest.php @@ -756,7 +756,7 @@ public function provideParseData(): array '', Lexer::TOKEN_END, 6, - Lexer::TOKEN_IDENTIFIER, + Lexer::TOKEN_CLOSE_CURLY_BRACKET, null, null, ), @@ -2556,10 +2556,10 @@ public function provideParseData(): array [ 'Foo', new ParserException( - '>', - Lexer::TOKEN_CLOSE_ANGLE_BRACKET, - 13, - Lexer::TOKEN_IDENTIFIER, + '', + Lexer::TOKEN_END, + 14, + Lexer::TOKEN_OPEN_PARENTHESES, null, null, ), @@ -2708,7 +2708,7 @@ public function provideParseData(): array '', Lexer::TOKEN_END, 7, - Lexer::TOKEN_IDENTIFIER, + Lexer::TOKEN_CLOSE_CURLY_BRACKET, null, null, ), @@ -2741,7 +2741,7 @@ public function provideParseData(): array '0', Lexer::TOKEN_END, 7, - Lexer::TOKEN_IDENTIFIER, + Lexer::TOKEN_CLOSE_CURLY_BRACKET, null, null, ), @@ -2752,7 +2752,7 @@ public function provideParseData(): array '0', Lexer::TOKEN_END, 7, - Lexer::TOKEN_IDENTIFIER, + Lexer::TOKEN_CLOSE_CURLY_BRACKET, null, null, ), diff --git a/tools/phplrt/GeneratedParser.template.php b/tools/phplrt/GeneratedParser.template.php new file mode 100644 index 00000000..67228662 --- /dev/null +++ b/tools/phplrt/GeneratedParser.template.php @@ -0,0 +1,152 @@ + the identifier of each rule a reading may start at */ + public const RULES = /*RULES*/[]; + + /** @var array the identifier of each token */ + public const TOKENS = /*TOKENS*/[]; + + /** @var array the name each token is expected by */ + public const EXPECTATIONS = /*EXPECTATIONS*/[]; + + /*CONSTANTS*/ + + /** @var array the identifier of the token at each position, the last one being -1 */ + protected array $ids = []; + + /** the position the reading is at */ + protected int $p = 0; + + /** @var array the values built, as a stack */ + protected array $v = []; + + /** the size of the stack of values */ + protected int $n = 0; + + /** @var array the comments read and not given to any node yet, by their index */ + protected array $comments = []; + + /** the furthest position a failure has been recorded at */ + private int $f = -1; + + /** @var list the rules recorded as failed at the furthest position */ + private array $er = []; + + abstract protected function token(int $position): Token; + + /** + * The context of whatever has been read from the given position up to the + * given one, or up to the position the reading is at. + */ + abstract protected function context(int $from, ?int $to = null): Context; + + /*REDUCERS*/ + + /** + * Where the last reading has failed, along with the tokens expected there. + * + * @return array{int, list} + */ + protected function failure(): array + { + if ($this->f === -1 || $this->f < $this->p) { + return [$this->p, []]; + } + + $expected = []; + foreach ($this->er as $rule) { + foreach (self::EXPECTED[$rule] ?? [] as $token) { + $expected[$token] = true; + } + } + + ksort($expected); + + return [$this->f, array_keys($expected)]; + } + + /** + * Saves the state of the reading, so that a reading may be started in the + * middle of another one. + * + * @return array{int, int, list} + */ + protected function saveReading(): array + { + return [$this->p, $this->f, $this->er]; + } + + /** + * @param array{int, int, list} $state + */ + protected function restoreReading(array $state): void + { + [$this->p, $this->f, $this->er] = $state; + } + + private function rec(int $rule): void + { + $position = $this->p; + if ($position > $this->f) { + $this->f = $position; + $this->er = [$rule]; + return; + } + + if ($position !== $this->f || isset($this->er[3])) { + return; + } + + $this->er[] = $rule; + } + + /** + * The values pushed since the given size, the lists among them flattened. + * + * @return list + */ + private function merge(int $from): array + { + $result = []; + for ($i = $from, $n = $this->n; $i < $n; $i++) { + $value = $this->v[$i]; + if (!is_array($value)) { + $result[] = $value; + continue; + } + + foreach ($value as $nested) { + $result[] = $nested; + } + } + + return $result; + } + + /*METHODS*/ +} diff --git a/tools/phplrt/ParserGenerator.php b/tools/phplrt/ParserGenerator.php new file mode 100644 index 00000000..e4a8ee45 --- /dev/null +++ b/tools/phplrt/ParserGenerator.php @@ -0,0 +1,694 @@ +p > \$this->f) {\n\t\$this->f = \$this->p;\n\t\$this->er = [];\n}\n"; + + /** @var array */ + private array $grammar; + + /** @var array|null> */ + private array $start; + + /** @var array>> */ + private array $choice; + + /** @var array> */ + private array $sequence; + + /** @var array */ + private array $kept; + + /** @var array the reducer of each rule, and whether it reads the children */ + private array $reducers; + + /** @var list every token id, along with the end of the input */ + private array $tokenIds; + + /** @var array the tokens no reducer reads, which are never pushed */ + private array $silent; + + /** @var array the sets of tokens written as constants, by their name */ + private array $sets = []; + + /** @var array the methods asked for */ + private array $requested = []; + + /** @var list the methods still to write */ + private array $queue = []; + + private int $labels = 0; + + /** @var array the rules being written out into each other */ + private array $stack = []; + + /** + * @param array>> $choicePrediction + * @param array $reducers + * @param list $tokenIds + * @param list $silent the tokens no reducer reads + */ + public function __construct(ParserBuilderResult $parser, array $choicePrediction, array $reducers, array $tokenIds, array $silent) + { + $this->silent = array_fill_keys($silent, true); + $this->grammar = $parser->grammar; + $this->start = $parser->startPrediction; + $this->choice = $choicePrediction; + $this->sequence = $parser->sequencePrediction; + $this->kept = $parser->kept; + $this->reducers = $reducers; + $this->tokenIds = $tokenIds; + + foreach ($this->grammar as $id => $rule) { + if ($rule instanceof Lexeme && !$rule->keep) { + throw new LogicException(sprintf('Rule %d: a token not kept is not supported', $id)); + } + + if ($rule instanceof Predicate && $this->kept[$id]) { + throw new LogicException(sprintf('Rule %d: a kept predicate is not supported', $id)); + } + } + } + + /** + * @param array $entrypoints + * @return array{string, string} the methods and the constants of the class + */ + public function generate(array $entrypoints): array + { + $dispatch = []; + foreach ($entrypoints as $name => $id) { + $dispatch[] = sprintf( + "\t\t\tcase %d: // %s\n\t\t\t\treturn \$build ? \$this->%s() : \$this->%s();", + $id, + $name, + $this->request($id, true), + $this->request($id, false), + ); + } + + $methods = []; + while ($this->queue !== []) { + $name = array_shift($this->queue); + $methods[$name] = $this->method((int) substr($name, 1), $name[0] === 'b'); + } + + ksort($methods, SORT_NATURAL); + + $code = "\t/**\n\t * Reads the given rule from the given position.\n\t *\n\t * @phpstan-impure\n\t */\n" + . "\tprotected function parseRule(int \$rule, int \$position, bool \$build): bool\n\t{\n" + . "\t\t\$this->p = \$position;\n\t\t\$this->f = -1;\n\t\t\$this->er = [];\n\n" + . "\t\tswitch (\$rule) {\n" . implode("\n", $dispatch) . "\n\t\t\tdefault:\n" + . "\t\t\t\tthrow new \\LogicException('Not an entrypoint: ' . \$rule);\n\t\t}\n\t}\n\n" + . implode("\n", $methods); + + $constants = ''; + ksort($this->sets, SORT_NATURAL); + foreach ($this->sets as $name => $value) { + $constants .= sprintf("\tprivate const %s = %s;\n", $name, $value); + } + + $expected = []; + foreach ($this->grammar as $id => $rule) { + $tokens = $this->expected($id); + if ($tokens === []) { + continue; + } + + sort($tokens); + $expected[] = $id . '=>[' . implode(',', $tokens) . ']'; + } + + $constants .= sprintf("\n\t/** the tokens each rule is expected to begin with */\n\tprivate const EXPECTED = [%s];\n", implode(',', $expected)); + + return [$code, $constants]; + } + + /** + * The tokens a failure of the given rule says have been expected: the ones + * it may begin with. An alternation the compiler predicts nothing of, + * because it may be a predicate as well, expects what its alternatives do, + * a predicate expecting a rule being one expecting what the rule does. + * + * @param array $visited + * @return list + */ + private function expected(int $id, array $visited = []): array + { + $rule = $this->grammar[$id]; + if ($rule instanceof Lexeme) { + return [$rule->tokenId]; + } + + if (isset($this->start[$id])) { + return array_keys($this->start[$id]); + } + + $visited[$id] = true; + $inner = []; + if ($rule instanceof Alternation) { + $inner = $rule->ruleIds; + } elseif ($rule instanceof Predicate && $rule->isExpected) { + $inner = [$rule->ruleId]; + } + + $tokens = []; + foreach ($inner as $alternative) { + if (isset($visited[$alternative])) { + continue; + } + + foreach ($this->expected($alternative, $visited) as $token) { + $tokens[$token] = true; + } + } + + return array_keys($tokens); + } + + private function request(int $id, bool $build): string + { + $name = ($build ? 'b' : 's') . $id; + if (!isset($this->requested[$name])) { + $this->requested[$name] = true; + $this->queue[] = $name; + } + + return $name; + } + + private function unique(): int + { + return ++$this->labels; + } + + // ------------------------------------------------------------------------- + + private function method(int $id, bool $build): string + { + $this->stack = [($build ? 'b' : 's') . $id => true]; + + return sprintf("\tprivate function %s%d(): bool\n\t{\n", $build ? 'b' : 's', $id) + . self::indent($this->body($id, $build, 'return false;'), 2) + . "\n\t\treturn true;\n\t}\n"; + } + + /** + * The code reading the given rule: it goes on past its end in case the + * rule has been read, and runs the given code once it has given back + * whatever it has read in case it has not. + */ + private function body(int $id, bool $build, string $fail): string + { + $rule = $this->grammar[$id]; + $reducer = $this->reducers[$id] ?? null; + $kept = $build && $reducer !== null; + $u = $this->unique(); + // The variables of a rule are named after how deep it is written out, + // which is all it takes for them not to be overwritten by the rules + // inside it: a function initializes every variable it has on every + // call, so there are as few of them as possible + $d = count($this->stack); + + // A rule whose reducer reads nothing of what it contains is only read + if ($kept && !$reducer[1]) { + return "\$o{$d} = \$this->p;\n" + . $this->match($id, false, $fail) + . sprintf("\$this->v[\$this->n++] = \$this->%s(\$this->context(\$o%d));\n", $reducer[0], $d); + } + + $code = ''; + $start = $this->start[$id] ?? null; + if ($start !== null) { + $code .= sprintf( + "if (!%s) {\n\tif (\$this->p > \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n\n", + $this->in(array_keys($start)), + $id, + self::indent($fail, 1), + ); + } + + // Every rule pushes the tokens it reads while building, but for a + // predicate, which reads nothing + $pushes = $build && !$rule instanceof Predicate; + $code .= "\$o{$d} = \$this->p;\n"; + if ($pushes) { + $code .= "\$m{$d} = \$this->n;\n\$cs{$d} = \$this->comments;\n"; + } + + $failure = "goto f{$u};"; + if ($rule instanceof Concatenation) { + $code .= $this->concatenation($id, $rule, $build, $failure); + } elseif ($rule instanceof Alternation) { + $code .= $this->alternation($id, $rule, $build, $failure); + } elseif ($rule instanceof Repetition) { + $code .= $this->repetition($rule, $build, $failure); + } elseif ($rule instanceof Optional) { + $code .= $this->optional($rule->ruleId, $build); + } elseif ($rule instanceof Predicate) { + $code .= $this->predicate($rule, $failure); + } else { + throw new LogicException(sprintf('Rule %d: unsupported %s', $id, get_class($rule))); + } + + if (strpos($code, $failure) !== false) { + $code .= "goto k{$u};\nf{$u}:\n\$this->p = \$o{$d};\n" + . ($pushes ? "\$this->n = \$m{$d};\n\$this->comments = \$cs{$d};\n" : '') + . $fail . "\nk{$u}:\n"; + } + + if ($kept) { + $code .= sprintf( + "\$this->v[\$m%1\$d] = \$this->%2\$s(\$this->context(\$o%1\$d), \$this->n === \$m%1\$d + 1 && !\\is_array(\$this->v[\$m%1\$d]) ? [\$this->v[\$m%1\$d]] : \$this->merge(\$m%1\$d));\n\$this->n = \$m%1\$d + 1;\n", + $d, + $reducer[0], + ); + } + + return $code; + } + + /** + * The code reading the given rule where another one expects it: written + * out right there in case it is small enough, called otherwise. + */ + private function match(int $inner, bool $build, string $fail): string + { + $definition = $this->grammar[$inner]; + $tokens = $this->tokens($inner); + if ($tokens !== null) { + return sprintf( + "if (!%s) {\n\tif (\$this->p %s \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n\n%s", + $this->in($tokens[0]), + $tokens[1], + $inner, + self::indent($fail, 1), + $this->read($inner, $build), + ); + } + + if ($definition instanceof Predicate) { + return $this->predicate($definition, $fail); + } + + $key = ($build ? 'b' : 's') . $inner; + if (!isset($this->stack[$key]) && count($this->stack) < self::INLINE_DEPTH) { + $this->stack[$key] = true; + $labels = $this->labels; + $sets = $this->sets; + $requested = $this->requested; + $queue = $this->queue; + $code = $this->body($inner, $build, $fail); + unset($this->stack[$key]); + + if (strlen($code) <= self::INLINE_SIZE) { + return "// {$key}\n" . $code; + } + + // Too much to write out: the methods asked for along the way are + // not asked for after all + $this->labels = $labels; + $this->sets = $sets; + $this->requested = $requested; + $this->queue = $queue; + } + + return sprintf("if (!\$this->%s()) {\n%s}\n", $this->request($inner, $build), self::indent($fail, 1)); + } + + private function concatenation(int $id, Concatenation $rule, bool $build, string $fail): string + { + $code = ''; + foreach ($this->sequence[$id] ?? $rule->ruleIds as $inner) { + if ($inner >= 0) { + $code .= $this->match($inner, $build, $fail); + continue; + } + + // An element that may be left out + $inner = -$inner - 1; + $element = $this->grammar[$inner]; + if ($element instanceof Predicate) { + $tokens = $this->start[$element->ruleId] ?? null; + $predicate = $this->predicate($element, $fail, true); + $code .= $tokens === null + ? $predicate + : sprintf("if (%s) {\n%s}\n", $this->in(array_keys($tokens)), self::indent($predicate, 1)); + } elseif ($this->tokens($inner) !== null) { + $code .= $this->optional($inner, $build); + } else { + $u = $this->unique(); + $tokens = $this->start[$inner] ?? null; + $read = $this->match($inner, $build, "goto n{$u};") . "n{$u}:\n"; + $code .= $tokens === null + ? $read + : sprintf( + "if (%s) {\n%s} elseif (\$this->p > \$this->f) {\n\t\$this->rec(%d);\n}\n", + $this->in(array_keys($tokens)), + self::indent($read, 1), + $inner, + ); + } + } + + return $code; + } + + private function alternation(int $id, Alternation $rule, bool $build, string $fail): string + { + $ok = 'a' . $this->unique(); + + // The alternatives worth trying at each token + $lists = []; + $groups = []; + foreach ($this->tokenIds as $token) { + $list = $this->choice[$id][$token] ?? $rule->ruleIds; + $key = implode(',', $list); + $lists[$key] = $list; + $groups[$key][] = $token; + } + + uasort($groups, static fn (array $a, array $b): int => count($b) <=> count($a)); + + $code = ''; + if (count($groups) === 1) { + $code .= $this->attempts($lists[array_key_first($groups)], $build, $ok); + } else { + $code .= "switch (\$this->ids[\$this->p]) {\n"; + $first = true; + foreach ($groups as $key => $tokens) { + if ($first) { + $code .= "\tdefault:\n"; + $first = false; + } else { + foreach ($tokens as $token) { + $code .= sprintf("\tcase %d:\n", $token); + } + } + + $code .= self::indent($this->attempts($lists[$key], $build, $ok), 2) . "\t\tbreak;\n"; + } + + $code .= "}\n"; + } + + return $code . sprintf("\nif (\$this->p > \$this->f) {\n\t\$this->rec(%d);\n}\n\n%s\n%s:\n", $id, $fail, $ok); + } + + /** + * @param list $alternatives + */ + private function attempts(array $alternatives, bool $build, string $ok): string + { + $code = ''; + foreach ($alternatives as $inner) { + if ($inner < 0) { + // A token predicted by the very token the reading is at + return $code . $this->push(-$inner - 1, $build) . "goto {$ok};\n"; + } + + $tokens = $this->tokens($inner); + if ($tokens !== null) { + $code .= sprintf( + "if (%s) {\n%s\tgoto %s;\n}\n\nif (\$this->p %s \$this->f) {\n\t\$this->rec(%d);\n}\n", + $this->in($tokens[0]), + self::indent($this->read($inner, $build), 1), + $ok, + $tokens[1], + $inner, + ); + continue; + } + + $next = 'n' . $this->unique(); + $read = $this->match($inner, $build, "goto {$next};") . "goto {$ok};\n"; + $code .= $read . "{$next}:\n"; + } + + return $code; + } + + private function repetition(Repetition $rule, bool $build, string $fail): string + { + $inner = $rule->ruleId; + $min = $rule->min; + $max = $rule->max; + $counted = $min > 0 || $max !== INF; + $u = $this->unique(); + $d = count($this->stack); + $end = "goto e{$u};"; + + $code = $counted ? "\$k{$d} = 0;\n" : ''; + $code .= $max === INF ? "while (true) {\n" : sprintf("while (\$k%d < %d) {\n", $d, $max); + $code .= "\t\$b{$d} = \$this->p;\n"; + + $body = ''; + $tokens = $this->tokens($inner); + if ($tokens !== null) { + $body .= sprintf( + "if (!%s) {\n\tif (\$b%d %s \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n\t%s\n}\n\n%s", + $this->in($tokens[0]), + $d, + $tokens[1], + $inner, + $end, + $this->read($inner, $build), + ); + } else { + $start = $this->start[$inner] ?? null; + if ($start !== null) { + $body .= sprintf( + "if (!%s) {\n\tif (\$b%d > \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n\t%s\n}\n\n", + $this->in(array_keys($start)), + $d, + $inner, + $end, + ); + } + + $body .= $this->match($inner, $build, $end); + // A body reading nothing would be read forever + $body .= "if (\$this->p === \$b{$d}) {\n" . ($counted ? sprintf("\t\$k%d = %d;\n", $d, $min) : '') . "\t{$end}\n}\n"; + } + + $code .= self::indent($body, 1); + $code .= $counted ? "\n\t\$k{$d}++;\n}\n" : "}\n"; + $code .= "e{$u}:\n"; + + if ($min > 0) { + $code .= sprintf("\nif (\$k%d < %d) {\n\t%s\n}\n", $d, $min, $fail); + } + + return $code; + } + + private function optional(int $inner, bool $build): string + { + $tokens = $this->tokens($inner); + if ($tokens !== null) { + return sprintf( + "if (%s) {\n%s} elseif (\$this->p %s \$this->f) {\n\t\$this->rec(%d);\n}\n", + $this->in($tokens[0]), + self::indent($this->read($inner, $build), 1), + $tokens[1], + $inner, + ); + } + + $u = $this->unique(); + + return $this->match($inner, $build, "goto n{$u};") . "n{$u}:\n"; + } + + /** + * @param bool $predicted whether the caller has already seen the rule + * inside may begin at the token the reading is at + */ + private function predicate(Predicate $rule, string $fail, bool $predicted = false): string + { + $inner = $rule->ruleId; + $tokens = $this->start[$inner] ?? null; + + $set = $this->tokens($inner); + if ($set !== null) { + if ($rule->isExpected) { + return sprintf( + "if (!%s) {\n\tif (\$this->p > \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n", + $this->in($set[0]), + $inner, + self::indent($fail, 1), + ); + } + + return sprintf("if (%s) {\n%s%s}\n", $this->in($set[0]), self::indent(self::UNEXPECTED, 1), self::indent($fail, 1)); + } + + $u = $this->unique(); + $check = sprintf( + "\$sf = \$this->f;\n\$se = \$this->er;\n\$sp = \$this->p;\n\$matched = \$this->%2\$s();\n\$this->f = \$sf;\n\$this->er = \$se;\n\$this->p = \$sp;\nif (%3\$s\$matched) {\n%4\$s%5\$s}\n", + 0, + $this->request($inner, false), + $rule->isExpected ? '!' : '', + self::indent(self::UNEXPECTED, 1), + self::indent($fail, 1), + ); + + if ($tokens === null || $predicted) { + return $check; + } + + if ($rule->isExpected) { + return sprintf( + "if (!%s) {\n\tif (\$this->p > \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n\n%s", + $this->in(array_keys($tokens)), + $inner, + self::indent($fail, 1), + $check, + ); + } + + return sprintf("if (%s) {\n%s}\n", $this->in(array_keys($tokens)), self::indent($check, 1)); + } + + /** + * Reads the token the reading is at, which the given rule reads. + */ + private function read(int $id, bool $build): string + { + if ($this->grammar[$id] instanceof Lexeme) { + return $this->push($id, $build); + } + + if (!$build || array_diff_key(array_flip($this->tokens($id)[0]), $this->silent) === []) { + return "\$this->p++;\n"; + } + + return "\$this->v[\$this->n++] = \$this->token(\$this->p++);\n"; + } + + /** + * The tokens a rule reads one of, in case that is all it does: a lexeme, + * or an alternation of lexemes building nothing of its own. + * + * @return array{list, string}|null the tokens, and the comparison + * with the furthest failure a failure to read one is recorded by + */ + private function tokens(int $id): ?array + { + $rule = $this->grammar[$id]; + if ($rule instanceof Lexeme) { + return [[$rule->tokenId], '>=']; + } + + if (!$rule instanceof Alternation || isset($this->reducers[$id])) { + return null; + } + + $tokens = []; + foreach ($rule->ruleIds as $alternative) { + $definition = $this->grammar[$alternative]; + if (!$definition instanceof Lexeme || isset($this->reducers[$alternative])) { + return null; + } + + $tokens[$definition->tokenId] = true; + } + + // The alternation is entered at the very tokens it reads + $start = $this->start[$id] ?? []; + ksort($start); + ksort($tokens); + if ($start !== $tokens) { + return null; + } + + return [array_keys($tokens), '>']; + } + + /** + * Reads the token the reading is at as the given lexeme. + */ + private function push(int $lexeme, bool $build): string + { + $definition = $this->grammar[$lexeme]; + if (!$build || (isset($this->silent[$definition->tokenId]) && !isset($this->reducers[$lexeme]))) { + return "\$this->p++;\n"; + } + + $reducer = $this->reducers[$lexeme] ?? null; + if ($reducer !== null) { + return sprintf( + "\$this->v[\$this->n++] = \$this->%s(\$this->context(\$this->p, \$this->p + 1)%s);\n\$this->p++;\n", + $reducer[0], + $reducer[1] ? ', [$this->token($this->p)]' : '', + ); + } + + return "\$this->v[\$this->n++] = \$this->token(\$this->p++);\n"; + } + + /** + * @param list $tokens + */ + private function in(array $tokens): string + { + sort($tokens); + if (count($tokens) === 1) { + return sprintf('($this->ids[$this->p] === %d)', $tokens[0]); + } + + $name = 'T' . substr(md5(implode(',', $tokens)), 0, 8); + $this->sets[$name] = '[' . implode(',', array_map(static fn (int $t): string => $t . '=>true', $tokens)) . ']'; + + return sprintf('isset(self::%s[$this->ids[$this->p]])', $name); + } + + private static function indent(string $code, int $levels): string + { + $prefix = str_repeat("\t", $levels); + + return preg_replace('/^(?=.)/m', $prefix, $code); + } + +} diff --git a/tools/phplrt/build.php b/tools/phplrt/build.php new file mode 100644 index 00000000..8a832531 --- /dev/null +++ b/tools/phplrt/build.php @@ -0,0 +1,330 @@ +] + * + * @internal this is a development tool, not part of the library + */ + +declare(strict_types=1); + +use Phplrt\Compiler\Compiler; +use Phplrt\Lexer\Builder\LexerBuilderResult; +use Phplrt\Parser\Builder\Compiler\ParserBuildingContext; +use Phplrt\Parser\Builder\Compiler\ParserCompilerPassInterface; +use Phplrt\Parser\Builder\Definition\AlternationRuleDefinition; +use Phplrt\Parser\Builder\Definition\RuleDefinition; +use Phplrt\Parser\Builder\ParserBuilder; +use Phplrt\Parser\Grammar\Alternation; +use Phplrt\Parser\Grammar\Lexeme; +use Phplrt\Source\FileSource; + +// The upstream runtime the compiler is written against has to win over the +// downgraded one the library itself depends on +require __DIR__ . '/vendor/autoload.php'; + +require __DIR__ . '/ParserGenerator.php'; + +$output = $argv[1] ?? __DIR__ . '/../../src/Parser/Generated/GeneratedParser.php'; + +/** + * The rules the parsers are started at. + */ +const ENTRYPOINTS = ['PhpDoc', 'Type', 'ConstantExpr', 'KnownTag', 'UnreadTagChild', 'PhpDocChild']; + +/** + * The reducers of "src/Parser/AstBuilder.php", by the name of the rule they + * reduce, along with whether they read what the rule contains. The source is + * read rather than the class, which extends the very class written here. + * + * @var array $reducers + */ +$reducers = []; +preg_match_all('/function (reduce(\w+))\(([^)]*)\)/', file_get_contents(__DIR__ . '/../../src/Parser/AstBuilder.php'), $matches, PREG_SET_ORDER); +foreach ($matches as [, $method, $rule, $parameters]) { + $reducers[$rule] = [$method, substr_count($parameters, '$') > 1]; +} + +/** @var array $entrypoints */ +$entrypoints = array_fill_keys(array_keys($reducers), true) + array_fill_keys(ENTRYPOINTS, true); + +$compiler = (new Compiler()) + ->load(FileSource::createFromPathname(__DIR__ . '/../../doc/grammars/phpdoc.pp3')); + +/** + * The grammars describe a PHPDoc written correctly, while the parser reads a + * broken one as well: a tag whose value cannot be read keeps the rest of its + * line as its value, and a type alias whose type cannot be read keeps its name. + * Both are written here as alternatives tried once everything else has failed, + * so that the grammars stay the description of the language they are. + * + * InvalidTag : TagToken() Text() ; + * InvalidTypeAliasTag : Identifier() ? Text() ; + */ +$builder = $compiler->parser; +$invalidTag = $builder->addConcatenation([ + $builder->addRuleReference('TagToken'), + $builder->addRuleReference('Text'), +], 'InvalidTag'); +$invalidTypeAliasTag = $builder->addConcatenation([ + $builder->addTokenReference('T_TAG_TYPE_ALIAS'), + $builder->addRuleReference('Identifier'), + $builder->addOptional($builder->addTokenReference('T_EQUAL')), + $builder->addRuleReference('Text'), +], 'InvalidTypeAliasTag'); + +foreach ($builder->rules as $rule) { + if ($rule->name === 'PhpDocChild') { + // KnownTag | InvalidTag | !TagToken() TextChild() + $alternatives = $rule->rules; + array_splice($alternatives, 1, 0, [$invalidTag]); + $rule->setRules($alternatives); + } elseif ($rule->name === 'KnownTag') { + $alternatives = []; + foreach ($rule->rules as $alternative) { + $alternatives[] = $alternative; + if ((string) $alternative->rules[0] === '') { + $alternatives[] = $invalidTypeAliasTag; + } + } + $rule->setRules($alternatives); + } +} + +$found = []; + +foreach ($compiler->parser->rules as $rule) { + if ($rule->name === null || !isset($entrypoints[$rule->name])) { + continue; + } + + $found[$rule->name] = true; + + if (in_array($rule->name, ENTRYPOINTS, true)) { + $rule->setEntrypoint(); + } + + if (isset($reducers[$rule->name])) { + // The reducer is only a mark that keeps the rule in the trace: the + // parser written calls the one of the AST builder + $rule->setReducer(static fn () => null); + } +} + +$missing = array_diff_key($entrypoints, $found); +if ($missing !== []) { + fwrite(STDERR, sprintf("The grammar has no rule named %s\n", implode(', ', array_keys($missing)))); + exit(1); +} + +/** + * Joins an alternation with the alternations nested into it. + * + * Upstream leaves them nested, so that an alternation the token at hand cannot + * start is skipped along with all of its alternatives by a single lookup. Here + * every alternation is entered through its choice prediction, which already + * names the very alternatives worth trying, so a nested one is only a call per + * token more: the free-form text of a PHPDoc is read by three alternations + * nested into each other, one call each per word. + */ +final class NestedAlternationParserCompilerPass implements ParserCompilerPassInterface +{ + + public function process(ParserBuildingContext $context, LexerBuilderResult $lexer): void + { + foreach ($context->rules as $rule) { + if (!$rule instanceof AlternationRuleDefinition) { + continue; + } + + $rule->setRules($this->expand($rule, $context)); + } + + $context->rules = $context->collectReachableRules(); + } + + /** + * @return list + */ + private function expand(AlternationRuleDefinition $rule, ParserBuildingContext $context): array + { + $result = []; + + foreach ($rule->rules as $child) { + if ( + $child instanceof AlternationRuleDefinition + && $child->reducer === null + && $child->message === null + && !$context->isEntrypoint($child) + ) { + foreach ($this->expand($child, $context) as $inner) { + $result[] = $inner; + } + + continue; + } + + $result[] = $child; + } + + return $result; + } + +} + +$compiler->parser->addCompilerPass(new NestedAlternationParserCompilerPass(), ParserBuilder::PASS_PRIORITY_OPTIMIZE - 1); + +$result = $compiler->build(); +$parser = $result->parser; + +/** + * Writes the choice prediction down for every token there is. + * + * Upstream only writes a row for a token some alternative is known to begin + * with, and an alternation is read by trying every one of its alternatives at + * a token it has no row for. An alternative that may begin with anything at + * all, like a line of text, is therefore what every other alternative is tried + * along with, on every token nothing else begins with: a line of a description + * is tried as each of the tags first. A row for each of those tokens says that + * only such alternatives are worth trying. + * + * @return array>> + */ +function completeChoicePrediction(Phplrt\Parser\Builder\ParserBuilderResult $parser, array $tokenIds): array +{ + $result = $parser->choicePrediction; + + foreach ($parser->grammar as $id => $rule) { + if (!$rule instanceof Alternation) { + continue; + } + + $firsts = []; + foreach ($rule->ruleIds as $alternative) { + $definition = $parser->grammar[$alternative]; + $firsts[$alternative] = $definition instanceof Lexeme + ? [$definition->tokenId => true] + : $parser->startPrediction[$alternative] ?? null; + } + + foreach ($tokenIds as $token) { + if (isset($result[$id][$token])) { + continue; + } + + $candidates = []; + foreach ($rule->ruleIds as $alternative) { + $first = $firsts[$alternative]; + if ($first !== null && !isset($first[$token])) { + continue; + } + + $definition = $parser->grammar[$alternative]; + $candidates[] = $definition instanceof Lexeme && $definition->tokenId === $token + ? -$alternative - 1 + : $alternative; + } + + if ($candidates === $rule->ruleIds) { + continue; + } + + $result[$id][$token] = $candidates; + } + + if (isset($result[$id])) { + ksort($result[$id]); + } + } + + ksort($result); + + return $result; +} + +$tokenIds = array_keys($result->lexer->names); +// The end of the input, which the runtime reports on its own +$tokenIds[] = -1; + +$choicePrediction = completeChoicePrediction($parser, $tokenIds); + +/** + * @param mixed $value + */ +function export($value): string +{ + if (is_array($value)) { + if ($value === []) { + return '[]'; + } + + $isList = array_is_list($value); + $items = []; + foreach ($value as $key => $item) { + $items[] = ($isList ? '' : var_export($key, true) . ' => ') . export($item); + } + + return '[' . implode(', ', $items) . ']'; + } + + return var_export($value, true); +} + +$rules = []; +foreach ($parser->constants as $name => $id) { + if (in_array($name, ENTRYPOINTS, true)) { + $rules[$name] = $id; + } +} + +$reducerIds = []; +$abstracts = []; +foreach ($reducers as $name => $reducer) { + $id = $parser->constants[$name]; + $reducerIds[$id] = $reducer; + $abstracts[] = $reducer[1] + ? sprintf("\t/**\n\t * @param list \$children\n\t * @return mixed\n\t */\n\tabstract protected function %s(Context \$context, \$children);\n", $reducer[0]) + : sprintf("\t/**\n\t * @return mixed\n\t */\n\tabstract protected function %s(Context \$context);\n", $reducer[0]); +} + +// The tokens no reducer reads: they are only what the other tokens are +// written in between +$silent = []; +foreach (['T_PHPDOC_EOL', 'T_OPEN_PHPDOC', 'T_CLOSE_PHPDOC', 'T_COMMENT'] as $name) { + $silent[] = array_flip($result->lexer->names)[$name]; +} + +[$methods, $constants] = (new ParserGenerator($parser, $choicePrediction, $reducerIds, $tokenIds, $silent))->generate($rules); + +$template = file_get_contents(__DIR__ . '/GeneratedParser.template.php'); +$generated = strtr($template, [ + '/*RULES*/[]' => export($rules), + '/*TOKENS*/[]' => export(array_flip($result->lexer->names)), + '/*EXPECTATIONS*/[]' => export($parser->expectations), + "\t/*CONSTANTS*/\n" => $constants, + "\t/*REDUCERS*/\n" => implode("\n", $abstracts), + "\t/*METHODS*/\n" => $methods, +]); + +if (!is_dir(dirname($output))) { + mkdir(dirname($output), 0777, true); +} + +file_put_contents($output, $generated); + +fwrite(STDERR, sprintf("%d rules written to %s\n", count($parser->grammar), $output)); diff --git a/tools/phplrt/composer.json b/tools/phplrt/composer.json index 75edac07..38f3e774 100644 --- a/tools/phplrt/composer.json +++ b/tools/phplrt/composer.json @@ -1,7 +1,7 @@ { "description": "Dev-only toolchain for compiling the phplrt grammars in doc/grammars into generated parsers.", "require": { - "phplrt/phplrt": "4.0.0-rc1" + "phplrt/phplrt": "4.2.4" }, "minimum-stability": "dev", "prefer-stable": true, diff --git a/tools/phplrt/composer.lock b/tools/phplrt/composer.lock index 8101c845..947246a9 100644 --- a/tools/phplrt/composer.lock +++ b/tools/phplrt/composer.lock @@ -4,93 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "31e0382729bc7f44d23ee49bea1427eb", + "content-hash": "9c0c07f1d160a690b9a5bbb0cd1f061a", "packages": [ - { - "name": "laminas/laminas-code", - "version": "4.17.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-code.git", - "reference": "40d61e2899ec17c5d08bbc0a2d586b3ca17ab9bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/40d61e2899ec17c5d08bbc0a2d586b3ca17ab9bd", - "reference": "40d61e2899ec17c5d08bbc0a2d586b3ca17ab9bd", - "shasum": "" - }, - "require": { - "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0.1", - "ext-phar": "*", - "laminas/laminas-coding-standard": "^3.0.0", - "laminas/laminas-stdlib": "^3.18.0", - "phpunit/phpunit": "^10.5.58", - "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.15.0" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "laminas/laminas-stdlib": "Laminas\\Stdlib component" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Code\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "homepage": "https://laminas.dev", - "keywords": [ - "code", - "laminas", - "laminasframework" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-code/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-code/issues", - "rss": "https://github.com/laminas/laminas-code/releases.atom", - "source": "https://github.com/laminas/laminas-code" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2025-11-01T09:38:14+00:00" - }, { "name": "phplrt/phplrt", - "version": "4.0.0-rc1", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/phplrt/phplrt.git", - "reference": "348cd166f750d0021aa95e3f87ea6f17e29b2147" + "reference": "3c95515be58c33df462dc65f9288b90e999c8ef3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phplrt/phplrt/zipball/348cd166f750d0021aa95e3f87ea6f17e29b2147", - "reference": "348cd166f750d0021aa95e3f87ea6f17e29b2147", + "url": "https://api.github.com/repos/phplrt/phplrt/zipball/3c95515be58c33df462dc65f9288b90e999c8ef3", + "reference": "3c95515be58c33df462dc65f9288b90e999c8ef3", "shasum": "" }, "require": { - "composer-runtime-api": "^2.2", + "composer-runtime-api": "^2.0", "ext-json": "*", "ext-pcre": "*", - "laminas/laminas-code": "^4.17", - "php": "^8.4", - "symfony/console": "^7.4|^8.0", - "twig/twig": "^3.28" + "php": "^8.1", + "psr/log": "^3.0", + "symfony/console": "^6.4|^7.0|^8.0", + "twig/twig": "^3.30" }, "provide": { "phplrt/lexer-contracts-implementation": "^4.0", @@ -121,16 +58,20 @@ "ext-intl": "*", "ext-mbstring": "*", "friendsofphp/php-cs-fixer": "^3.95", - "phpstan/phpstan": "^2.2", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^13.2", + "phpstan/phpstan": "^2.3", + "phpstan/phpstan-strict-rules": "^2.1", "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symplify/monorepo-builder": "^12.7" + "testo/testo": "^0.10.45" }, "bin": [ "libs/components/compiler/bin/phplrt" ], "type": "library", + "extra": { + "skills": { + "source": "skills" + } + }, "autoload": { "files": [ "libs/components/source/src/polyfill.php" @@ -172,7 +113,7 @@ "issues": "https://github.com/phplrt/phplrt/issues", "source": "https://github.com/phplrt/phplrt" }, - "time": "2026-08-25T09:57:58+00:00" + "time": "2026-10-16T08:42:58+00:00" }, { "name": "psr/container", @@ -227,6 +168,56 @@ }, "time": "2021-11-05T16:47:00+00:00" }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, { "name": "symfony/console", "version": "v8.0.15", @@ -473,16 +464,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5cac8f4db97208823aa353f59a01faad2da52c75", + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75", "shasum": "" }, "require": { @@ -531,7 +522,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.43.0" }, "funding": [ { @@ -551,20 +542,20 @@ "type": "tidelift" } ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-09-25T15:46:47+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/ebd57ccc7edb93d632e184efbe7693d2517bab3b", + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b", "shasum": "" }, "require": { @@ -616,7 +607,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.43.0" }, "funding": [ { @@ -636,20 +627,20 @@ "type": "tidelift" } ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2026-09-23T22:02:09+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", "shasum": "" }, "require": { @@ -701,7 +692,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.43.0" }, "funding": [ { @@ -721,20 +712,20 @@ "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-09-24T15:19:04+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.7.1", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -788,7 +779,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -808,7 +799,7 @@ "type": "tidelift" } ], - "time": "2026-06-16T09:55:08+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", @@ -902,16 +893,16 @@ }, { "name": "twig/twig", - "version": "v3.28.0", + "version": "v3.30.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b" + "reference": "8c737079b726af72ff8ef3c595be9f6a810ea1ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/8c737079b726af72ff8ef3c595be9f6a810ea1ef", + "reference": "8c737079b726af72ff8ef3c595be9f6a810ea1ef", "shasum": "" }, "require": { @@ -966,7 +957,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.28.0" + "source": "https://github.com/twigphp/Twig/tree/v3.30.0" }, "funding": [ { @@ -978,7 +969,7 @@ "type": "tidelift" } ], - "time": "2026-07-03T20:44:34+00:00" + "time": "2026-09-25T13:20:01+00:00" } ], "packages-dev": [], From a2f5214b5842adea471e2a8dccdc68f5921f359c Mon Sep 17 00:00:00 2001 From: "ondrej@mirtes.cz" Date: Mon, 26 Oct 2026 16:04:29 +0000 Subject: [PATCH 2/4] Generate the lexer pattern from doc/grammars/lexemes.pp3 Lexer::tokenize() now classifies the tokens for the generated parser while lexing, so the parsers no longer rebuild the stream on every read. Amp-Thread-ID: https://ampcode.com/threads/T-01a17820-94d1-75c8-9206-2e802d9c0556 --- doc/grammars/README.md | 23 +-- doc/grammars/lexemes.pp3 | 36 +++-- src/Lexer/Lexer.php | 108 ++----------- src/Parser/AstBuilder.php | 28 +++- src/Parser/Generated/GeneratedParser.php | 188 +++++++++++----------- src/Parser/Phplrt/TokenStream.php | 170 +++++++++++++++++++ tests/PHPStan/Lexer/LexerTest.php | 50 ++++-- tools/phplrt/GeneratedParser.template.php | 6 + tools/phplrt/build.php | 50 +++++- 9 files changed, 424 insertions(+), 235 deletions(-) diff --git a/doc/grammars/README.md b/doc/grammars/README.md index 8279bb94..9c01fbf7 100644 --- a/doc/grammars/README.md +++ b/doc/grammars/README.md @@ -125,16 +125,19 @@ most of them: - **A rule reads exactly the tokens its method reads**, down to the line breaks around it. -### The tokens are not read by phplrt - -A grammar of this directory is not read by the lexer it declares: it is read by -the very tokens `PHPStan\PhpDocParser\Lexer\Lexer` produces, handed over by -`tools/phplrt/Fuzzer/TokenStream.php`. - -The `%token` declarations therefore name the tokens and document the language -without being what reads it. Some of them describe something the lexer never -reads as a token of its own, and `TokenStream` is what tells those apart in the -stream: +### The lexer is written out of the `%token` declarations + +`tools/phplrt/build.php` writes the pattern of `PHPStan\PhpDocParser\Lexer\Lexer` +out of the `%token` declarations of `lexemes.pp3`, in the order they are +declared, into `GeneratedParser::LEXER_PATTERN`. Each token is marked by the +identifier the grammar gives it, and `GeneratedParser::LEXER_TYPES` maps it back +to the `Lexer::TOKEN_*` type `tokenize()` returns, so the tokens are the very +ones they always were. + +Some declarations describe something the lexer never reads as a token of its +own. They are left out of the pattern, and `src/Parser/Phplrt/TokenStream.php` +tells them apart in the stream the parser reads, while the PHPDoc is being +lexed: - a word the parser compares by value (`is`, `array`, `covariant`, `static`, …) — every one of them is still an ordinary name as well, which is why they are diff --git a/doc/grammars/lexemes.pp3 b/doc/grammars/lexemes.pp3 index 7859a714..dd8367ab 100644 --- a/doc/grammars/lexemes.pp3 +++ b/doc/grammars/lexemes.pp3 @@ -3,23 +3,25 @@ * The Lexemes Of The PHPDoc Language * ----------------------------------------------------------------------------- * - * Every token the PHPDoc language is read into, written the way - * "PHPStan\PhpDocParser\Lexer\Lexer" reads it. + * Every token the PHPDoc language is read into. * - * A grammar of this directory is not read by the lexer it declares: it is read - * by the very tokens "Lexer" produces, handed over by - * "tools/phplrt/Fuzzer/TokenStream.php". The declarations below therefore - * serve three purposes: + * "PHPStan\PhpDocParser\Lexer\Lexer" is written out of these declarations by + * "tools/phplrt/build.php": every token that is not classified below becomes + * an alternative of its pattern, tried in the order written here, so the + * order is the one that decides between two tokens matching at one place. + * The declarations also serve the grammar-driven fuzzer, which writes its + * inputs out of them. * - * - they name the tokens the rules are written in terms of; - * - they document the language down to its lexical level; - * - they are what the grammar-driven fuzzer writes its inputs from. + * Every group of a pattern is non-capturing: "preg_match_all()" collects + * every capturing group for every token the lexer reads. * - * A block of tokens marked "classified" is not read as a token of its own by - * the lexer. Such a token is a T_IDENTIFIER (or a bracket, or an asterisk) - * whose surroundings or whose very value the hand-written parser asks about, - * and telling those apart in the token stream is what lets a grammar written - * without semantic predicates say the same thing. + * A classified token is not an alternative of the pattern: the keywords, the + * tags read by a rule of their own, the tokens ending in "_WS" and the "<" of + * an HTML tag. Such a token is a T_IDENTIFIER (or a tag, a bracket, or an + * asterisk) whose surroundings or whose very value the grammar asks about. + * The lexer reads it as that token, and tells it apart only in the stream it + * hands to the parser ("src/Parser/Phplrt/TokenStream.php"), which is what + * lets a grammar written without semantic predicates say the same thing. */ %pragma lexer.pcre.disable u @@ -79,8 +81,8 @@ // Literals and names // ----------------------------------------------------------------------------- -%token T_FLOAT [+\-]?(?:(?:[0-9]++(_[0-9]++)*\.[0-9]*+(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]*+(_[0-9]++)*\.[0-9]++(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]++(_[0-9]++)*e[+\-]?[0-9]++(_[0-9]++)*)) -%token T_INTEGER [+\-]?(?:(?:0b[0-1]++(_[0-1]++)*)|(?:0o[0-7]++(_[0-7]++)*)|(?:0x[0-9a-f]++(_[0-9a-f]++)*)|(?:[0-9]++(_[0-9]++)*)) +%token T_FLOAT [+\-]?(?:(?:[0-9]++(?:_[0-9]++)*\.[0-9]*+(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]*+(?:_[0-9]++)*\.[0-9]++(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]++(?:_[0-9]++)*e[+\-]?[0-9]++(?:_[0-9]++)*)) +%token T_INTEGER [+\-]?(?:(?:0b[0-1]++(?:_[0-1]++)*)|(?:0o[0-7]++(?:_[0-7]++)*)|(?:0x[0-9a-f]++(?:_[0-9a-f]++)*)|(?:[0-9]++(?:_[0-9]++)*)) %token T_SINGLE_QUOTED_STRING '(?:\\[^\r\n]|[^'\r\n\\])*+' %token T_DOUBLE_QUOTED_STRING "(?:\\[^\r\n]|[^"\r\n\\])*+" %token T_DOCTRINE_ANNOTATION_STRING "(?:""|[^"])*+" @@ -120,7 +122,6 @@ %token T_ARROW -> %token T_EQUAL = %token T_COLON : -%token T_WILDCARD \* // ----------------------------------------------------------------------------- // PHPDoc structure @@ -128,6 +129,7 @@ %token T_OPEN_PHPDOC /\*\*(?=\s)\x20?+ %token T_CLOSE_PHPDOC \*/ +%token T_WILDCARD \* /** * The tags whose value is read by a rule of its own, told apart from one diff --git a/src/Lexer/Lexer.php b/src/Lexer/Lexer.php index c470100c..82e16f8a 100644 --- a/src/Lexer/Lexer.php +++ b/src/Lexer/Lexer.php @@ -2,12 +2,13 @@ namespace PHPStan\PhpDocParser\Lexer; +use PHPStan\PhpDocParser\Parser\Phplrt\TokenStream; use PHPStan\PhpDocParser\ParserConfig; -use function implode; -use function preg_match_all; /** * Implementation based on Nette Tokenizer (New BSD License; https://github.com/nette/tokenizer) + * + * The pattern is written out of "doc/grammars/lexemes.pp3" by "tools/phplrt/build.php". */ class Lexer { @@ -99,110 +100,23 @@ class Lexer private ParserConfig $config; // @phpstan-ignore property.onlyWritten - private ?string $regexp = null; - public function __construct(ParserConfig $config) { $this->config = $config; } /** - * @return list + * The tokens of the pattern written out of "doc/grammars/lexemes.pp3", + * ending with TOKEN_END. + * + * The last token carries what the parsers read along: keep the tokens + * together when handing them over to a {@see TokenIterator}. + * + * @return list, 4?: list}> */ public function tokenize(string $s): array { - if ($this->regexp === null) { - $this->regexp = $this->generateRegexp(); - } - - // PREG_PATTERN_ORDER, not PREG_SET_ORDER: it collects the whole PHPDoc - // into two arrays instead of allocating one array per token. This only - // pays off while the token patterns have no capturing groups, because - // every group would get an array of its own, one entry per token. - preg_match_all($this->regexp, $s, $matches); - - $values = $matches[0]; - if ($values === []) { - return [['', self::TOKEN_END, 1]]; - } - - $marks = $matches['MARK']; - - $tokens = []; - $line = 1; - foreach ($values as $i => $value) { - $type = (int) $marks[$i]; - $tokens[] = [$value, $type, $line]; - if ($type !== self::TOKEN_PHPDOC_EOL) { - continue; - } - - $line++; - } - - $tokens[] = ['', self::TOKEN_END, $line]; - - return $tokens; - } - - private function generateRegexp(): string - { - // every group in here must be non-capturing, see tokenize() - $patterns = [ - self::TOKEN_HORIZONTAL_WS => '[\\x09\\x20]++', - - self::TOKEN_IDENTIFIER => '(?:[\\\\]?+[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF-]*+)++', - self::TOKEN_THIS_VARIABLE => '\\$this(?![0-9a-z_\\x80-\\xFF])', - self::TOKEN_VARIABLE => '\\$[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF]*+', - - // '&' followed by TOKEN_VARIADIC, TOKEN_VARIABLE, TOKEN_EQUAL, TOKEN_EQUAL or TOKEN_CLOSE_PARENTHESES - self::TOKEN_REFERENCE => '&(?=\\s*+(?:[,=)]|\\.\\.\\.|(?:\\$(?!this(?![0-9a-z_\\x80-\\xFF])))))', - self::TOKEN_UNION => '\\|', - self::TOKEN_INTERSECTION => '&', - self::TOKEN_NULLABLE => '\\?', - self::TOKEN_NEGATED => '!', - - self::TOKEN_OPEN_PARENTHESES => '\\(', - self::TOKEN_CLOSE_PARENTHESES => '\\)', - self::TOKEN_OPEN_ANGLE_BRACKET => '<', - self::TOKEN_CLOSE_ANGLE_BRACKET => '>', - self::TOKEN_OPEN_SQUARE_BRACKET => '\\[', - self::TOKEN_CLOSE_SQUARE_BRACKET => '\\]', - self::TOKEN_OPEN_CURLY_BRACKET => '\\{', - self::TOKEN_CLOSE_CURLY_BRACKET => '\\}', - - self::TOKEN_COMMA => ',', - self::TOKEN_COMMENT => '\/\/[^\\r\\n]*(?=\n|\r|\*/)', - self::TOKEN_VARIADIC => '\\.\\.\\.', - self::TOKEN_DOUBLE_COLON => '::', - self::TOKEN_DOUBLE_ARROW => '=>', - self::TOKEN_ARROW => '->', - self::TOKEN_EQUAL => '=', - self::TOKEN_COLON => ':', - - self::TOKEN_OPEN_PHPDOC => '/\\*\\*(?=\\s)\\x20?+', - self::TOKEN_CLOSE_PHPDOC => '\\*/', - self::TOKEN_PHPDOC_TAG => '@(?:[a-z][a-z0-9-\\\\]+:)?[a-z][a-z0-9-\\\\]*+', - self::TOKEN_DOCTRINE_TAG => '@[a-z_\\\\][a-z0-9_\:\\\\]*[a-z_][a-z0-9_]*', - self::TOKEN_PHPDOC_EOL => '\\r?+\\n[\\x09\\x20]*+(?:\\*(?!/)\\x20?+)?', - - self::TOKEN_FLOAT => '[+\-]?(?:(?:[0-9]++(?:_[0-9]++)*\\.[0-9]*+(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]*+(?:_[0-9]++)*\\.[0-9]++(?:_[0-9]++)*(?:e[+\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]++(?:_[0-9]++)*e[+\-]?[0-9]++(?:_[0-9]++)*))', - self::TOKEN_INTEGER => '[+\-]?(?:(?:0b[0-1]++(?:_[0-1]++)*)|(?:0o[0-7]++(?:_[0-7]++)*)|(?:0x[0-9a-f]++(?:_[0-9a-f]++)*)|(?:[0-9]++(?:_[0-9]++)*))', - self::TOKEN_SINGLE_QUOTED_STRING => '\'(?:\\\\[^\\r\\n]|[^\'\\r\\n\\\\])*+\'', - self::TOKEN_DOUBLE_QUOTED_STRING => '"(?:\\\\[^\\r\\n]|[^"\\r\\n\\\\])*+"', - self::TOKEN_DOCTRINE_ANNOTATION_STRING => '"(?:""|[^"])*+"', - - self::TOKEN_WILDCARD => '\\*', - - // anything but TOKEN_CLOSE_PHPDOC or TOKEN_HORIZONTAL_WS or TOKEN_EOL - self::TOKEN_OTHER => '(?:(?!\\*/)[^\\s])++', - ]; - - foreach ($patterns as $type => &$pattern) { - $pattern = '(?:' . $pattern . ')(*MARK:' . $type . ')'; - } - - return '~' . implode('|', $patterns) . '~Asi'; + return TokenStream::tokenize($s); } } diff --git a/src/Parser/AstBuilder.php b/src/Parser/AstBuilder.php index aaa8a042..2dadbec9 100644 --- a/src/Parser/AstBuilder.php +++ b/src/Parser/AstBuilder.php @@ -249,15 +249,27 @@ public function read(TokenIterator $tokens, string $rule, ?string $tag = null) $lexerTokens = $tokens->getTokens(); $index = $tokens->currentTokenIndex(); - $ids = []; - $indexes = []; - if ($tag !== null) { - // the value of a tag is read along with the tag it belongs to - $ids[] = TokenStream::tagId($tag); - $indexes[] = $index - 1; - } + $stream = TokenStream::fromTokens($lexerTokens, $index); + if ($stream !== null && $tag === null) { + [$ids, $indexes] = $stream; + } else { + $ids = []; + $indexes = []; + if ($tag !== null) { + // the value of a tag is read along with the tag it belongs to + $ids[] = TokenStream::tagId($tag); + $indexes[] = $index - 1; + } - TokenStream::create($lexerTokens, $index, $ids, $indexes); + if ($stream !== null) { + foreach ($stream[0] as $position => $id) { + $ids[] = $id; + $indexes[] = $stream[1][$position]; + } + } else { + TokenStream::create($lexerTokens, $index, $ids, $indexes); + } + } $previous = [$this->tokens, $this->ids, $this->indexes, $this->tag, $this->positions, $this->comments, $this->byteOffsets, $this->v, $this->n, $this->saveReading()]; diff --git a/src/Parser/Generated/GeneratedParser.php b/src/Parser/Generated/GeneratedParser.php index e82a1015..656e9db7 100644 --- a/src/Parser/Generated/GeneratedParser.php +++ b/src/Parser/Generated/GeneratedParser.php @@ -29,30 +29,39 @@ abstract class GeneratedParser public const RULES = ['PhpDoc' => 0, 'UnreadTagChild' => 10, 'PhpDocChild' => 189, 'KnownTag' => 190, 'Type' => 199, 'ConstantExpr' => 340]; /** @var array the identifier of each token */ - public const TOKENS = ['T_HORIZONTAL_WS' => 0, 'T_KEYWORD_CONTRAVARIANT' => 1, 'T_KEYWORD_COVARIANT' => 2, 'T_KEYWORD_NON_EMPTY_ARRAY' => 3, 'T_KEYWORD_NON_EMPTY_LIST' => 4, 'T_KEYWORD_SUPER' => 5, 'T_KEYWORD_OBJECT' => 6, 'T_KEYWORD_ARRAY' => 7, 'T_KEYWORD_LIST' => 8, 'T_KEYWORD_STATIC' => 9, 'T_KEYWORD_FROM' => 10, 'T_KEYWORD_NOT' => 11, 'T_KEYWORD_IS' => 12, 'T_KEYWORD_OF' => 13, 'T_KEYWORD_AS' => 14, 'T_KEYWORD_FALSE' => 15, 'T_KEYWORD_TRUE' => 16, 'T_KEYWORD_NULL' => 17, 'T_KEYWORD_ARRAY_ANY_CASE' => 18, 'T_FLOAT' => 19, 'T_INTEGER' => 20, 'T_SINGLE_QUOTED_STRING' => 21, 'T_DOUBLE_QUOTED_STRING' => 22, 'T_DOCTRINE_ANNOTATION_STRING' => 23, 'T_IDENTIFIER' => 24, 'T_THIS_VARIABLE' => 25, 'T_VARIABLE' => 26, 'T_REFERENCE' => 27, 'T_UNION' => 28, 'T_INTERSECTION' => 29, 'T_NULLABLE' => 30, 'T_NEGATED' => 31, 'T_OPEN_PARENTHESES' => 32, 'T_CLOSE_PARENTHESES' => 33, 'T_OPEN_ANGLE_BRACKET' => 34, 'T_CLOSE_ANGLE_BRACKET' => 35, 'T_OPEN_SQUARE_BRACKET' => 36, 'T_CLOSE_SQUARE_BRACKET' => 37, 'T_OPEN_CURLY_BRACKET' => 38, 'T_CLOSE_CURLY_BRACKET' => 39, 'T_COMMA' => 40, 'T_COMMENT' => 41, 'T_VARIADIC' => 42, 'T_DOUBLE_COLON' => 43, 'T_DOUBLE_ARROW' => 44, 'T_ARROW' => 45, 'T_EQUAL' => 46, 'T_COLON' => 47, 'T_WILDCARD' => 48, 'T_OPEN_PHPDOC' => 49, 'T_CLOSE_PHPDOC' => 50, 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE' => 51, 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE' => 52, 'T_TAG_PURE_UNLESS_PARAMETER_PASSED' => 53, 'T_TAG_PARAM_LATER_INVOKED_CALLABLE' => 54, 'T_TAG_PARAM_CLOSURE_THIS' => 55, 'T_TAG_REQUIRE_IMPLEMENTS' => 56, 'T_TAG_REQUIRE_EXTENDS' => 57, 'T_TAG_TYPE_ALIAS_IMPORT' => 58, 'T_TAG_ASSERT' => 59, 'T_TAG_SELF_OUT' => 60, 'T_TAG_SEALED' => 61, 'T_TAG_TEMPLATE' => 62, 'T_TAG_PROPERTY' => 63, 'T_TAG_IMPLEMENTS' => 64, 'T_TAG_DEPRECATED' => 65, 'T_TAG_TYPE_ALIAS' => 66, 'T_TAG_PARAM_OUT' => 67, 'T_TAG_EXTENDS' => 68, 'T_TAG_METHOD' => 69, 'T_TAG_RETURN' => 70, 'T_TAG_THROWS' => 71, 'T_TAG_PARAM' => 72, 'T_TAG_MIXIN' => 73, 'T_TAG_USE' => 74, 'T_TAG_VAR' => 75, 'T_PHPDOC_TAG_WS' => 76, 'T_PHPDOC_TAG' => 77, 'T_DOCTRINE_TAG_WS' => 78, 'T_DOCTRINE_TAG' => 79, 'T_PHPDOC_EOL' => 80, 'T_OTHER' => 81, 'T_OPEN_PARENTHESES_WS' => 82, 'T_OPEN_CURLY_BRACKET_WS' => 83, 'T_OPEN_SQUARE_BRACKET_WS' => 84, 'T_WILDCARD_WS' => 85, 'T_OPEN_ANGLE_BRACKET_HTML' => 86]; + public const TOKENS = ['T_HORIZONTAL_WS' => 0, 'T_KEYWORD_CONTRAVARIANT' => 1, 'T_KEYWORD_COVARIANT' => 2, 'T_KEYWORD_NON_EMPTY_ARRAY' => 3, 'T_KEYWORD_NON_EMPTY_LIST' => 4, 'T_KEYWORD_SUPER' => 5, 'T_KEYWORD_OBJECT' => 6, 'T_KEYWORD_ARRAY' => 7, 'T_KEYWORD_LIST' => 8, 'T_KEYWORD_STATIC' => 9, 'T_KEYWORD_FROM' => 10, 'T_KEYWORD_NOT' => 11, 'T_KEYWORD_IS' => 12, 'T_KEYWORD_OF' => 13, 'T_KEYWORD_AS' => 14, 'T_KEYWORD_FALSE' => 15, 'T_KEYWORD_TRUE' => 16, 'T_KEYWORD_NULL' => 17, 'T_KEYWORD_ARRAY_ANY_CASE' => 18, 'T_FLOAT' => 19, 'T_INTEGER' => 20, 'T_SINGLE_QUOTED_STRING' => 21, 'T_DOUBLE_QUOTED_STRING' => 22, 'T_DOCTRINE_ANNOTATION_STRING' => 23, 'T_IDENTIFIER' => 24, 'T_THIS_VARIABLE' => 25, 'T_VARIABLE' => 26, 'T_REFERENCE' => 27, 'T_UNION' => 28, 'T_INTERSECTION' => 29, 'T_NULLABLE' => 30, 'T_NEGATED' => 31, 'T_OPEN_PARENTHESES' => 32, 'T_CLOSE_PARENTHESES' => 33, 'T_OPEN_ANGLE_BRACKET' => 34, 'T_CLOSE_ANGLE_BRACKET' => 35, 'T_OPEN_SQUARE_BRACKET' => 36, 'T_CLOSE_SQUARE_BRACKET' => 37, 'T_OPEN_CURLY_BRACKET' => 38, 'T_CLOSE_CURLY_BRACKET' => 39, 'T_COMMA' => 40, 'T_COMMENT' => 41, 'T_VARIADIC' => 42, 'T_DOUBLE_COLON' => 43, 'T_DOUBLE_ARROW' => 44, 'T_ARROW' => 45, 'T_EQUAL' => 46, 'T_COLON' => 47, 'T_OPEN_PHPDOC' => 48, 'T_CLOSE_PHPDOC' => 49, 'T_WILDCARD' => 50, 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE' => 51, 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE' => 52, 'T_TAG_PURE_UNLESS_PARAMETER_PASSED' => 53, 'T_TAG_PARAM_LATER_INVOKED_CALLABLE' => 54, 'T_TAG_PARAM_CLOSURE_THIS' => 55, 'T_TAG_REQUIRE_IMPLEMENTS' => 56, 'T_TAG_REQUIRE_EXTENDS' => 57, 'T_TAG_TYPE_ALIAS_IMPORT' => 58, 'T_TAG_ASSERT' => 59, 'T_TAG_SELF_OUT' => 60, 'T_TAG_SEALED' => 61, 'T_TAG_TEMPLATE' => 62, 'T_TAG_PROPERTY' => 63, 'T_TAG_IMPLEMENTS' => 64, 'T_TAG_DEPRECATED' => 65, 'T_TAG_TYPE_ALIAS' => 66, 'T_TAG_PARAM_OUT' => 67, 'T_TAG_EXTENDS' => 68, 'T_TAG_METHOD' => 69, 'T_TAG_RETURN' => 70, 'T_TAG_THROWS' => 71, 'T_TAG_PARAM' => 72, 'T_TAG_MIXIN' => 73, 'T_TAG_USE' => 74, 'T_TAG_VAR' => 75, 'T_PHPDOC_TAG_WS' => 76, 'T_PHPDOC_TAG' => 77, 'T_DOCTRINE_TAG_WS' => 78, 'T_DOCTRINE_TAG' => 79, 'T_PHPDOC_EOL' => 80, 'T_OTHER' => 81, 'T_OPEN_PARENTHESES_WS' => 82, 'T_OPEN_CURLY_BRACKET_WS' => 83, 'T_OPEN_SQUARE_BRACKET_WS' => 84, 'T_WILDCARD_WS' => 85, 'T_OPEN_ANGLE_BRACKET_HTML' => 86]; /** @var array the name each token is expected by */ - public const EXPECTATIONS = ['T_HORIZONTAL_WS', 'T_KEYWORD_CONTRAVARIANT', 'T_KEYWORD_COVARIANT', 'T_KEYWORD_NON_EMPTY_ARRAY', 'T_KEYWORD_NON_EMPTY_LIST', 'T_KEYWORD_SUPER', 'T_KEYWORD_OBJECT', 'T_KEYWORD_ARRAY', 'T_KEYWORD_LIST', 'T_KEYWORD_STATIC', 'T_KEYWORD_FROM', 'T_KEYWORD_NOT', 'T_KEYWORD_IS', 'T_KEYWORD_OF', 'T_KEYWORD_AS', 'T_KEYWORD_FALSE', 'T_KEYWORD_TRUE', 'T_KEYWORD_NULL', 'T_KEYWORD_ARRAY_ANY_CASE', 'T_FLOAT', 'T_INTEGER', 'T_SINGLE_QUOTED_STRING', 'T_DOUBLE_QUOTED_STRING', 'T_DOCTRINE_ANNOTATION_STRING', 'T_IDENTIFIER', 'T_THIS_VARIABLE', 'T_VARIABLE', 'T_REFERENCE', 'T_UNION', 'T_INTERSECTION', 'T_NULLABLE', 'T_NEGATED', 'T_OPEN_PARENTHESES', 'T_CLOSE_PARENTHESES', 'T_OPEN_ANGLE_BRACKET', 'T_CLOSE_ANGLE_BRACKET', 'T_OPEN_SQUARE_BRACKET', 'T_CLOSE_SQUARE_BRACKET', 'T_OPEN_CURLY_BRACKET', 'T_CLOSE_CURLY_BRACKET', 'T_COMMA', 'T_COMMENT', 'T_VARIADIC', 'T_DOUBLE_COLON', 'T_DOUBLE_ARROW', 'T_ARROW', 'T_EQUAL', 'T_COLON', 'T_WILDCARD', 'T_OPEN_PHPDOC', 'T_CLOSE_PHPDOC', 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE', 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE', 'T_TAG_PURE_UNLESS_PARAMETER_PASSED', 'T_TAG_PARAM_LATER_INVOKED_CALLABLE', 'T_TAG_PARAM_CLOSURE_THIS', 'T_TAG_REQUIRE_IMPLEMENTS', 'T_TAG_REQUIRE_EXTENDS', 'T_TAG_TYPE_ALIAS_IMPORT', 'T_TAG_ASSERT', 'T_TAG_SELF_OUT', 'T_TAG_SEALED', 'T_TAG_TEMPLATE', 'T_TAG_PROPERTY', 'T_TAG_IMPLEMENTS', 'T_TAG_DEPRECATED', 'T_TAG_TYPE_ALIAS', 'T_TAG_PARAM_OUT', 'T_TAG_EXTENDS', 'T_TAG_METHOD', 'T_TAG_RETURN', 'T_TAG_THROWS', 'T_TAG_PARAM', 'T_TAG_MIXIN', 'T_TAG_USE', 'T_TAG_VAR', 'T_PHPDOC_TAG_WS', 'T_PHPDOC_TAG', 'T_DOCTRINE_TAG_WS', 'T_DOCTRINE_TAG', 'T_PHPDOC_EOL', 'T_OTHER', 'T_OPEN_PARENTHESES_WS', 'T_OPEN_CURLY_BRACKET_WS', 'T_OPEN_SQUARE_BRACKET_WS', 'T_WILDCARD_WS', 'T_OPEN_ANGLE_BRACKET_HTML', '/[^\\s]++/']; + public const EXPECTATIONS = ['T_HORIZONTAL_WS', 'T_KEYWORD_CONTRAVARIANT', 'T_KEYWORD_COVARIANT', 'T_KEYWORD_NON_EMPTY_ARRAY', 'T_KEYWORD_NON_EMPTY_LIST', 'T_KEYWORD_SUPER', 'T_KEYWORD_OBJECT', 'T_KEYWORD_ARRAY', 'T_KEYWORD_LIST', 'T_KEYWORD_STATIC', 'T_KEYWORD_FROM', 'T_KEYWORD_NOT', 'T_KEYWORD_IS', 'T_KEYWORD_OF', 'T_KEYWORD_AS', 'T_KEYWORD_FALSE', 'T_KEYWORD_TRUE', 'T_KEYWORD_NULL', 'T_KEYWORD_ARRAY_ANY_CASE', 'T_FLOAT', 'T_INTEGER', 'T_SINGLE_QUOTED_STRING', 'T_DOUBLE_QUOTED_STRING', 'T_DOCTRINE_ANNOTATION_STRING', 'T_IDENTIFIER', 'T_THIS_VARIABLE', 'T_VARIABLE', 'T_REFERENCE', 'T_UNION', 'T_INTERSECTION', 'T_NULLABLE', 'T_NEGATED', 'T_OPEN_PARENTHESES', 'T_CLOSE_PARENTHESES', 'T_OPEN_ANGLE_BRACKET', 'T_CLOSE_ANGLE_BRACKET', 'T_OPEN_SQUARE_BRACKET', 'T_CLOSE_SQUARE_BRACKET', 'T_OPEN_CURLY_BRACKET', 'T_CLOSE_CURLY_BRACKET', 'T_COMMA', 'T_COMMENT', 'T_VARIADIC', 'T_DOUBLE_COLON', 'T_DOUBLE_ARROW', 'T_ARROW', 'T_EQUAL', 'T_COLON', 'T_OPEN_PHPDOC', 'T_CLOSE_PHPDOC', 'T_WILDCARD', 'T_TAG_PARAM_IMMEDIATELY_INVOKED_CALLABLE', 'T_TAG_PURE_UNLESS_CALLABLE_IS_IMPURE', 'T_TAG_PURE_UNLESS_PARAMETER_PASSED', 'T_TAG_PARAM_LATER_INVOKED_CALLABLE', 'T_TAG_PARAM_CLOSURE_THIS', 'T_TAG_REQUIRE_IMPLEMENTS', 'T_TAG_REQUIRE_EXTENDS', 'T_TAG_TYPE_ALIAS_IMPORT', 'T_TAG_ASSERT', 'T_TAG_SELF_OUT', 'T_TAG_SEALED', 'T_TAG_TEMPLATE', 'T_TAG_PROPERTY', 'T_TAG_IMPLEMENTS', 'T_TAG_DEPRECATED', 'T_TAG_TYPE_ALIAS', 'T_TAG_PARAM_OUT', 'T_TAG_EXTENDS', 'T_TAG_METHOD', 'T_TAG_RETURN', 'T_TAG_THROWS', 'T_TAG_PARAM', 'T_TAG_MIXIN', 'T_TAG_USE', 'T_TAG_VAR', 'T_PHPDOC_TAG_WS', 'T_PHPDOC_TAG', 'T_DOCTRINE_TAG_WS', 'T_DOCTRINE_TAG', 'T_PHPDOC_EOL', 'T_OTHER', 'T_OPEN_PARENTHESES_WS', 'T_OPEN_CURLY_BRACKET_WS', 'T_OPEN_SQUARE_BRACKET_WS', 'T_WILDCARD_WS', 'T_OPEN_ANGLE_BRACKET_HTML', '/[^\\s]++/']; + + /** the pattern of the lexer, marking each token by its identifier */ + public const LEXER_PATTERN = '~(?:[\\x09\\x20]++)(*MARK:0)|(?:[+\\-]?(?:(?:[0-9]++(?:_[0-9]++)*\\.[0-9]*+(?:_[0-9]++)*(?:e[+\\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]*+(?:_[0-9]++)*\\.[0-9]++(?:_[0-9]++)*(?:e[+\\-]?[0-9]++(?:_[0-9]++)*)?)|(?:[0-9]++(?:_[0-9]++)*e[+\\-]?[0-9]++(?:_[0-9]++)*)))(*MARK:19)|(?:[+\\-]?(?:(?:0b[0-1]++(?:_[0-1]++)*)|(?:0o[0-7]++(?:_[0-7]++)*)|(?:0x[0-9a-f]++(?:_[0-9a-f]++)*)|(?:[0-9]++(?:_[0-9]++)*)))(*MARK:20)|(?:\'(?:\\\\[^\\r\\n]|[^\'\\r\\n\\\\])*+\')(*MARK:21)|(?:"(?:\\\\[^\\r\\n]|[^"\\r\\n\\\\])*+")(*MARK:22)|(?:"(?:""|[^"])*+")(*MARK:23)|(?:(?:[\\\\]?+[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF-]*+)++)(*MARK:24)|(?:\\$this(?![0-9a-z_\\x80-\\xFF]))(*MARK:25)|(?:\\$[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF]*+)(*MARK:26)|(?:&(?=\\s*+(?:[,=)]|\\.\\.\\.|(?:\\$(?!this(?![0-9a-z_\\x80-\\xFF]))))))(*MARK:27)|(?:\\|)(*MARK:28)|(?:&)(*MARK:29)|(?:\\?)(*MARK:30)|(?:!)(*MARK:31)|(?:\\()(*MARK:32)|(?:\\))(*MARK:33)|(?:<)(*MARK:34)|(?:>)(*MARK:35)|(?:\\[)(*MARK:36)|(?:\\])(*MARK:37)|(?:\\{)(*MARK:38)|(?:\\})(*MARK:39)|(?:,)(*MARK:40)|(?://[^\\r\\n]*(?=\\n|\\r|\\*/))(*MARK:41)|(?:\\.\\.\\.)(*MARK:42)|(?:::)(*MARK:43)|(?:=>)(*MARK:44)|(?:->)(*MARK:45)|(?:=)(*MARK:46)|(?::)(*MARK:47)|(?:/\\*\\*(?=\\s)\\x20?+)(*MARK:48)|(?:\\*/)(*MARK:49)|(?:\\*)(*MARK:50)|(?:@(?:[a-z][a-z0-9-\\\\]+:)?[a-z][a-z0-9-\\\\]*+)(*MARK:77)|(?:@[a-z_\\\\][a-z0-9_:\\\\]*[a-z_][a-z0-9_]*)(*MARK:79)|(?:\\r?+\\n[\\x09\\x20]*+(?:\\*(?!/)\\x20?+)?)(*MARK:80)|(?:(?:(?!\\*/)[^\\s])++)(*MARK:81)~Asi'; + + /** @var array the type of the lexer each token it reads is, by the identifier */ + public const LEXER_TYPES = [0 => 27, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23, 24 => 24, 25 => 25, 26 => 26, 27 => 0, 28 => 1, 29 => 2, 30 => 3, 31 => 35, 32 => 4, 33 => 5, 34 => 6, 35 => 7, 36 => 8, 37 => 9, 38 => 33, 39 => 34, 40 => 10, 41 => 37, 42 => 11, 43 => 12, 44 => 13, 45 => 36, 46 => 14, 47 => 31, 48 => 15, 49 => 16, 50 => 32, 77 => 17, 79 => 18, 80 => 28, 81 => 29]; private const T00b73ddb = [7=>true,15=>true,16=>true,17=>true,18=>true]; private const T02ca7bff = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,32=>true,34=>true,82=>true,86=>true]; - private const T042ccaad = [50=>true,80=>true]; private const T05cf281c = [1=>true,2=>true]; + private const T0979f8dc = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,50=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; private const T1ad6c327 = [7=>true,18=>true]; private const T1e2ed78c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,22=>true,23=>true,24=>true,38=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,83=>true]; private const T1e81050f = [7=>true,18=>true,36=>true,84=>true]; private const T3bf4df75 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; + private const T4d756b3a = [50=>true,85=>true]; private const T7dfbf2bf = [22=>true,23=>true]; private const T24d0f25b = [21=>true,22=>true]; private const T29c7f960 = [25=>true,26=>true]; private const T34c34eee = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,30=>true,32=>true,82=>true]; private const T46ee5f48 = [78=>true,79=>true]; private const T50fd39f8 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,42=>true,82=>true]; + private const T53b29bff = [49=>true,80=>true]; + private const T61cd0e44 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,50=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; private const T69bf8cc4 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,36=>true,84=>true]; private const T83e30518 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true]; + private const T195b3f33 = [49=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; private const T553dc07b = [26=>true,27=>true,42=>true]; private const T648acf56 = [28=>true,29=>true,32=>true,34=>true,36=>true,41=>true,43=>true,80=>true,82=>true,84=>true]; - private const T796d0ca3 = [50=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; private const T885cd349 = [36=>true,84=>true]; private const T977f027a = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,32=>true,82=>true]; private const T1490fe7f = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,38=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,83=>true]; @@ -63,33 +72,30 @@ abstract class GeneratedParser private const T7726a0df = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,20=>true,21=>true,22=>true,23=>true,24=>true]; private const T8458d590 = [28=>true,29=>true,41=>true,80=>true]; private const T34048a70 = [38=>true,83=>true]; - private const T52939f91 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,49=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; private const T942497bd = [76=>true,77=>true,78=>true,79=>true]; - private const T1895157b = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,48=>true,85=>true]; private const T1921405e = [1=>true,2=>true,5=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true]; private const T9373805c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; - private const T88030367 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,25=>true,26=>true,27=>true,28=>true,29=>true,30=>true,31=>true,32=>true,33=>true,34=>true,35=>true,36=>true,37=>true,38=>true,39=>true,40=>true,41=>true,42=>true,43=>true,44=>true,45=>true,46=>true,47=>true,48=>true,49=>true,81=>true,82=>true,83=>true,84=>true,85=>true,86=>true]; private const T96867045 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,24=>true]; private const Ta8d79561 = [3=>true,4=>true,8=>true]; private const Ta7068161 = [46=>true,47=>true]; private const Tb3a20a39 = [76=>true,78=>true]; + private const Tb3cd2a63 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,50=>true,82=>true,85=>true]; private const Tb46fb4f7 = [34=>true,86=>true]; - private const Tba8cd23a = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,48=>true,82=>true,85=>true]; private const Tc8c984b6 = [28=>true,29=>true]; private const Tc8cfa1df = [32=>true,82=>true]; private const Tcd64b9c0 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,26=>true,30=>true,32=>true,82=>true]; private const Tce49e0fc = [51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true]; private const Tce797685 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,20=>true,21=>true,22=>true,24=>true]; private const Td08a6883 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,24=>true]; + private const Td08f0236 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,50=>true,85=>true]; private const Td8017923 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,21=>true,22=>true,24=>true]; private const Tf4b693bf = [51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; private const Tf6aec6a4 = [76=>true,77=>true]; - private const Tf80a1c64 = [48=>true,85=>true]; private const Tf86de613 = [32=>true,34=>true,82=>true,86=>true]; private const Tfc0ac6dd = [3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,82=>true]; /** the tokens each rule is expected to begin with */ - private const EXPECTED = [0=>[49],1=>[49],3=>[80],7=>[50],8=>[76,77,78,79],9=>[76,77,78,79],10=>[76,77,78,79],11=>[76,77],12=>[76,77],13=>[77],14=>[76],16=>[32,82],17=>[32],18=>[82],21=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,81,82,83,84,85,86],22=>[24],23=>[12],24=>[11],25=>[9],26=>[10],27=>[13],28=>[14],29=>[5],30=>[2],31=>[1],32=>[7],33=>[18],34=>[8],35=>[3],36=>[4],37=>[6],38=>[16],39=>[15],40=>[17],41=>[19],42=>[20],43=>[21],44=>[22],45=>[23],46=>[25],47=>[26],48=>[27],49=>[28],50=>[29],51=>[30],52=>[31],53=>[33],54=>[34],55=>[86],56=>[35],57=>[36],58=>[84],59=>[37],60=>[38],61=>[83],62=>[39],63=>[40],64=>[41],65=>[42],66=>[43],67=>[44],68=>[45],69=>[46],70=>[47],71=>[48],72=>[85],73=>[81],74=>[76,78],76=>[50,80],77=>[50,80],78=>[80],79=>[80],81=>[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],82=>[79],83=>[78],84=>[72],85=>[51],86=>[54],87=>[55],88=>[52],89=>[53],90=>[75],91=>[70],92=>[71],93=>[73],94=>[57],95=>[56],96=>[61],97=>[65],98=>[63],99=>[69],100=>[62],101=>[68],102=>[64],103=>[74],104=>[66],105=>[58],106=>[59],107=>[60],108=>[67],109=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,81,82,83,84,85,86],110=>[80],111=>[80],113=>[80],114=>[80],115=>[80],116=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],118=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],119=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],121=>[76,78],123=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],124=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],128=>[80],129=>[80],130=>[80],131=>[80],132=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],133=>[76,78],134=>[76,77,78,79],135=>[78,79],136=>[78,79],137=>[32,82],138=>[32,82],141=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],142=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],143=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],144=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],145=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],146=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],148=>[38,83],149=>[38,83],151=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],152=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],153=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],154=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],155=>[22,23],156=>[22],158=>[22,23],159=>[22,23],160=>[1,2,3,4,5,6,8,9,10,11,12,13,14,24],162=>[7,15,16,17,18],163=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,48,85],164=>[48],166=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],168=>[48,85],169=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],171=>[46,47],172=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],173=>[19],174=>[20],176=>[40],177=>[40],178=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,39,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],179=>[39],180=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],182=>[40],183=>[40],184=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,33,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],185=>[33],186=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],187=>[76,77],189=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],190=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],191=>[72],192=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,30,32,42,82],193=>[26,27,42],194=>[26,27,42],195=>[26,27,42],198=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],199=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],200=>[30],201=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],202=>[32,82],204=>[41,80],205=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,30,32,82],206=>[26],208=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],209=>[12],210=>[12],213=>[28,29],214=>[28],215=>[28],216=>[28],218=>[29],219=>[29],220=>[29],223=>[36,84],224=>[36,84],225=>[36],227=>[36,84],228=>[36,84],229=>[25],230=>[7],231=>[38],233=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],234=>[42],235=>[34,86],236=>[34,86],237=>[34,86],238=>[34,86],240=>[40],243=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],244=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],245=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],246=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],247=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],249=>[43],252=>[40],254=>[41],255=>[3,4,8],256=>[3,4,8],257=>[38],259=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],260=>[42],261=>[34,86],262=>[34,86],263=>[34,86],264=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],266=>[40],267=>[6],268=>[38],270=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],271=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],272=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],274=>[40],275=>[40],276=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,39],277=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],278=>[3,4,6,7,8],279=>[3,4,6,7,8],281=>[32,34,36,82,84],282=>[34],283=>[34],284=>[34],285=>[34],286=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],287=>[13,14],288=>[13],289=>[14],293=>[5],294=>[5],296=>[46],297=>[46],300=>[40],301=>[40],302=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,35],303=>[35],304=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],306=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],307=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],311=>[40],312=>[40],313=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,33,82],314=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],315=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],316=>[32,82],317=>[3,4,6,7,8],318=>[34,36,84,86],319=>[34,86],320=>[34,86],321=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,48,82,85],322=>[1,2],323=>[1,2],324=>[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],327=>[40],328=>[40],329=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,35,48,82,85],330=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,48,82,85],331=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],332=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],333=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],335=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],337=>[7,18,36,84],338=>[7,18],339=>[7,18],340=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],341=>[19],342=>[20],343=>[21,22],344=>[16],345=>[15],346=>[17],347=>[7,18],349=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],350=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],351=>[44],352=>[44],355=>[40],356=>[40],357=>[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,24],360=>[43],361=>[36,84],362=>[34],363=>[34],364=>[32,82],366=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],367=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],368=>[28,29,41,80],369=>[28,29,41,80],370=>[28,29],371=>[28],372=>[28],373=>[28],376=>[28],377=>[29],378=>[29],379=>[29],382=>[29],384=>[75],385=>[25,26],386=>[25,26],387=>[25,26],390=>[70],391=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],392=>[71],393=>[73],394=>[57],395=>[56],396=>[61],397=>[60],398=>[63],399=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],400=>[67],401=>[55],402=>[51],403=>[26],404=>[54],405=>[52],406=>[53],407=>[65],408=>[69],409=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],410=>[9],412=>[28,29,32,34,36,41,43,80,82,84],413=>[28,29,41,80],414=>[28,29],415=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,32,34,82,86],416=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],417=>[32,34,82,86],418=>[34,86],419=>[34,86],421=>[40],422=>[40],424=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],425=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],426=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],427=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],428=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],429=>[46],430=>[46],431=>[26,27,42],433=>[40],434=>[40],435=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],436=>[62],437=>[68],438=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],439=>[64],440=>[74],441=>[66],442=>[66],443=>[58],444=>[14],445=>[14],446=>[59],448=>[25,26],449=>[45],450=>[45],451=>[32,82],452=>[32,82],454=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],458=>[50,80],459=>[50]]; + private const EXPECTED = [0=>[48],1=>[48],3=>[80],7=>[49],8=>[76,77,78,79],9=>[76,77,78,79],10=>[76,77,78,79],11=>[76,77],12=>[76,77],13=>[77],14=>[76],16=>[32,82],17=>[32],18=>[82],21=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,81,82,83,84,85,86],22=>[24],23=>[12],24=>[11],25=>[9],26=>[10],27=>[13],28=>[14],29=>[5],30=>[2],31=>[1],32=>[7],33=>[18],34=>[8],35=>[3],36=>[4],37=>[6],38=>[16],39=>[15],40=>[17],41=>[19],42=>[20],43=>[21],44=>[22],45=>[23],46=>[25],47=>[26],48=>[27],49=>[28],50=>[29],51=>[30],52=>[31],53=>[33],54=>[34],55=>[86],56=>[35],57=>[36],58=>[84],59=>[37],60=>[38],61=>[83],62=>[39],63=>[40],64=>[41],65=>[42],66=>[43],67=>[44],68=>[45],69=>[46],70=>[47],71=>[50],72=>[85],73=>[81],74=>[76,78],76=>[49,80],77=>[49,80],78=>[80],79=>[80],81=>[49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],82=>[79],83=>[78],84=>[72],85=>[51],86=>[54],87=>[55],88=>[52],89=>[53],90=>[75],91=>[70],92=>[71],93=>[73],94=>[57],95=>[56],96=>[61],97=>[65],98=>[63],99=>[69],100=>[62],101=>[68],102=>[64],103=>[74],104=>[66],105=>[58],106=>[59],107=>[60],108=>[67],109=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,81,82,83,84,85,86],110=>[80],111=>[80],113=>[80],114=>[80],115=>[80],116=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],118=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],119=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],121=>[76,78],123=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],124=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],128=>[80],129=>[80],130=>[80],131=>[80],132=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],133=>[76,78],134=>[76,77,78,79],135=>[78,79],136=>[78,79],137=>[32,82],138=>[32,82],141=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],142=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],143=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],144=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],145=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],146=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],148=>[38,83],149=>[38,83],151=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],152=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],153=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],154=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],155=>[22,23],156=>[22],158=>[22,23],159=>[22,23],160=>[1,2,3,4,5,6,8,9,10,11,12,13,14,24],162=>[7,15,16,17,18],163=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,50,85],164=>[50],166=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],168=>[50,85],169=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],171=>[46,47],172=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],173=>[19],174=>[20],176=>[40],177=>[40],178=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,39,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],179=>[39],180=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],182=>[40],183=>[40],184=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,33,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],185=>[33],186=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],187=>[76,77],189=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],190=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],191=>[72],192=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,30,32,42,82],193=>[26,27,42],194=>[26,27,42],195=>[26,27,42],198=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],199=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],200=>[30],201=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],202=>[32,82],204=>[41,80],205=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,30,32,82],206=>[26],208=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],209=>[12],210=>[12],213=>[28,29],214=>[28],215=>[28],216=>[28],218=>[29],219=>[29],220=>[29],223=>[36,84],224=>[36,84],225=>[36],227=>[36,84],228=>[36,84],229=>[25],230=>[7],231=>[38],233=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],234=>[42],235=>[34,86],236=>[34,86],237=>[34,86],238=>[34,86],240=>[40],243=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],244=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],245=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],246=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],247=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],249=>[43],252=>[40],254=>[41],255=>[3,4,8],256=>[3,4,8],257=>[38],259=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],260=>[42],261=>[34,86],262=>[34,86],263=>[34,86],264=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],266=>[40],267=>[6],268=>[38],270=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],271=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],272=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],274=>[40],275=>[40],276=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,39],277=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],278=>[3,4,6,7,8],279=>[3,4,6,7,8],281=>[32,34,36,82,84],282=>[34],283=>[34],284=>[34],285=>[34],286=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],287=>[13,14],288=>[13],289=>[14],293=>[5],294=>[5],296=>[46],297=>[46],300=>[40],301=>[40],302=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,35],303=>[35],304=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],306=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],307=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],311=>[40],312=>[40],313=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,33,82],314=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],315=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],316=>[32,82],317=>[3,4,6,7,8],318=>[34,36,84,86],319=>[34,86],320=>[34,86],321=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,50,82,85],322=>[1,2],323=>[1,2],324=>[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],327=>[40],328=>[40],329=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,35,50,82,85],330=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,50,82,85],331=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],332=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],333=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],335=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],337=>[7,18,36,84],338=>[7,18],339=>[7,18],340=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],341=>[19],342=>[20],343=>[21,22],344=>[16],345=>[15],346=>[17],347=>[7,18],349=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],350=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],351=>[44],352=>[44],355=>[40],356=>[40],357=>[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,24],360=>[43],361=>[36,84],362=>[34],363=>[34],364=>[32,82],366=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],367=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],368=>[28,29,41,80],369=>[28,29,41,80],370=>[28,29],371=>[28],372=>[28],373=>[28],376=>[28],377=>[29],378=>[29],379=>[29],382=>[29],384=>[75],385=>[25,26],386=>[25,26],387=>[25,26],390=>[70],391=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],392=>[71],393=>[73],394=>[57],395=>[56],396=>[61],397=>[60],398=>[63],399=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],400=>[67],401=>[55],402=>[51],403=>[26],404=>[54],405=>[52],406=>[53],407=>[65],408=>[69],409=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],410=>[9],412=>[28,29,32,34,36,41,43,80,82,84],413=>[28,29,41,80],414=>[28,29],415=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,32,34,82,86],416=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],417=>[32,34,82,86],418=>[34,86],419=>[34,86],421=>[40],422=>[40],424=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],425=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],426=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],427=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],428=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],429=>[46],430=>[46],431=>[26,27,42],433=>[40],434=>[40],435=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],436=>[62],437=>[68],438=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],439=>[64],440=>[74],441=>[66],442=>[66],443=>[58],444=>[14],445=>[14],446=>[59],448=>[25,26],449=>[45],450=>[45],451=>[32,82],452=>[32,82],454=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],458=>[49,80],459=>[49]]; /** @var array the identifier of the token at each position, the last one being -1 */ protected array $ids = []; @@ -544,7 +550,7 @@ protected function parseRule(int $rule, int $position, bool $build): bool private function b0(): bool { - if (!($this->ids[$this->p] === 49)) { + if (!($this->ids[$this->p] === 48)) { if ($this->p > $this->f) { $this->rec(0); } @@ -554,7 +560,7 @@ private function b0(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 49)) { + if (!($this->ids[$this->p] === 48)) { if ($this->p >= $this->f) { $this->rec(1); } @@ -570,7 +576,7 @@ private function b0(): bool if (!$this->b5()) { goto n2;} n2: - if (!($this->ids[$this->p] === 50)) { + if (!($this->ids[$this->p] === 49)) { if ($this->p >= $this->f) { $this->rec(7); } @@ -596,8 +602,8 @@ private function b5(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (($this->ids[$this->p] === 50)) { - if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 49)) { + if (($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -616,8 +622,8 @@ private function b5(): bool $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; - if (($this->ids[$this->p] === 50)) { - if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 49)) { + if (($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -669,8 +675,8 @@ private function b8(): bool switch ($this->ids[$this->p]) { default: break; - case 50: - if (!($this->ids[$this->p] === 50)) { + case 49: + if (!($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->rec(7); } @@ -752,8 +758,8 @@ private function b8(): bool switch ($this->ids[$this->p]) { default: break; - case 50: - if (!($this->ids[$this->p] === 50)) { + case 49: + if (!($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->rec(7); } @@ -898,7 +904,7 @@ private function b11(): bool $o4 = $this->p; while (true) { $b4 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b4 > $this->f) { $this->rec(21); } @@ -939,7 +945,7 @@ private function b125(): bool $o3 = $this->p; while (true) { $b3 = $this->p; - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(116); } @@ -1085,7 +1091,7 @@ private function b135(): bool $o4 = $this->p; while (true) { $b4 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b4 > $this->f) { $this->rec(21); } @@ -2614,7 +2620,7 @@ private function b160(): bool private function b163(): bool { - if (!isset(self::T1895157b[$this->ids[$this->p]])) { + if (!isset(self::Td08f0236[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(163); } @@ -2665,7 +2671,7 @@ private function b163(): bool goto f710;} $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->b168()) { goto n711;} n711: @@ -2682,9 +2688,9 @@ private function b163(): bool goto a708; n709: break; - case 48: + case 50: // b164 - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p > $this->f) { $this->rec(164); } @@ -2694,7 +2700,7 @@ private function b163(): bool $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p >= $this->f) { $this->rec(71); } @@ -2744,7 +2750,7 @@ private function b163(): bool private function b164(): bool { - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p > $this->f) { $this->rec(164); } @@ -2754,7 +2760,7 @@ private function b164(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p >= $this->f) { $this->rec(71); } @@ -2800,7 +2806,7 @@ private function b166(): bool goto f952;} $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->b168()) { goto n953;} n953: @@ -2820,7 +2826,7 @@ private function b166(): bool private function b168(): bool { - if (!isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(168); } @@ -2833,7 +2839,7 @@ private function b168(): bool switch ($this->ids[$this->p]) { default: break; - case 48: + case 50: if (!$this->b164()) { goto n951;} goto a950; @@ -3293,7 +3299,7 @@ private function b187(): bool $o4 = $this->p; while (true) { $b4 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b4 > $this->f) { $this->rec(21); } @@ -10042,7 +10048,7 @@ private function b320(): bool private function b321(): bool { - if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(321); } @@ -10144,7 +10150,7 @@ private function b321(): bool goto a1026; n1029: break; - case 48: + case 50: $this->v[$this->n++] = $this->token($this->p++); goto a1026; break; @@ -10298,11 +10304,11 @@ private function b329(): bool case 25: case 30: case 32: - case 48: + case 50: case 82: case 85: // b330 - if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(330); } @@ -13524,7 +13530,7 @@ private function b441(): bool } if (!$this->b199()) { goto f293;} - if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } @@ -13955,7 +13961,7 @@ private function b451(): bool private function s0(): bool { - if (!($this->ids[$this->p] === 49)) { + if (!($this->ids[$this->p] === 48)) { if ($this->p > $this->f) { $this->rec(0); } @@ -13963,7 +13969,7 @@ private function s0(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 49)) { + if (!($this->ids[$this->p] === 48)) { if ($this->p >= $this->f) { $this->rec(1); } @@ -13978,8 +13984,8 @@ private function s0(): bool } // s5 $o2 = $this->p; - if (($this->ids[$this->p] === 50)) { - if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 49)) { + if (($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -13994,8 +14000,8 @@ private function s0(): bool $b3 = $this->p; // s461 $o4 = $this->p; - if (($this->ids[$this->p] === 50)) { - if (($this->ids[$this->p] === 50)) { + if (($this->ids[$this->p] === 49)) { + if (($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -14020,7 +14026,7 @@ private function s0(): bool goto n4; k5: n4: - if (!($this->ids[$this->p] === 50)) { + if (!($this->ids[$this->p] === 49)) { if ($this->p >= $this->f) { $this->rec(7); } @@ -14051,8 +14057,8 @@ private function s8(): bool switch ($this->ids[$this->p]) { default: break; - case 50: - if (!($this->ids[$this->p] === 50)) { + case 49: + if (!($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->rec(7); } @@ -14122,8 +14128,8 @@ private function s8(): bool switch ($this->ids[$this->p]) { default: break; - case 50: - if (!($this->ids[$this->p] === 50)) { + case 49: + if (!($this->ids[$this->p] === 49)) { if ($this->p > $this->f) { $this->rec(7); } @@ -14220,7 +14226,7 @@ private function s10(): bool $o4 = $this->p; while (true) { $b4 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b4 > $this->f) { $this->rec(21); } @@ -14355,7 +14361,7 @@ private function s74(): bool default: // s75 $o2 = $this->p; - if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } @@ -14415,7 +14421,7 @@ private function s74(): bool case 78: // s75 $o2 = $this->p; - if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } @@ -14581,8 +14587,8 @@ private function s79(): bool goto f745;} $this->p++; - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -14590,7 +14596,7 @@ private function s79(): bool goto f745;} } // s109 - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(109); } @@ -14601,7 +14607,7 @@ private function s79(): bool $k2 = 0; while (true) { $b2 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b2 > $this->f) { $this->rec(21); } @@ -14652,8 +14658,8 @@ private function s110(): bool goto f748;} $this->p++; - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -14735,8 +14741,8 @@ private function s113(): bool goto f742;} $this->p++; - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -14769,15 +14775,15 @@ private function s113(): bool goto f744;} $this->p++; - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } goto f744;} } - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(116); } @@ -14852,7 +14858,7 @@ private function s125(): bool $o2 = $this->p; while (true) { $b2 = $this->p; - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($b2 > $this->f) { $this->rec(116); } @@ -14907,7 +14913,7 @@ private function s128(): bool if (!$this->s130()) { goto f511;} // s132 - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(132); } @@ -14918,7 +14924,7 @@ private function s128(): bool $k3 = 0; while (true) { $b3 = $this->p; - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(116); } @@ -15004,8 +15010,8 @@ private function s130(): bool goto f780;} $this->p++; - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { - if (isset(self::T796d0ca3[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; @@ -15064,7 +15070,7 @@ private function s135(): bool $o3 = $this->p; while (true) { $b3 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(21); } @@ -17032,7 +17038,7 @@ private function s156(): bool private function s163(): bool { - if (!isset(self::T1895157b[$this->ids[$this->p]])) { + if (!isset(self::Td08f0236[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(163); } @@ -17079,7 +17085,7 @@ private function s163(): bool goto f723;} $this->p++; - if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->s168()) { goto n724;} n724: @@ -17094,9 +17100,9 @@ private function s163(): bool goto a721; n722: break; - case 48: + case 50: // s164 - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p > $this->f) { $this->rec(164); } @@ -17104,7 +17110,7 @@ private function s163(): bool goto n725;} $o2 = $this->p; - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p >= $this->f) { $this->rec(71); } @@ -17150,7 +17156,7 @@ private function s163(): bool private function s164(): bool { - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p > $this->f) { $this->rec(164); } @@ -17158,7 +17164,7 @@ private function s164(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 48)) { + if (!($this->ids[$this->p] === 50)) { if ($this->p >= $this->f) { $this->rec(71); } @@ -17200,7 +17206,7 @@ private function s166(): bool goto f965;} $this->p++; - if (isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->s168()) { goto n966;} n966: @@ -17218,7 +17224,7 @@ private function s166(): bool private function s168(): bool { - if (!isset(self::Tf80a1c64[$this->ids[$this->p]])) { + if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(168); } @@ -17229,7 +17235,7 @@ private function s168(): bool switch ($this->ids[$this->p]) { default: break; - case 48: + case 50: if (!$this->s164()) { goto n964;} goto a963; @@ -17728,7 +17734,7 @@ private function s187(): bool $o3 = $this->p; while (true) { $b3 = $this->p; - if (!isset(self::T88030367[$this->ids[$this->p]])) { + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(21); } @@ -18525,7 +18531,7 @@ private function s190(): bool } if (!$this->s199()) { goto f148;} - if (!isset(self::T042ccaad[$this->ids[$this->p]])) { + if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } @@ -24538,7 +24544,7 @@ private function s320(): bool private function s321(): bool { - if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(321); } @@ -24630,7 +24636,7 @@ private function s321(): bool goto a804; n807: break; - case 48: + case 50: $this->p++; goto a804; break; @@ -24800,7 +24806,7 @@ private function s328(): bool case 25: case 30: case 32: - case 48: + case 50: case 82: case 85: if (!$this->s330()) { @@ -24872,11 +24878,11 @@ private function s329(): bool case 25: case 30: case 32: - case 48: + case 50: case 82: case 85: // s330 - if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(330); } @@ -24938,7 +24944,7 @@ private function s329(): bool private function s330(): bool { - if (!isset(self::Tba8cd23a[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(330); } @@ -26774,7 +26780,7 @@ private function s417(): bool $o3 = $this->p; while (true) { $b3 = $this->p; - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(116); } @@ -27617,7 +27623,7 @@ private function s454(): bool $o3 = $this->p; while (true) { $b3 = $this->p; - if (!isset(self::T52939f91[$this->ids[$this->p]])) { + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($b3 > $this->f) { $this->rec(116); } diff --git a/src/Parser/Phplrt/TokenStream.php b/src/Parser/Phplrt/TokenStream.php index f8b8b9f2..8698dd8c 100644 --- a/src/Parser/Phplrt/TokenStream.php +++ b/src/Parser/Phplrt/TokenStream.php @@ -4,7 +4,9 @@ use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\PhpDocParser\Parser\Generated\GeneratedParser; +use function array_slice; use function count; +use function preg_match_all; use function strlen; use function strpos; use function strtolower; @@ -195,9 +197,20 @@ final class TokenStream Lexer::TOKEN_OTHER => 'T_OTHER', ]; + /** where the end of the input returned by {@see tokenize()} holds the identifiers of the stream */ + public const STREAM_IDS = 3; + + /** where it holds the index of the token each of them stands for */ + public const STREAM_INDEXES = 4; + /** @var array */ private static ?array $types = null; + /** @var array the token each token preceded by whitespace is read as */ + private static array $whitespaceVariants; + + private static int $eol; + /** @var array */ private static array $keywords; @@ -325,6 +338,155 @@ public static function create(array $tokens, int $start, array &$ids, array &$in } } + /** + * Reads the given PHPDoc into the tokens of {@see Lexer}, and the stream of + * {@see create()} along with them, in one pass. + * + * The stream is handed over in the last token, the end of the input, as + * its {@see STREAM_IDS} and {@see STREAM_INDEXES}: the tokens are all + * {@see Lexer::tokenize()} returns, and the parser is given nothing else. + * See {@see fromTokens()}. + * + * @return list, 4?: list}> + */ + public static function tokenize(string $s): array + { + if (self::$types === null) { + self::initialize(); + } + + // PREG_PATTERN_ORDER, not PREG_SET_ORDER: it collects the whole PHPDoc + // into two arrays instead of allocating one array per token. This only + // pays off while the token patterns have no capturing groups, because + // every group would get an array of its own, one entry per token. + preg_match_all(GeneratedParser::LEXER_PATTERN, $s, $matches); + + $values = $matches[0]; + // no MARK at all when nothing has been matched + $marks = $matches['MARK'] ?? []; + + $lexerTypes = GeneratedParser::LEXER_TYPES; + $keywords = self::$keywords; + $tags = self::$tags; + $identifier = self::$identifier; + $phpDocTag = self::$phpDocTag; + $whitespaceVariants = self::$whitespaceVariants; + $wildcard = self::$wildcard; + $openAngle = self::$openAngle; + $eol = self::$eol; + + $tokens = []; + $ids = []; + $indexes = []; + $angles = []; + $line = 1; + $afterWhitespace = false; + + foreach ($values as $index => $value) { + /** @var key-of $id every mark of the pattern is a token it reads */ + $id = (int) $marks[$index]; + + if ($id === 0) { + // T_HORIZONTAL_WS, the first token of the grammar, which the + // stream leaves out + $tokens[] = [$value, Lexer::TOKEN_HORIZONTAL_WS, $line]; + $afterWhitespace = true; + continue; + } + + $tokens[] = [$value, $lexerTypes[$id], $line]; + + if ($id === $identifier) { + $id = $keywords[$value] ?? $identifier; + } elseif (isset($whitespaceVariants[$id])) { + if ($id === $phpDocTag && isset($tags[$value])) { + $id = $tags[$value]; + } elseif ($afterWhitespace) { + $id = $whitespaceVariants[$id]; + } + } elseif ($id === $wildcard) { + if (($marks[$index + 1] ?? null) === '0') { + $id = self::$wildcardWs; + } + } elseif ($id === $openAngle) { + $angles[] = count($ids); + } elseif ($id === $eol) { + $line++; + } + + $ids[] = $id; + $indexes[] = $index; + $afterWhitespace = false; + } + + $count = count($tokens); + $closable = []; + foreach ($angles as $position) { + // A tag is only closed by an end tag written somewhere in the + // PHPDoc, which is looked for once per name rather than once per + // "<": every "list" would otherwise be one walk to the end + $name = $tokens[$indexes[$position + 1] ?? $count][0] ?? ''; + $closable[$name] ??= $name !== '' && strpos($s, '/' . $name . '>') !== false; + if (!$closable[$name] || !self::isHtml($tokens, $indexes[$position], $count)) { + continue; + } + + $ids[$position] = self::$openAngleHtml; + } + + $ids[] = -1; + $indexes[] = $count; + $tokens[] = ['', Lexer::TOKEN_END, $line, $ids, $indexes]; + + return $tokens; + } + + /** + * The stream of the given tokens from the given index on, in case the + * tokens are the ones {@see tokenize()} has returned, or null in case they + * have to be read by {@see create()}. + * + * Whatever has been done to the tokens since, other than reading them, + * leaves the stream describing other tokens. Of all that may be done, the + * stream only tells apart the tokens being cut off or added to. + * + * @param list, 4?: list}> $tokens + * @return array{array, list}|null + */ + public static function fromTokens(array $tokens, int $start): ?array + { + $last = count($tokens) - 1; + $end = $tokens[$last] ?? null; + if (!isset($end[self::STREAM_INDEXES])) { + return null; + } + + $ids = $end[self::STREAM_IDS] ?? []; + $indexes = $end[self::STREAM_INDEXES]; + $length = count($indexes); + if ($indexes[$length - 1] !== $last) { + return null; + } + + if ($start <= $indexes[0]) { + return [$ids, $indexes]; + } + + // the first token of the stream at the given index or after it + $low = 0; + $high = $length - 1; + while ($low < $high) { + $middle = $low + $high >> 1; + if ($indexes[$middle] < $start) { + $low = $middle + 1; + } else { + $high = $middle; + } + } + + return [array_slice($ids, $low), array_slice($indexes, $low)]; + } + /** * The identifier of the token a tag written nowhere in the tokens is read as. */ @@ -381,6 +543,14 @@ private static function initialize(): void self::$wildcardWs = $ids['T_WILDCARD_WS']; self::$openAngle = $ids['T_OPEN_ANGLE_BRACKET']; self::$openAngleHtml = $ids['T_OPEN_ANGLE_BRACKET_HTML']; + self::$eol = $ids['T_PHPDOC_EOL']; + self::$whitespaceVariants = [ + self::$phpDocTag => self::$phpDocTagWs, + self::$doctrineTag => self::$doctrineTagWs, + self::$openCurly => self::$openCurlyWs, + self::$openParentheses => self::$openParenthesesWs, + self::$openSquare => self::$openSquareWs, + ]; self::$types = $types; } diff --git a/tests/PHPStan/Lexer/LexerTest.php b/tests/PHPStan/Lexer/LexerTest.php index e66e9339..456d8710 100644 --- a/tests/PHPStan/Lexer/LexerTest.php +++ b/tests/PHPStan/Lexer/LexerTest.php @@ -2,12 +2,15 @@ namespace PHPStan\PhpDocParser\Lexer; +use PHPStan\PhpDocParser\Parser\Generated\GeneratedParser; +use PHPStan\PhpDocParser\Parser\Phplrt\TokenStream; use PHPStan\PhpDocParser\ParserConfig; use PHPUnit\Framework\TestCase; -use ReflectionProperty; use function array_keys; +use function array_map; +use function count; +use function intdiv; use function preg_match_all; -use const PHP_VERSION_ID; class LexerTest extends TestCase { @@ -23,15 +26,7 @@ class LexerTest extends TestCase */ public function testTokenPatternsHaveNoCapturingGroups(): void { - $lexer = new Lexer(new ParserConfig([])); - $lexer->tokenize('/** @param float $a */'); - - $property = new ReflectionProperty(Lexer::class, 'regexp'); - if (PHP_VERSION_ID < 80100) { - $property->setAccessible(true); - } - $regexp = $property->getValue($lexer); - self::assertIsString($regexp); + $regexp = GeneratedParser::LEXER_PATTERN; // exercises the patterns that are most likely to grow a group $subject = '/** 0b1_0 0o1_0 0xa_b 1_0 1_0.0_1e+1_0 Foo|Bar $a ... */'; @@ -40,4 +35,37 @@ public function testTokenPatternsHaveNoCapturingGroups(): void self::assertSame([0, 'MARK'], array_keys($matches)); } + /** + * @return iterable + */ + public function dataStream(): iterable + { + yield ['/** @param ARRAY|Array{a: int}|array {b} $is IS is-a \\is not\\Of */']; + yield ['/** @Param @phpstan-param:foo @param-out @param- @psalm-param_x @ORM\\Entity @Foo(1) */']; + yield ["/**\n * @var Foo[0] Foo [0] Foo(1) Foo (1) Foo{1} Foo {1}\n * @return Foo::BAR* Foo::BAR*|Baz\n */"]; + yield ['/** @return Foo
see below
< br > x
Foo b */']; + yield ['/** TRUE False nULL true-ish 1_0.0_1e+1_0 0x1F -1 "a""b" \'c\' // comment */']; + yield ['']; + yield ['@var int']; + } + + /** + * The stream the lexer reads along with the tokens is the very one the + * parsers would otherwise read out of the tokens themselves. + * + * @dataProvider dataStream + */ + public function testStream(string $input): void + { + $tokens = (new Lexer(new ParserConfig([])))->tokenize($input); + + foreach ([0, intdiv(count($tokens), 2), count($tokens) - 1] as $start) { + $ids = []; + $indexes = []; + TokenStream::create(array_map(static fn (array $token): array => [$token[0], $token[1], $token[2]], $tokens), $start, $ids, $indexes); + + self::assertSame([$ids, $indexes], TokenStream::fromTokens($tokens, $start)); + } + } + } diff --git a/tools/phplrt/GeneratedParser.template.php b/tools/phplrt/GeneratedParser.template.php index 67228662..22077b31 100644 --- a/tools/phplrt/GeneratedParser.template.php +++ b/tools/phplrt/GeneratedParser.template.php @@ -34,6 +34,12 @@ abstract class GeneratedParser /** @var array the name each token is expected by */ public const EXPECTATIONS = /*EXPECTATIONS*/[]; + /** the pattern of the lexer, marking each token by its identifier */ + public const LEXER_PATTERN = /*LEXER_PATTERN*/''; + + /** @var array the type of the lexer each token it reads is, by the identifier */ + public const LEXER_TYPES = /*LEXER_TYPES*/[]; + /*CONSTANTS*/ /** @var array the identifier of the token at each position, the last one being -1 */ diff --git a/tools/phplrt/build.php b/tools/phplrt/build.php index 8a832531..1fc20be1 100644 --- a/tools/phplrt/build.php +++ b/tools/phplrt/build.php @@ -2,7 +2,9 @@ /** * Writes the parser of "doc/grammars/phpdoc.pp3": a class of its own that runs - * on PHP 7.4, "src/Parser/Generated/GeneratedParser.php". + * on PHP 7.4, "src/Parser/Generated/GeneratedParser.php". The class holds the + * pattern of "src/Lexer/Lexer.php" as well, written out of the tokens the + * grammar declares. * * The compiler asks for a recent PHP, so this runs here, as a development * tool, and only its output is a part of the library. The grammar is compiled @@ -39,6 +41,7 @@ require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/ParserGenerator.php'; +require __DIR__ . '/../../src/Lexer/Lexer.php'; $output = $argv[1] ?? __DIR__ . '/../../src/Parser/Generated/GeneratedParser.php'; @@ -309,6 +312,49 @@ function export($value): string $silent[] = array_flip($result->lexer->names)[$name]; } +/** + * Whether the given token is one the lexer does not read on its own: a token + * it reads as another one, and only "TokenStream" tells apart, by its value or + * by its surroundings. See "doc/grammars/lexemes.pp3". + */ +function isClassified(string $name): bool +{ + return strncmp($name, 'T_KEYWORD_', 10) === 0 + || strncmp($name, 'T_TAG_', 6) === 0 + || ($name !== 'T_HORIZONTAL_WS' && substr($name, -3) === '_WS') + || $name === 'T_OPEN_ANGLE_BRACKET_HTML'; +} + +/** + * The pattern of "Lexer": every token it reads on its own, in the order the + * grammar declares them, marked by the identifier the grammar gives it. Along + * with it, the type of "Lexer" each of those tokens is. + */ +if (($result->lexer->names[0] ?? null) !== 'T_HORIZONTAL_WS') { + // "TokenStream::tokenize()" tells the whitespace by this very identifier + fwrite(STDERR, "T_HORIZONTAL_WS has to be the first token of doc/grammars/lexemes.pp3\n"); + exit(1); +} + +$lexerPatterns = []; +$lexerTypes = []; +foreach ($result->lexer->tokens as $id => $definition) { + $name = $result->lexer->names[$id] ?? null; + if ($name === null || isClassified($name)) { + continue; + } + + $type = 'PHPStan\\PhpDocParser\\Lexer\\Lexer::TOKEN_' . substr($name, 2); + if (!defined($type)) { + fwrite(STDERR, sprintf("The lexer has no token %s for %s\n", $type, $name)); + exit(1); + } + + $lexerPatterns[] = '(?:' . $definition->regex . ')(*MARK:' . $id . ')'; + $lexerTypes[$id] = constant($type); +} +$lexerPattern = '~' . implode('|', $lexerPatterns) . '~Asi'; + [$methods, $constants] = (new ParserGenerator($parser, $choicePrediction, $reducerIds, $tokenIds, $silent))->generate($rules); $template = file_get_contents(__DIR__ . '/GeneratedParser.template.php'); @@ -316,6 +362,8 @@ function export($value): string '/*RULES*/[]' => export($rules), '/*TOKENS*/[]' => export(array_flip($result->lexer->names)), '/*EXPECTATIONS*/[]' => export($parser->expectations), + "/*LEXER_PATTERN*/''" => export($lexerPattern), + '/*LEXER_TYPES*/[]' => export($lexerTypes), "\t/*CONSTANTS*/\n" => $constants, "\t/*REDUCERS*/\n" => implode("\n", $abstracts), "\t/*METHODS*/\n" => $methods, From 3f975debe1cf692cc0be9a242b71be61cafd88bb Mon Sep 17 00:00:00 2001 From: "ondrej@mirtes.cz" Date: Mon, 26 Oct 2026 16:45:06 +0000 Subject: [PATCH 3/4] Make building the AST cheaper The reducers are given the first and last token index as two ints computed inline, instead of a phplrt Context filled by a call per reduction. Attributes are skipped without a call when none are used, and a reading no longer saves and restores the state of a previous one. Amp-Thread-ID: https://ampcode.com/threads/T-01a17820-94d1-75c8-9206-2e802d9c0556 --- src/Parser/AstBuilder.php | 413 +- src/Parser/Generated/GeneratedParser.php | 13359 ++++++++++---------- tools/phplrt/GeneratedParser.template.php | 12 +- tools/phplrt/ParserGenerator.php | 21 +- tools/phplrt/build.php | 6 +- 5 files changed, 6589 insertions(+), 7222 deletions(-) diff --git a/src/Parser/AstBuilder.php b/src/Parser/AstBuilder.php index 2dadbec9..051eb3be 100644 --- a/src/Parser/AstBuilder.php +++ b/src/Parser/AstBuilder.php @@ -3,8 +3,6 @@ namespace PHPStan\PhpDocParser\Parser; use LogicException; -use Phplrt\Parser\Context; -use Phplrt\Source\StringSource; use PHPStan\PhpDocParser\Ast; use PHPStan\PhpDocParser\Ast\Attribute; use PHPStan\PhpDocParser\Ast\Comment; @@ -87,9 +85,6 @@ final class AstBuilder extends GeneratedParser /** @var list the tokens of the lexer being read */ private array $tokens = []; - /** @var array the index of the token of the lexer each position stands for */ - private array $indexes = []; - /** the tag the tokens read begin with, which is not one of the lexer */ private ?string $tag = null; @@ -102,8 +97,6 @@ final class AstBuilder extends GeneratedParser /** the index of the first token of the last text read, or -1 when it is empty */ private int $textStart = -1; - private ?Context $context = null; - /** @var array */ private array $identifiers = []; @@ -271,8 +264,8 @@ public function read(TokenIterator $tokens, string $rule, ?string $tag = null) } } - $previous = [$this->tokens, $this->ids, $this->indexes, $this->tag, $this->positions, $this->comments, $this->byteOffsets, $this->v, $this->n, $this->saveReading()]; - + // A reading is never started by another one, so the state of the last + // one is simply overwritten $this->tokens = $lexerTokens; $this->ids = $ids; $this->indexes = $indexes; @@ -283,31 +276,26 @@ public function read(TokenIterator $tokens, string $rule, ?string $tag = null) $this->v = []; $this->n = 0; - try { - if ($this->config->useCommentsAttributes) { - foreach ($ids as $position => $id) { - if ($id !== $this->tComment) { - continue; - } - - $commentIndex = $indexes[$position]; - $this->comments[$commentIndex] = new Comment($lexerTokens[$commentIndex][Lexer::VALUE_OFFSET], $lexerTokens[$commentIndex][Lexer::LINE_OFFSET], $commentIndex); + if ($this->config->useCommentsAttributes) { + foreach ($ids as $position => $id) { + if ($id !== $this->tComment) { + continue; } - } - // What has been read is given back even when the reading stops - // before the end, unless nothing at all has been built - if (!$this->parseRule(self::RULES[$rule], 0, true) || ($this->n === 0 && $this->ids[$this->p] !== -1)) { - throw $this->createException($this->failure()); + $commentIndex = $indexes[$position]; + $this->comments[$commentIndex] = new Comment($lexerTokens[$commentIndex][Lexer::VALUE_OFFSET], $lexerTokens[$commentIndex][Lexer::LINE_OFFSET], $commentIndex); } + } - $tokens->setCurrentTokenIndex($indexes[$this->p]); - - return $this->n > 0 ? $this->v[0] : []; - } finally { - [$this->tokens, $this->ids, $this->indexes, $this->tag, $this->positions, $this->comments, $this->byteOffsets, $this->v, $this->n, $state] = $previous; - $this->restoreReading($state); + // What has been read is given back even when the reading stops + // before the end, unless nothing at all has been built + if (!$this->parseRule(self::RULES[$rule], 0, true) || ($this->n === 0 && $this->ids[$this->p] !== -1)) { + throw $this->createException($this->failure()); } + + $tokens->setCurrentTokenIndex($indexes[$this->p]); + + return $this->n > 0 ? $this->v[0] : []; } protected function token(int $position): Token @@ -321,24 +309,6 @@ protected function token(int $position): Token ); } - protected function context(int $from, ?int $to = null): Context - { - $context = $this->context ??= new Context(0, new StringSource()); - $to ??= $this->p; - if ($to > $from) { - $begin = $this->indexes[$from]; - $context->begin = $begin; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass - $context->length = $this->indexes[$to - 1] + 1 - $begin; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass - } else { - // A rule that has read nothing is empty right after what has been - // read before it - $context->begin = $from > 0 ? $this->indexes[$from - 1] + 1 : 0; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass - $context->length = 0; // @phpstan-ignore property.readOnlyByPhpDocAssignOutOfClass - } - - return $context; - } - /** * Describes why the given rule cannot be read at the given token, which is * what a node standing for something that cannot be read carries. @@ -452,37 +422,6 @@ private static function lexerTokenType(string $name): ?int // Attributes // ------------------------------------------------------------------------- - /** - * @template T of Node - * @param T $node - * @return T - */ - private function attributes(Node $node, Context $context, bool $takesComments = false): Node - { - if (!$this->useAttributes) { - return $node; - } - - return $this->attributesAt($node, $context->begin, $context->begin + $context->length - 1, $takesComments); - } - - /** - * The attributes of a node of the arguments of a Doctrine annotation, which - * are read walking over the line breaks. - * - * @template T of Node - * @param T $node - * @return T - */ - private function doctrineAttributes(Node $node, Context $context): Node - { - if (!$this->useAttributes) { - return $node; - } - - return $this->attributesAt($node, $context->begin, $context->begin + $context->length - 1, false, true); - } - /** * @template T of Node * @param T $node @@ -564,20 +503,6 @@ private function nextIndex(int $index): int return $index; } - private static function end(Context $context): int - { - return $context->begin + $context->length - 1; - } - - /** - * @param list $children - * @return list - */ - private static function children(array $children): array - { - return $children; - } - // ------------------------------------------------------------------------- // Types // ------------------------------------------------------------------------- @@ -585,9 +510,8 @@ private static function children(array $children): array /** * @param list $children */ - protected function reduceType(Context $context, $children): TypeNode + protected function reduceType(int $begin, int $end, $children): TypeNode { - $children = self::children($children); $types = []; $kind = 0; foreach ($children as $child) { @@ -610,15 +534,14 @@ protected function reduceType(Context $context, $children): TypeNode $type = $types[0]; } - return $this->attributes($type, $context, true); + return $this->useAttributes ? $this->attributesAt($type, $begin, $end, true) : $type; } /** * @param list $children */ - protected function reduceSubType(Context $context, $children): TypeNode + protected function reduceSubType(int $begin, int $end, $children): TypeNode { - $children = self::children($children); $types = []; $kind = 0; $negated = false; @@ -656,17 +579,17 @@ protected function reduceSubType(Context $context, $children): TypeNode $type = $types[0]; } - return $this->attributes($type, $context, true); + return $this->useAttributes ? $this->attributesAt($type, $begin, $end, true) : $type; } /** * @param list $children */ - protected function reduceNullable(Context $context, $children): TypeNode + protected function reduceNullable(int $begin, int $end, $children): TypeNode { foreach ($children as $child) { if ($child instanceof TypeNode) { - return $this->attributes(new Ast\Type\NullableTypeNode($child), $context, true); + return $this->useAttributes ? $this->attributesAt(new Ast\Type\NullableTypeNode($child), $begin, $end, true) : new Ast\Type\NullableTypeNode($child); } } @@ -676,17 +599,21 @@ protected function reduceNullable(Context $context, $children): TypeNode /** * @param list $children */ - protected function reduceAtomic(Context $context, $children): TypeNode + protected function reduceAtomic(int $begin, int $end, $children): TypeNode { - return $this->attributes($this->assembleAtomic(self::children($children), $context->begin), $context, true); + $type = $this->assembleAtomic($children, $begin); + + return $this->useAttributes ? $this->attributesAt($type, $begin, $end, true) : $type; } /** * @param list $children */ - protected function reduceCallableReturnType(Context $context, $children): TypeNode + protected function reduceCallableReturnType(int $begin, int $end, $children): TypeNode { - return $this->attributes($this->assembleAtomic(self::children($children), $context->begin), $context, true); + $type = $this->assembleAtomic($children, $begin); + + return $this->useAttributes ? $this->attributesAt($type, $begin, $end, true) : $type; } /** @@ -706,7 +633,7 @@ private function assembleAtomic(array $children, int $begin): TypeNode if (isset($this->identifiers[$child->id])) { $name = $child; } elseif ($child->id === $this->tThis) { - $type = $this->attributesAt(new Ast\Type\ThisTypeNode(), $child->offset, $child->offset, true); + $type = ($this->useAttributes ? $this->attributesAt(new Ast\Type\ThisTypeNode(), $child->offset, $child->offset, true) : new Ast\Type\ThisTypeNode()); } } @@ -719,12 +646,12 @@ private function assembleAtomic(array $children, int $begin): TypeNode } if ($child instanceof ConstExprNode) { - $type = $this->attributesAt( + $type = ($this->useAttributes ? $this->attributesAt( new Ast\Type\ConstTypeNode($child), $child->getAttribute(Attribute::START_INDEX) ?? $begin, $child->getAttribute(Attribute::END_INDEX) ?? $begin, true, - ); + ) : new Ast\Type\ConstTypeNode($child)); continue; } @@ -758,7 +685,7 @@ private function assembleAtomic(array $children, int $begin): TypeNode break; } - $type = $this->attributesAt($type, $begin, $child->end, true); + $type = ($this->useAttributes ? $this->attributesAt($type, $begin, $child->end, true) : $type); } return $type ?? $this->identifier($name); @@ -770,27 +697,27 @@ private function identifier(?Token $name): Ast\Type\IdentifierTypeNode throw new LogicException('A type without a name'); } - return $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, true); + return $this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, true) : new Ast\Type\IdentifierTypeNode($name->value); } /** * @param list $children */ - protected function reduceArrayOrOffsetAccessItem(Context $context, $children): Fragment + protected function reduceArrayOrOffsetAccessItem(int $begin, int $end, $children): Fragment { foreach ($children as $child) { if ($child instanceof TypeNode) { - return new Fragment(Fragment::OFFSET, self::end($context), $child); + return new Fragment(Fragment::OFFSET, $end, $child); } } - return new Fragment(Fragment::ARRAY, self::end($context)); + return new Fragment(Fragment::ARRAY, $end); } /** * @param list $children */ - protected function reduceGeneric(Context $context, $children): Fragment + protected function reduceGeneric(int $begin, int $end, $children): Fragment { $types = []; $variances = []; @@ -803,26 +730,26 @@ protected function reduceGeneric(Context $context, $children): Fragment $variances[] = $child->b; } - return new Fragment(Fragment::GENERIC, self::end($context), $types, $variances); + return new Fragment(Fragment::GENERIC, $end, $types, $variances); } /** * @param list $children */ - protected function reduceGenericInReturnType(Context $context, $children): Fragment + protected function reduceGenericInReturnType(int $begin, int $end, $children): Fragment { - return $this->reduceGeneric($context, $children); + return $this->reduceGeneric($begin, $end, $children); } /** * @param list $children */ - protected function reduceGenericArgument(Context $context, $children): Fragment + protected function reduceGenericArgument(int $begin, int $end, $children): Fragment { $variance = Ast\Type\GenericTypeNode::VARIANCE_INVARIANT; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if ($child instanceof TypeNode) { - return new Fragment(Fragment::GENERIC_ARGUMENT, self::end($context), $child, $variance); + return new Fragment(Fragment::GENERIC_ARGUMENT, $end, $child, $variance); } if (!$child instanceof Token) { @@ -837,8 +764,8 @@ protected function reduceGenericArgument(Context $context, $children): Fragment // the wildcard return new Fragment( Fragment::GENERIC_ARGUMENT, - self::end($context), - $this->attributes(new Ast\Type\IdentifierTypeNode('mixed'), $context, true), + $end, + ($this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode('mixed'), $begin, $end, true) : new Ast\Type\IdentifierTypeNode('mixed')), Ast\Type\GenericTypeNode::VARIANCE_BIVARIANT, ); } @@ -850,7 +777,7 @@ protected function reduceGenericArgument(Context $context, $children): Fragment /** * @param list $children */ - protected function reduceCallable(Context $context, $children): Fragment + protected function reduceCallable(int $begin, int $end, $children): Fragment { $templates = []; $parameters = []; @@ -865,23 +792,23 @@ protected function reduceCallable(Context $context, $children): Fragment } } - return new Fragment(Fragment::CALLABLE, self::end($context), $parameters, $returnType, $templates); + return new Fragment(Fragment::CALLABLE, $end, $parameters, $returnType, $templates); } /** * @param list $children */ - protected function reduceCallableWithTemplates(Context $context, $children): Fragment + protected function reduceCallableWithTemplates(int $begin, int $end, $children): Fragment { - return $this->reduceCallable($context, $children); + return $this->reduceCallable($begin, $end, $children); } /** * @param list $children */ - protected function reduceCallableTemplateArgument(Context $context, $children): Ast\PhpDoc\TemplateTagValueNode + protected function reduceCallableTemplateArgument(int $begin, int $end, $children): Ast\PhpDoc\TemplateTagValueNode { - return $this->attributes($this->template(self::children($children), ''), $context, true); + return $this->attributesAt($this->template($children, ''), $begin, $end, true); } /** @@ -923,14 +850,14 @@ private function template(array $children, string $description): Ast\PhpDoc\Temp /** * @param list $children */ - protected function reduceCallableParameter(Context $context, $children): Ast\Type\CallableTypeParameterNode + protected function reduceCallableParameter(int $begin, int $end, $children): Ast\Type\CallableTypeParameterNode { $type = null; $isReference = false; $isVariadic = false; $name = ''; $isOptional = false; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if ($child instanceof TypeNode) { $type = $child; } elseif ($child instanceof Token) { @@ -948,13 +875,13 @@ protected function reduceCallableParameter(Context $context, $children): Ast\Typ } /** @var TypeNode $type */ - return $this->attributes(new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $name, $isOptional), $context, true); + return $this->useAttributes ? $this->attributesAt(new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $name, $isOptional), $begin, $end, true) : new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $name, $isOptional); } /** * @param list $children */ - protected function reduceArrayShape(Context $context, $children): Fragment + protected function reduceArrayShape(int $begin, int $end, $children): Fragment { $items = []; $sealed = true; @@ -969,21 +896,21 @@ protected function reduceArrayShape(Context $context, $children): Fragment } } - return new Fragment(Fragment::SHAPE, self::end($context), $items, $sealed, $unsealedType); + return new Fragment(Fragment::SHAPE, $end, $items, $sealed, $unsealedType); } /** * @param list $children */ - protected function reduceListShape(Context $context, $children): Fragment + protected function reduceListShape(int $begin, int $end, $children): Fragment { - return $this->reduceArrayShape($context, $children); + return $this->reduceArrayShape($begin, $end, $children); } /** * @param list $children */ - protected function reduceArrayShapeUnsealedType(Context $context, $children): Ast\Type\ArrayShapeUnsealedTypeNode + protected function reduceArrayShapeUnsealedType(int $begin, int $end, $children): Ast\Type\ArrayShapeUnsealedTypeNode { $types = []; foreach ($children as $child) { @@ -998,26 +925,26 @@ protected function reduceArrayShapeUnsealedType(Context $context, $children): As ? new Ast\Type\ArrayShapeUnsealedTypeNode($types[1], $types[0]) : new Ast\Type\ArrayShapeUnsealedTypeNode($types[0], null); - return $this->attributes($node, $context, true); + return $this->useAttributes ? $this->attributesAt($node, $begin, $end, true) : $node; } /** * @param list $children */ - protected function reduceListShapeUnsealedType(Context $context, $children): Ast\Type\ArrayShapeUnsealedTypeNode + protected function reduceListShapeUnsealedType(int $begin, int $end, $children): Ast\Type\ArrayShapeUnsealedTypeNode { - return $this->reduceArrayShapeUnsealedType($context, $children); + return $this->reduceArrayShapeUnsealedType($begin, $end, $children); } /** * @param list $children */ - protected function reduceArrayShapeItem(Context $context, $children): Ast\Type\ArrayShapeItemNode + protected function reduceArrayShapeItem(int $begin, int $end, $children): Ast\Type\ArrayShapeItemNode { $nodes = []; $hasKey = false; $optional = false; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if ($child instanceof Node) { $nodes[] = $child; } elseif ($child instanceof Token) { @@ -1039,16 +966,15 @@ protected function reduceArrayShapeItem(Context $context, $children): Ast\Type\A $item = new Ast\Type\ArrayShapeItemNode(null, false, $value); } - return $this->attributes($item, $context, true); + return $this->useAttributes ? $this->attributesAt($item, $begin, $end, true) : $item; } /** * @param list $children * @return Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\ConstExpr\ConstFetchNode|Ast\Type\IdentifierTypeNode */ - protected function reduceArrayShapeKey(Context $context, $children): Node + protected function reduceArrayShapeKey(int $begin, int $end, $children): Node { - $children = self::children($children); $first = $children[0]; if (count($children) === 3) { $key = new Ast\ConstExpr\ConstFetchNode($first->value, $children[2]->value); @@ -1058,7 +984,7 @@ protected function reduceArrayShapeKey(Context $context, $children): Node $key = $this->stringOrIdentifier($first); } - return $this->attributes($key, $context, true); + return $this->useAttributes ? $this->attributesAt($key, $begin, $end, true) : $key; } /** @@ -1080,7 +1006,7 @@ private function stringOrIdentifier(Token $token): Node /** * @param list $children */ - protected function reduceObjectShape(Context $context, $children): Fragment + protected function reduceObjectShape(int $begin, int $end, $children): Fragment { $items = []; foreach ($children as $child) { @@ -1091,13 +1017,13 @@ protected function reduceObjectShape(Context $context, $children): Fragment $items[] = $child; } - return new Fragment(Fragment::OBJECT_SHAPE, self::end($context), $items); + return new Fragment(Fragment::OBJECT_SHAPE, $end, $items); } /** * @param list $children */ - protected function reduceObjectShapeItem(Context $context, $children): Ast\Type\ObjectShapeItemNode + protected function reduceObjectShapeItem(int $begin, int $end, $children): Ast\Type\ObjectShapeItemNode { $key = null; $value = null; @@ -1116,16 +1042,16 @@ protected function reduceObjectShapeItem(Context $context, $children): Ast\Type\ /** @var Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode $key */ /** @var TypeNode $value */ - return $this->attributes(new Ast\Type\ObjectShapeItemNode($key, $optional, $value), $context, true); + return $this->useAttributes ? $this->attributesAt(new Ast\Type\ObjectShapeItemNode($key, $optional, $value), $begin, $end, true) : new Ast\Type\ObjectShapeItemNode($key, $optional, $value); } /** * @param list $children * @return Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode */ - protected function reduceObjectShapeKey(Context $context, $children): Node + protected function reduceObjectShapeKey(int $begin, int $end, $children): Node { - return $this->attributes($this->stringOrIdentifier(self::children($children)[0]), $context, true); + return $this->attributesAt($this->stringOrIdentifier($children[0]), $begin, $end, true); } /** @@ -1134,9 +1060,9 @@ protected function reduceObjectShapeKey(Context $context, $children): Node * * @return list */ - protected function reduceDiscardedComment(Context $context): array + protected function reduceDiscardedComment(int $begin, int $end): array { - unset($this->comments[$context->begin]); + unset($this->comments[$begin]); return []; } @@ -1148,49 +1074,49 @@ protected function reduceDiscardedComment(Context $context): array /** * @param list $children */ - protected function reduceConstantFloat(Context $context, $children): ConstExprNode + protected function reduceConstantFloat(int $begin, int $end, $children): ConstExprNode { - return $this->attributes(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', self::children($children)[0]->value)), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $children[0]->value)), $begin, $end) : new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $children[0]->value)); } /** * @param list $children */ - protected function reduceConstantInteger(Context $context, $children): ConstExprNode + protected function reduceConstantInteger(int $begin, int $end, $children): ConstExprNode { - return $this->attributes(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', self::children($children)[0]->value)), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $children[0]->value)), $begin, $end) : new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $children[0]->value)); } /** * @param list $children */ - protected function reduceConstantString(Context $context, $children): ConstExprNode + protected function reduceConstantString(int $begin, int $end, $children): ConstExprNode { /** @var Ast\ConstExpr\ConstExprStringNode $node */ - $node = $this->stringOrIdentifier(self::children($children)[0]); + $node = $this->stringOrIdentifier($children[0]); - return $this->attributes($node, $context); + return $this->useAttributes ? $this->attributesAt($node, $begin, $end) : $node; } - protected function reduceConstantTrue(Context $context): ConstExprNode + protected function reduceConstantTrue(int $begin, int $end): ConstExprNode { - return $this->attributes(new Ast\ConstExpr\ConstExprTrueNode(), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprTrueNode(), $begin, $end) : new Ast\ConstExpr\ConstExprTrueNode(); } - protected function reduceConstantFalse(Context $context): ConstExprNode + protected function reduceConstantFalse(int $begin, int $end): ConstExprNode { - return $this->attributes(new Ast\ConstExpr\ConstExprFalseNode(), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprFalseNode(), $begin, $end) : new Ast\ConstExpr\ConstExprFalseNode(); } - protected function reduceConstantNull(Context $context): ConstExprNode + protected function reduceConstantNull(int $begin, int $end): ConstExprNode { - return $this->attributes(new Ast\ConstExpr\ConstExprNullNode(), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprNullNode(), $begin, $end) : new Ast\ConstExpr\ConstExprNullNode(); } /** * @param list $children */ - protected function reduceConstantArrayLiteral(Context $context, $children): ConstExprNode + protected function reduceConstantArrayLiteral(int $begin, int $end, $children): ConstExprNode { $items = []; foreach ($children as $child) { @@ -1201,24 +1127,24 @@ protected function reduceConstantArrayLiteral(Context $context, $children): Cons $items[] = $child; } - return $this->attributes(new Ast\ConstExpr\ConstExprArrayNode($items), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprArrayNode($items), $begin, $end) : new Ast\ConstExpr\ConstExprArrayNode($items); } /** * @param list $children */ - protected function reduceConstantArrayShorthand(Context $context, $children): ConstExprNode + protected function reduceConstantArrayShorthand(int $begin, int $end, $children): ConstExprNode { - return $this->reduceConstantArrayLiteral($context, $children); + return $this->reduceConstantArrayLiteral($begin, $end, $children); } /** * @param list $children */ - protected function reduceConstantArrayItem(Context $context, $children): ConstExprNode + protected function reduceConstantArrayItem(int $begin, int $end, $children): ConstExprNode { $expressions = []; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if (!$child instanceof ConstExprNode) { continue; } @@ -1230,15 +1156,15 @@ protected function reduceConstantArrayItem(Context $context, $children): ConstEx ? new Ast\ConstExpr\ConstExprArrayItemNode($expressions[0], $expressions[1]) : new Ast\ConstExpr\ConstExprArrayItemNode(null, $expressions[0]); - return $this->attributes($item, $context); + return $this->useAttributes ? $this->attributesAt($item, $begin, $end) : $item; } /** * @param list $children */ - protected function reduceConstantFetch(Context $context, $children): ConstExprNode + protected function reduceConstantFetch(int $begin, int $end, $children): ConstExprNode { - return $this->attributes($this->constantFetch(self::children($children)), $context); + return $this->attributesAt($this->constantFetch($children), $begin, $end); } /** @@ -1266,7 +1192,7 @@ private function constantFetch(array $children): Ast\ConstExpr\ConstFetchNode /** * @param list $children */ - protected function reducePhpDoc(Context $context, $children): Ast\PhpDoc\PhpDocNode + protected function reducePhpDoc(int $begin, int $end, $children): Ast\PhpDoc\PhpDocNode { $nodes = []; foreach ($children as $child) { @@ -1277,16 +1203,16 @@ protected function reducePhpDoc(Context $context, $children): Ast\PhpDoc\PhpDocN $nodes[] = $child; } - return $this->attributes(new Ast\PhpDoc\PhpDocNode($nodes), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocNode($nodes), $begin, $end) : new Ast\PhpDoc\PhpDocNode($nodes); } /** * @param list $children */ - protected function reduceTextChild(Context $context, $children): Ast\PhpDoc\PhpDocTextNode + protected function reduceTextChild(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTextNode { $text = ''; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if (!is_string($child)) { continue; } @@ -1294,32 +1220,31 @@ protected function reduceTextChild(Context $context, $children): Ast\PhpDoc\PhpD $text = $child; } - return $this->attributes(new Ast\PhpDoc\PhpDocTextNode($text), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTextNode($text), $begin, $end) : new Ast\PhpDoc\PhpDocTextNode($text); } - protected function reduceText(Context $context): string + protected function reduceText(int $begin, int $end): string { - return $this->text($context); + return $this->text($begin, $end); } - protected function reduceDoctrineText(Context $context): string + protected function reduceDoctrineText(int $begin, int $end): string { - return $this->text($context); + return $this->text($begin, $end); } /** * The text the rule has been read from, the way it is written save for the * asterisks a PHPDoc starts its lines with. */ - private function text(Context $context): string + private function text(int $begin, int $end): string { - if ($context->length === 0) { + if ($end < $begin) { $this->textStart = -1; return ''; } - $start = $context->begin; - $end = $start + $context->length - 1; + $start = $begin; $this->textStart = $start; if ($this->comments !== []) { $this->forgetComments($start, $end); @@ -1359,9 +1284,8 @@ private static function description(array $children): string /** * @param list $children */ - protected function reduceKnownTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + protected function reduceKnownTag(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTagNode { - $children = self::children($children); if ($children[0] instanceof Ast\PhpDoc\PhpDocTagNode) { // a type alias whose type cannot be read return $children[0]; @@ -1370,7 +1294,7 @@ protected function reduceKnownTag(Context $context, $children): Ast\PhpDoc\PhpDo /** @var Token $tag */ $tag = $children[0]; $valueStart = $this->nextIndex($tag->offset); - $value = $this->tagValue($tag, $children, $valueStart, self::end($context)); + $value = $this->tagValue($tag, $children, $valueStart, $end); // A description written right after a type has to be written after a // space, which is not something the grammar says @@ -1387,15 +1311,15 @@ protected function reduceKnownTag(Context $context, $children): Ast\PhpDoc\PhpDo && $tokens[$textStart - 1][Lexer::TYPE_OFFSET] !== Lexer::TOKEN_HORIZONTAL_WS ) { $value = new Ast\PhpDoc\InvalidTagValueNode( - trim($this->textBetween($valueStart, self::end($context)), " \t"), + trim($this->textBetween($valueStart, $end), " \t"), $this->createExceptionAt($textStart, Lexer::TOKEN_HORIZONTAL_WS), ); } } - $value = $this->attributesAt($value, $valueStart, self::end($context)); + $value = ($this->useAttributes ? $this->attributesAt($value, $valueStart, $end) : $value); - return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $begin, $end) : new Ast\PhpDoc\PhpDocTagNode($tag->value, $value); } /** @@ -1508,7 +1432,7 @@ private function tagValue(Token $tag, array $children, int $valueStart, int $end return new Ast\PhpDoc\TypeAliasImportTagValueNode( $alias->value, - $this->attributesAt(new Ast\Type\IdentifierTypeNode($from->value), $from->offset, $from->offset), + ($this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode($from->value), $from->offset, $from->offset) : new Ast\Type\IdentifierTypeNode($from->value)), $as, ); case 'assert': @@ -1573,7 +1497,7 @@ private function methodTagValue(array $children, string $description, int $value } $returnType = $static !== null - ? $this->attributesAt(new Ast\Type\IdentifierTypeNode('static'), $static->offset, $static->offset, true) + ? ($this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode('static'), $static->offset, $static->offset, true) : new Ast\Type\IdentifierTypeNode('static')) : null; return new Ast\PhpDoc\MethodTagValueNode(false, $returnType, $type->name, $parameters, $description, $templates); @@ -1588,12 +1512,12 @@ private function extendsTagValue(string $kind, array $children, string $descript $name = $children[1]; /** @var Fragment $generic */ $generic = $children[2]; - $type = $this->attributesAt( + $type = ($this->useAttributes ? $this->attributesAt( new Ast\Type\GenericTypeNode($this->identifier($name), $generic->a, $generic->b), $start, $generic->end, true, - ); + ) : new Ast\Type\GenericTypeNode($this->identifier($name), $generic->a, $generic->b)); switch ($kind) { case 'extends': @@ -1657,14 +1581,14 @@ private function assertTagValue(array $children, string $description): Ast\PhpDo /** * @param list $children */ - protected function reduceMethodParameter(Context $context, $children): Ast\PhpDoc\MethodTagValueParameterNode + protected function reduceMethodParameter(int $begin, int $end, $children): Ast\PhpDoc\MethodTagValueParameterNode { $type = null; $isReference = false; $isVariadic = false; $name = ''; $default = null; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if ($child instanceof TypeNode) { $type = $child; } elseif ($child instanceof ConstExprNode) { @@ -1681,29 +1605,27 @@ protected function reduceMethodParameter(Context $context, $children): Ast\PhpDo } } - return $this->attributes(new Ast\PhpDoc\MethodTagValueParameterNode($type, $isReference, $isVariadic, $name, $default), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\MethodTagValueParameterNode($type, $isReference, $isVariadic, $name, $default), $begin, $end) : new Ast\PhpDoc\MethodTagValueParameterNode($type, $isReference, $isVariadic, $name, $default); } /** * @param list $children */ - protected function reduceGenericTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + protected function reduceGenericTag(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTagNode { - $children = self::children($children); /** @var Token $tag */ $tag = $children[0]; $valueStart = $this->nextIndex($tag->offset); - $value = $this->attributesAt(new Ast\PhpDoc\GenericTagValueNode(self::description($children)), $valueStart, self::end($context)); + $value = ($this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\GenericTagValueNode(self::description($children)), $valueStart, $end) : new Ast\PhpDoc\GenericTagValueNode(self::description($children))); - return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $begin, $end) : new Ast\PhpDoc\PhpDocTagNode($tag->value, $value); } /** * @param list $children */ - protected function reduceDoctrineTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + protected function reduceDoctrineTag(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTagNode { - $children = self::children($children); /** @var Token $tag */ $tag = $children[0]; $valueStart = $this->nextIndex($tag->offset); @@ -1719,14 +1641,14 @@ protected function reduceDoctrineTag(Context $context, $children): Ast\PhpDoc\Ph } } - $annotation = $this->attributesAt(new Doctrine\DoctrineAnnotation($tag->value, $arguments), $valueStart, $annotationEnd); - $value = $this->attributesAt( + $annotation = ($this->useAttributes ? $this->attributesAt(new Doctrine\DoctrineAnnotation($tag->value, $arguments), $valueStart, $annotationEnd) : new Doctrine\DoctrineAnnotation($tag->value, $arguments)); + $value = ($this->useAttributes ? $this->attributesAt( new Doctrine\DoctrineTagValueNode($annotation, self::description($children)), $valueStart, - self::end($context), - ); + $end, + ) : new Doctrine\DoctrineTagValueNode($annotation, self::description($children))); - return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $begin, $end) : new Ast\PhpDoc\PhpDocTagNode($tag->value, $value); } /** @@ -1734,21 +1656,20 @@ protected function reduceDoctrineTag(Context $context, $children): Ast\PhpDoc\Ph * * @param list $children */ - protected function reduceInvalidTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + protected function reduceInvalidTag(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTagNode { - $children = self::children($children); /** @var Token $tag */ $tag = $children[0]; $valueStart = $this->nextIndex($tag->offset); $exception = $this->explain(isset($this->tagKinds[$tag->id]) ? 'KnownTag' : 'UnreadTagChild', $tag->offset); - $value = $this->attributesAt( + $value = ($this->useAttributes ? $this->attributesAt( new Ast\PhpDoc\InvalidTagValueNode(self::description($children), $exception), $valueStart, - self::end($context), - ); + $end, + ) : new Ast\PhpDoc\InvalidTagValueNode(self::description($children), $exception)); - return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $begin, $end) : new Ast\PhpDoc\PhpDocTagNode($tag->value, $value); } /** @@ -1756,9 +1677,8 @@ protected function reduceInvalidTag(Context $context, $children): Ast\PhpDoc\Php * * @param list $children */ - protected function reduceInvalidTypeAliasTag(Context $context, $children): Ast\PhpDoc\PhpDocTagNode + protected function reduceInvalidTypeAliasTag(int $begin, int $end, $children): Ast\PhpDoc\PhpDocTagNode { - $children = self::children($children); /** @var Token $tag */ $tag = $children[0]; /** @var Token $alias */ @@ -1769,12 +1689,12 @@ protected function reduceInvalidTypeAliasTag(Context $context, $children): Ast\P } $exception = $this->explainTypeAlias($typeStart); - $type = $this->attributesAt(new Ast\Type\InvalidTypeNode($exception), $typeStart, self::end($context)); + $type = ($this->useAttributes ? $this->attributesAt(new Ast\Type\InvalidTypeNode($exception), $typeStart, $end) : new Ast\Type\InvalidTypeNode($exception)); $valueStart = $this->nextIndex($tag->offset); - $value = $this->attributesAt(new Ast\PhpDoc\TypeAliasTagValueNode($alias->value, $type), $valueStart, self::end($context)); + $value = ($this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\TypeAliasTagValueNode($alias->value, $type), $valueStart, $end) : new Ast\PhpDoc\TypeAliasTagValueNode($alias->value, $type)); - return $this->attributes(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\PhpDoc\PhpDocTagNode($tag->value, $value), $begin, $end) : new Ast\PhpDoc\PhpDocTagNode($tag->value, $value); } private function explainTypeAlias(int $index): ParserException @@ -1800,9 +1720,8 @@ private function explainTypeAlias(int $index): ParserException /** * @param list $children */ - protected function reduceDoctrineArgument(Context $context, $children): Doctrine\DoctrineArgument + protected function reduceDoctrineArgument(int $begin, int $end, $children): Doctrine\DoctrineArgument { - $children = self::children($children); $key = null; $value = null; $hasKey = false; @@ -1819,19 +1738,18 @@ protected function reduceDoctrineArgument(Context $context, $children): Doctrine if ($hasKey) { /** @var Token $name */ $name = $children[0]; - $key = $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, false, true); + $key = ($this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode($name->value), $name->offset, $name->offset, false, true) : new Ast\Type\IdentifierTypeNode($name->value)); } /** @var Doctrine\DoctrineAnnotation|Ast\Type\IdentifierTypeNode|Doctrine\DoctrineArray|ConstExprNode $value */ - return $this->doctrineAttributes(new Doctrine\DoctrineArgument($key, $value), $context); + return $this->useAttributes ? $this->attributesAt(new Doctrine\DoctrineArgument($key, $value), $begin, $end, false, true) : new Doctrine\DoctrineArgument($key, $value); } /** * @param list $children */ - protected function reduceDoctrineNestedAnnotation(Context $context, $children): Doctrine\DoctrineAnnotation + protected function reduceDoctrineNestedAnnotation(int $begin, int $end, $children): Doctrine\DoctrineAnnotation { - $children = self::children($children); $arguments = []; foreach ($children as $child) { if (!$child instanceof Doctrine\DoctrineArgument) { @@ -1841,13 +1759,13 @@ protected function reduceDoctrineNestedAnnotation(Context $context, $children): $arguments[] = $child; } - return $this->doctrineAttributes(new Doctrine\DoctrineAnnotation($children[0]->value, $arguments), $context); + return $this->useAttributes ? $this->attributesAt(new Doctrine\DoctrineAnnotation($children[0]->value, $arguments), $begin, $end, false, true) : new Doctrine\DoctrineAnnotation($children[0]->value, $arguments); } /** * @param list $children */ - protected function reduceDoctrineArray(Context $context, $children): Doctrine\DoctrineArray + protected function reduceDoctrineArray(int $begin, int $end, $children): Doctrine\DoctrineArray { $items = []; foreach ($children as $child) { @@ -1858,16 +1776,16 @@ protected function reduceDoctrineArray(Context $context, $children): Doctrine\Do $items[] = $child; } - return $this->doctrineAttributes(new Doctrine\DoctrineArray($items), $context); + return $this->useAttributes ? $this->attributesAt(new Doctrine\DoctrineArray($items), $begin, $end, false, true) : new Doctrine\DoctrineArray($items); } /** * @param list $children */ - protected function reduceDoctrineArrayItem(Context $context, $children): Doctrine\DoctrineArrayItem + protected function reduceDoctrineArrayItem(int $begin, int $end, $children): Doctrine\DoctrineArrayItem { $nodes = []; - foreach (self::children($children) as $child) { + foreach ($children as $child) { if ($child instanceof Token) { continue; } @@ -1879,15 +1797,14 @@ protected function reduceDoctrineArrayItem(Context $context, $children): Doctrin ? new Doctrine\DoctrineArrayItem($nodes[0], $nodes[1]) : new Doctrine\DoctrineArrayItem(null, $nodes[0]); - return $this->doctrineAttributes($item, $context); + return $this->useAttributes ? $this->attributesAt($item, $begin, $end, false, true) : $item; } /** * @param list $children */ - protected function reduceDoctrineArrayKey(Context $context, $children): Node + protected function reduceDoctrineArrayKey(int $begin, int $end, $children): Node { - $children = self::children($children); $first = $children[0]; if ($first instanceof Node) { return $first; @@ -1899,52 +1816,52 @@ protected function reduceDoctrineArrayKey(Context $context, $children): Node $key = $this->stringOrIdentifier($first); } - return $this->doctrineAttributes($key, $context); + return $this->useAttributes ? $this->attributesAt($key, $begin, $end, false, true) : $key; } /** * @param list $children */ - protected function reduceDoctrineIdentifier(Context $context, $children): Ast\Type\IdentifierTypeNode + protected function reduceDoctrineIdentifier(int $begin, int $end, $children): Ast\Type\IdentifierTypeNode { - return $this->doctrineAttributes(new Ast\Type\IdentifierTypeNode(self::children($children)[0]->value), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\Type\IdentifierTypeNode($children[0]->value), $begin, $end, false, true) : new Ast\Type\IdentifierTypeNode($children[0]->value); } /** * @param list $children */ - protected function reduceDoctrineConstantFetch(Context $context, $children): ConstExprNode + protected function reduceDoctrineConstantFetch(int $begin, int $end, $children): ConstExprNode { - return $this->doctrineAttributes($this->constantFetch(self::children($children)), $context); + return $this->attributesAt($this->constantFetch($children), $begin, $end, false, true); } /** * @param list $children */ - protected function reduceDoctrineFloat(Context $context, $children): ConstExprNode + protected function reduceDoctrineFloat(int $begin, int $end, $children): ConstExprNode { - return $this->doctrineAttributes(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', self::children($children)[0]->value)), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $children[0]->value)), $begin, $end, false, true) : new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $children[0]->value)); } /** * @param list $children */ - protected function reduceDoctrineInteger(Context $context, $children): ConstExprNode + protected function reduceDoctrineInteger(int $begin, int $end, $children): ConstExprNode { - return $this->doctrineAttributes(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', self::children($children)[0]->value)), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $children[0]->value)), $begin, $end, false, true) : new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $children[0]->value)); } /** * @param list $children */ - protected function reduceDoctrineString(Context $context, $children): ConstExprNode + protected function reduceDoctrineString(int $begin, int $end, $children): ConstExprNode { $text = ''; - foreach (self::children($children) as $child) { + foreach ($children as $child) { $text .= $child->value; } - return $this->doctrineAttributes(new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)), $context); + return $this->useAttributes ? $this->attributesAt(new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)), $begin, $end, false, true) : new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)); } } diff --git a/src/Parser/Generated/GeneratedParser.php b/src/Parser/Generated/GeneratedParser.php index 656e9db7..c297d8f5 100644 --- a/src/Parser/Generated/GeneratedParser.php +++ b/src/Parser/Generated/GeneratedParser.php @@ -4,7 +4,6 @@ use PHPStan\PhpDocParser\Ast\Comment; use PHPStan\PhpDocParser\Parser\Phplrt\Token; -use Phplrt\Parser\Context; use function array_keys; use function is_array; use function ksort; @@ -18,7 +17,8 @@ * phplrt would, and building its value along: a method named "b" followed by * the identifier of a rule reads the rule and pushes its value, one named "s" * only reads it. The values are built by the reducers of the class extending - * this one. + * this one, which are given the index of the first and of the last token of + * the lexer the rule has read. * * @internal */ @@ -100,6 +100,9 @@ abstract class GeneratedParser /** @var array the identifier of the token at each position, the last one being -1 */ protected array $ids = []; + /** @var array the index of the token of the lexer at each position */ + protected array $indexes = []; + /** the position the reading is at */ protected int $p = 0; @@ -120,323 +123,318 @@ abstract class GeneratedParser abstract protected function token(int $position): Token; - /** - * The context of whatever has been read from the given position up to the - * given one, or up to the position the reading is at. - */ - abstract protected function context(int $from, ?int $to = null): Context; /** * @param list $children * @return mixed */ - abstract protected function reduceType(Context $context, $children); + abstract protected function reduceType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceSubType(Context $context, $children); + abstract protected function reduceSubType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceNullable(Context $context, $children); + abstract protected function reduceNullable(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceAtomic(Context $context, $children); + abstract protected function reduceAtomic(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceCallableReturnType(Context $context, $children); + abstract protected function reduceCallableReturnType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceArrayOrOffsetAccessItem(Context $context, $children); + abstract protected function reduceArrayOrOffsetAccessItem(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceGeneric(Context $context, $children); + abstract protected function reduceGeneric(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceGenericInReturnType(Context $context, $children); + abstract protected function reduceGenericInReturnType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceGenericArgument(Context $context, $children); + abstract protected function reduceGenericArgument(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceCallable(Context $context, $children); + abstract protected function reduceCallable(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceCallableWithTemplates(Context $context, $children); + abstract protected function reduceCallableWithTemplates(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceCallableTemplateArgument(Context $context, $children); + abstract protected function reduceCallableTemplateArgument(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceCallableParameter(Context $context, $children); + abstract protected function reduceCallableParameter(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceArrayShape(Context $context, $children); + abstract protected function reduceArrayShape(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceListShape(Context $context, $children); + abstract protected function reduceListShape(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceArrayShapeUnsealedType(Context $context, $children); + abstract protected function reduceArrayShapeUnsealedType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceListShapeUnsealedType(Context $context, $children); + abstract protected function reduceListShapeUnsealedType(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceArrayShapeItem(Context $context, $children); + abstract protected function reduceArrayShapeItem(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceArrayShapeKey(Context $context, $children); + abstract protected function reduceArrayShapeKey(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceObjectShape(Context $context, $children); + abstract protected function reduceObjectShape(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceObjectShapeItem(Context $context, $children); + abstract protected function reduceObjectShapeItem(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceObjectShapeKey(Context $context, $children); + abstract protected function reduceObjectShapeKey(int $begin, int $end, $children); /** * @return mixed */ - abstract protected function reduceDiscardedComment(Context $context); + abstract protected function reduceDiscardedComment(int $begin, int $end); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantFloat(Context $context, $children); + abstract protected function reduceConstantFloat(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantInteger(Context $context, $children); + abstract protected function reduceConstantInteger(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantString(Context $context, $children); + abstract protected function reduceConstantString(int $begin, int $end, $children); /** * @return mixed */ - abstract protected function reduceConstantTrue(Context $context); + abstract protected function reduceConstantTrue(int $begin, int $end); /** * @return mixed */ - abstract protected function reduceConstantFalse(Context $context); + abstract protected function reduceConstantFalse(int $begin, int $end); /** * @return mixed */ - abstract protected function reduceConstantNull(Context $context); + abstract protected function reduceConstantNull(int $begin, int $end); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantArrayLiteral(Context $context, $children); + abstract protected function reduceConstantArrayLiteral(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantArrayShorthand(Context $context, $children); + abstract protected function reduceConstantArrayShorthand(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantArrayItem(Context $context, $children); + abstract protected function reduceConstantArrayItem(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceConstantFetch(Context $context, $children); + abstract protected function reduceConstantFetch(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reducePhpDoc(Context $context, $children); + abstract protected function reducePhpDoc(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceTextChild(Context $context, $children); + abstract protected function reduceTextChild(int $begin, int $end, $children); /** * @return mixed */ - abstract protected function reduceText(Context $context); + abstract protected function reduceText(int $begin, int $end); /** * @return mixed */ - abstract protected function reduceDoctrineText(Context $context); + abstract protected function reduceDoctrineText(int $begin, int $end); /** * @param list $children * @return mixed */ - abstract protected function reduceKnownTag(Context $context, $children); + abstract protected function reduceKnownTag(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceMethodParameter(Context $context, $children); + abstract protected function reduceMethodParameter(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceGenericTag(Context $context, $children); + abstract protected function reduceGenericTag(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineTag(Context $context, $children); + abstract protected function reduceDoctrineTag(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceInvalidTag(Context $context, $children); + abstract protected function reduceInvalidTag(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceInvalidTypeAliasTag(Context $context, $children); + abstract protected function reduceInvalidTypeAliasTag(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineArgument(Context $context, $children); + abstract protected function reduceDoctrineArgument(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineNestedAnnotation(Context $context, $children); + abstract protected function reduceDoctrineNestedAnnotation(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineArray(Context $context, $children); + abstract protected function reduceDoctrineArray(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineArrayItem(Context $context, $children); + abstract protected function reduceDoctrineArrayItem(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineArrayKey(Context $context, $children); + abstract protected function reduceDoctrineArrayKey(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineIdentifier(Context $context, $children); + abstract protected function reduceDoctrineIdentifier(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineConstantFetch(Context $context, $children); + abstract protected function reduceDoctrineConstantFetch(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineFloat(Context $context, $children); + abstract protected function reduceDoctrineFloat(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineInteger(Context $context, $children); + abstract protected function reduceDoctrineInteger(int $begin, int $end, $children); /** * @param list $children * @return mixed */ - abstract protected function reduceDoctrineString(Context $context, $children); + abstract protected function reduceDoctrineString(int $begin, int $end, $children); /** * Where the last reading has failed, along with the tokens expected there. @@ -591,7 +589,7 @@ private function b0(): bool $this->comments = $cs1; return false; k1: - $this->v[$m1] = $this->reducePhpDoc($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->v[$m1] = $this->reducePhpDoc(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -608,10 +606,10 @@ private function b5(): bool $this->f = $this->p; $this->er = []; } - goto f200;} + goto f186;} } if (!$this->b8()) { - goto f200;} + goto f186;} // b460 $o2 = $this->p; $m2 = $this->n; @@ -628,29 +626,29 @@ private function b5(): bool $this->f = $this->p; $this->er = []; } - goto f203;} + goto f189;} } if (!$this->b8()) { - goto f203;} - goto k203; - f203: + goto f189;} + goto k189; + f189: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto e202; - k203: + goto e188; + k189: if ($this->p === $b2) { - goto e202; + goto e188; } } - e202: - goto k200; - f200: + e188: + goto k186; + f186: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k200: + k186: return true; } @@ -667,7 +665,7 @@ private function b8(): bool $m2 = $this->n; $cs2 = $this->comments; if (!$this->b189()) { - goto f461;} + goto f437;} // b458 $o3 = $this->p; $m3 = $this->n; @@ -681,13 +679,13 @@ private function b8(): bool $this->rec(7); } - goto n464;} - goto a463; - n464: + goto n440;} + goto a439; + n440: break; case 80: $this->p++; - goto a463; + goto a439; break; } @@ -695,62 +693,39 @@ private function b8(): bool $this->rec(458); } - goto f462; - a463: - goto k462; - f462: + goto f438; + a439: + goto k438; + f438: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f461; - k462: - goto k461; - f461: + goto f437; + k438: + goto k437; + f437: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n460; - k461: - goto a459; - n460: + goto n436; + k437: + goto a435; + n436: break; case 76: case 77: case 78: case 79: - // b9 - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(9); - } - - goto n465;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b10()) { - goto f466;} - if (($this->ids[$this->p] === 80)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(3); - } - goto k466; - f466: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n465; - k466: - goto a459; - n465: + if (!$this->b9()) { + goto n441;} + goto a435; + n441: // b188 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b189()) { - goto f468;} + goto f443;} // b458 $o3 = $this->p; $m3 = $this->n; @@ -764,13 +739,13 @@ private function b8(): bool $this->rec(7); } - goto n471;} - goto a470; - n471: + goto n446;} + goto a445; + n446: break; case 80: $this->p++; - goto a470; + goto a445; break; } @@ -778,24 +753,24 @@ private function b8(): bool $this->rec(458); } - goto f469; - a470: - goto k469; - f469: + goto f444; + a445: + goto k444; + f444: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f468; - k469: - goto k468; - f468: + goto f443; + k444: + goto k443; + f443: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n467; - k468: - goto a459; - n467: + goto n442; + k443: + goto a435; + n442: break; } @@ -803,15 +778,90 @@ private function b8(): bool $this->rec(8); } - goto f458; - a459: - goto k458; - f458: + goto f434; + a435: + goto k434; + f434: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k434: + + return true; + } + + private function b9(): bool + { + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(9); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b10 + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(10); + } + + goto f715;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 76: + case 77: + if (!$this->b11()) { + goto n718;} + goto a717; + n718: + if (!$this->b134()) { + goto n719;} + goto a717; + n719: + break; + case 78: + case 79: + if (!$this->b134()) { + goto n720;} + goto a717; + n720: + break; + } + + if ($this->p > $this->f) { + $this->rec(10); + } + + goto f716; + a717: + goto k716; + f716: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f715; + k716: + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + goto k715; + f715: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k458: + k715: return true; } @@ -885,7 +935,7 @@ private function b11(): bool $this->rec(12); } - goto f218;} + goto f204;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -894,7 +944,7 @@ private function b11(): bool $this->f = $this->p; $this->er = []; } - goto f218;} + goto f204;} } // b19 $o2 = $this->p; @@ -909,65 +959,33 @@ private function b11(): bool $this->rec(21); } - goto e222; + goto e208; } $this->p++; } - e222: + e208: if (!$this->s74()) { - goto f220;} - goto k220; - f220: + goto f206;} + goto k206; + f206: $this->p = $o3; - goto f218; - k220: - $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); - goto k218; - f218: + goto f204; + k206: + $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k204; + f204: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k218: - $this->v[$m1] = $this->reduceGenericTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k204: + $this->v[$m1] = $this->reduceGenericTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; } - private function b125(): bool - { - $o1 = $this->p; - // s125 - $o2 = $this->p; - // s126 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(116); - } - - goto e255; - } - - $this->p++; - } - e255: - if (($this->ids[$this->p] === 80)) { - if (!$this->s128()) { - goto n256;} - n256: - } elseif ($this->p > $this->f) { - $this->rec(128); - } - $this->v[$this->n++] = $this->reduceText($this->context($o1)); - - return true; - } - private function b134(): bool { if (!isset(self::T942497bd[$this->ids[$this->p]])) { @@ -986,16 +1004,16 @@ private function b134(): bool case 76: case 77: if (!$this->b187()) { - goto n225;} - goto a224; - n225: + goto n211;} + goto a210; + n211: break; case 78: case 79: if (!$this->b135()) { - goto n226;} - goto a224; - n226: + goto n212;} + goto a210; + n212: break; } @@ -1003,16 +1021,16 @@ private function b134(): bool $this->rec(134); } - goto f223; - a224: - goto k223; - f223: + goto f209; + a210: + goto k209; + f209: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k223: - $this->v[$m1] = $this->reduceDoctrineTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k209: + $this->v[$m1] = $this->reduceDoctrineTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -1035,7 +1053,7 @@ private function b135(): bool $this->rec(136); } - goto f477;} + goto f452;} $this->v[$this->n++] = $this->token($this->p++); // b137 @@ -1049,24 +1067,24 @@ private function b135(): bool $this->f = $this->p; $this->er = []; } - goto n480;} - goto a479; - n480: + goto n455;} + goto a454; + n455: break; case 32: case 82: if (!$this->b138()) { - goto n481;} - goto a479; - n481: + goto n456;} + goto a454; + n456: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n482;} - goto a479; - n482: + goto n457;} + goto a454; + n457: break; } @@ -1074,15 +1092,15 @@ private function b135(): bool $this->rec(137); } - goto f478; - a479: - goto k478; - f478: + goto f453; + a454: + goto k453; + f453: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f477; - k478: + goto f452; + k453: // b19 $o2 = $this->p; // s19 @@ -1096,27 +1114,27 @@ private function b135(): bool $this->rec(21); } - goto e486; + goto e461; } $this->p++; } - e486: + e461: if (!$this->s74()) { - goto f484;} - goto k484; - f484: + goto f459;} + goto k459; + f459: $this->p = $o3; - goto f477; - k484: - $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); - goto k477; - f477: + goto f452; + k459: + $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k452; + f452: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k477: + k452: return true; } @@ -1138,7 +1156,7 @@ private function b138(): bool $this->rec(16); } - goto f731;} + goto f721;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1152,12 +1170,12 @@ private function b138(): bool $this->rec(3); } - goto e733; + goto e723; } $this->p++; } - e733: + e723: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { // b141 if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { @@ -1165,13 +1183,13 @@ private function b138(): bool $this->rec(141); } - goto n734;} + goto n724;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b142()) { - goto f735;} + goto f725;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -1183,27 +1201,27 @@ private function b138(): bool $this->rec(3); } - goto e737; + goto e727; } $this->p++; } - e737: + e727: if (($this->ids[$this->p] === 40)) { if (!$this->b182()) { - goto n738;} - n738: + goto n728;} + n728: } elseif ($this->p > $this->f) { $this->rec(182); } - goto k735; - f735: + goto k725; + f725: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n734; - k735: - n734: + goto n724; + k725: + n724: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -1212,16 +1230,16 @@ private function b138(): bool $this->rec(53); } - goto f731;} + goto f721;} $this->v[$this->n++] = $this->token($this->p++); - goto k731; - f731: + goto k721; + f721: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k731: + k721: return true; } @@ -1270,43 +1288,10 @@ private function b142(): bool case 77: case 78: case 79: - // b146 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - goto n979;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f980;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->b138()) { - goto n981;} - n981: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k980; - f980: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n979; - k980: - $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a978; - n979: + if (!$this->b146()) { + goto n974;} + goto a973; + n974: break; case 1: case 2: @@ -1323,51 +1308,17 @@ private function b142(): bool case 14: case 24: if (!$this->b143()) { - goto n982;} - goto a978; - n982: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n983;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f984;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f984;} - } - goto k984; - f984: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n983; - k984: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a978; - n983: + goto n975;} + goto a973; + n975: + if (!$this->b172()) { + goto n976;} + goto a973; + n976: if (!$this->b160()) { - goto n985;} - goto a978; - n985: + goto n977;} + goto a973; + n977: break; case 7: case 15: @@ -1375,110 +1326,37 @@ private function b142(): bool case 17: case 18: if (!$this->b143()) { - goto n986;} - goto a978; - n986: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n987;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f988;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f988;} - } - goto k988; - f988: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n987; - k988: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a978; - n987: + goto n978;} + goto a973; + n978: + if (!$this->b172()) { + goto n979;} + goto a973; + n979: break; case 22: case 23: - // b155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n989;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->b156()) { - goto n992;} - goto a991; - n992: - break; - case 23: - $this->v[$this->n++] = $this->token($this->p++); - goto a991; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f990; - a991: - goto k990; - f990: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n989; - k990: - $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a978; - n989: + if (!$this->b155()) { + goto n980;} + goto a973; + n980: break; case 38: case 83: if (!$this->b148()) { - goto n993;} - goto a978; - n993: + goto n981;} + goto a973; + n981: break; case 19: - $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a978; + goto a973; break; case 20: - $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a978; + goto a973; break; } @@ -1486,16 +1364,16 @@ private function b142(): bool $this->rec(142); } - goto f977; - a978: - goto k977; - f977: + goto f972; + a973: + goto k972; + f972: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k977: - $this->v[$m1] = $this->reduceDoctrineArgument($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k972: + $this->v[$m1] = $this->reduceDoctrineArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -1518,7 +1396,7 @@ private function b143(): bool $this->rec(144); } - goto f1290;} + goto f1275;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1532,18 +1410,18 @@ private function b143(): bool $this->rec(3); } - goto e1292; + goto e1277; } $this->p++; } - e1292: + e1277: if (!($this->ids[$this->p] === 46)) { if ($this->p >= $this->f) { $this->rec(69); } - goto f1290;} + goto f1275;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1557,21 +1435,21 @@ private function b143(): bool $this->rec(3); } - goto e1294; + goto e1279; } $this->p++; } - e1294: + e1279: if (!$this->b145()) { - goto f1290;} - goto k1290; - f1290: + goto f1275;} + goto k1275; + f1275: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1290: + k1275: return true; } @@ -1620,43 +1498,10 @@ private function b145(): bool case 77: case 78: case 79: - // b146 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - goto n1580;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f1581;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->b138()) { - goto n1582;} - n1582: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k1581; - f1581: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1580; - k1581: - $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1579; - n1580: + if (!$this->b146()) { + goto n1558;} + goto a1557; + n1558: break; case 1: case 2: @@ -1672,155 +1517,48 @@ private function b145(): bool case 13: case 14: case 24: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1583;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1584;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1584;} - } - goto k1584; - f1584: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1583; - k1584: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1579; - n1583: + if (!$this->b172()) { + goto n1559;} + goto a1557; + n1559: if (!$this->b160()) { - goto n1585;} - goto a1579; - n1585: + goto n1560;} + goto a1557; + n1560: break; case 7: case 15: case 16: case 17: case 18: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1586;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1587;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1587;} - } - goto k1587; - f1587: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1586; - k1587: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1579; - n1586: + if (!$this->b172()) { + goto n1561;} + goto a1557; + n1561: break; case 22: case 23: - // b155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n1588;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->b156()) { - goto n1591;} - goto a1590; - n1591: - break; - case 23: - $this->v[$this->n++] = $this->token($this->p++); - goto a1590; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f1589; - a1590: - goto k1589; - f1589: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1588; - k1589: - $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1579; - n1588: + if (!$this->b155()) { + goto n1562;} + goto a1557; + n1562: break; case 38: case 83: if (!$this->b148()) { - goto n1592;} - goto a1579; - n1592: + goto n1563;} + goto a1557; + n1563: break; case 19: - $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1579; + goto a1557; break; case 20: - $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1579; + goto a1557; break; } @@ -1828,15 +1566,55 @@ private function b145(): bool $this->rec(145); } - goto f1578; - a1579: - goto k1578; - f1578: + goto f1556; + a1557: + goto k1556; + f1556: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1556: + + return true; + } + + private function b146(): bool + { + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(146); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f1273;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n1274;} + n1274: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + goto k1273; + f1273: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1578: + k1273: + $this->v[$m1] = $this->reduceDoctrineNestedAnnotation(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; return true; } @@ -1858,7 +1636,7 @@ private function b148(): bool $this->rec(149); } - goto f1300;} + goto f1285;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1872,12 +1650,12 @@ private function b148(): bool $this->rec(3); } - goto e1302; + goto e1287; } $this->p++; } - e1302: + e1287: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { // b151 if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { @@ -1885,13 +1663,13 @@ private function b148(): bool $this->rec(151); } - goto n1303;} + goto n1288;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b152()) { - goto f1304;} + goto f1289;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -1903,27 +1681,27 @@ private function b148(): bool $this->rec(3); } - goto e1306; + goto e1291; } $this->p++; } - e1306: + e1291: if (($this->ids[$this->p] === 40)) { if (!$this->b176()) { - goto n1307;} - n1307: + goto n1292;} + n1292: } elseif ($this->p > $this->f) { $this->rec(176); } - goto k1304; - f1304: + goto k1289; + f1289: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1303; - k1304: - n1303: + goto n1288; + k1289: + n1288: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -1932,17 +1710,17 @@ private function b148(): bool $this->rec(62); } - goto f1300;} + goto f1285;} $this->v[$this->n++] = $this->token($this->p++); - goto k1300; - f1300: + goto k1285; + f1285: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1300: - $this->v[$m1] = $this->reduceDoctrineArray($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1285: + $this->v[$m1] = $this->reduceDoctrineArray(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -1992,43 +1770,10 @@ private function b152(): bool case 77: case 78: case 79: - // b146 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - goto n1595;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f1596;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->b138()) { - goto n1597;} - n1597: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k1596; - f1596: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1595; - k1596: - $this->v[$m2] = $this->reduceDoctrineNestedAnnotation($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1594; - n1595: + if (!$this->b146()) { + goto n1570;} + goto a1569; + n1570: break; case 1: case 2: @@ -2045,51 +1790,17 @@ private function b152(): bool case 14: case 24: if (!$this->b153()) { - goto n1598;} - goto a1594; - n1598: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1599;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1600;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1600;} - } - goto k1600; - f1600: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1599; - k1600: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1594; - n1599: + goto n1571;} + goto a1569; + n1571: + if (!$this->b172()) { + goto n1572;} + goto a1569; + n1572: if (!$this->b160()) { - goto n1601;} - goto a1594; - n1601: + goto n1573;} + goto a1569; + n1573: break; case 7: case 15: @@ -2097,124 +1808,51 @@ private function b152(): bool case 17: case 18: if (!$this->b153()) { - goto n1602;} - goto a1594; - n1602: - // b172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1603;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1604;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1604;} - } - goto k1604; - f1604: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1603; - k1604: - $this->v[$m2] = $this->reduceDoctrineIdentifier($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1594; - n1603: + goto n1574;} + goto a1569; + n1574: + if (!$this->b172()) { + goto n1575;} + goto a1569; + n1575: break; case 22: case 23: if (!$this->b153()) { - goto n1605;} - goto a1594; - n1605: - // b155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n1606;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->b156()) { - goto n1609;} - goto a1608; - n1609: - break; - case 23: - $this->v[$this->n++] = $this->token($this->p++); - goto a1608; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f1607; - a1608: - goto k1607; - f1607: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1606; - k1607: - $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1594; - n1606: + goto n1576;} + goto a1569; + n1576: + if (!$this->b155()) { + goto n1577;} + goto a1569; + n1577: break; case 38: case 83: if (!$this->b148()) { - goto n1610;} - goto a1594; - n1610: + goto n1578;} + goto a1569; + n1578: break; case 19: - $this->v[$this->n++] = $this->reduceDoctrineFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1594; + goto a1569; break; case 20: if (!$this->b153()) { - goto n1611;} - goto a1594; - n1611: - $this->v[$this->n++] = $this->reduceDoctrineInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + goto n1579;} + goto a1569; + n1579: + $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1594; + goto a1569; break; case 21: if (!$this->b153()) { - goto n1612;} - goto a1594; - n1612: + goto n1580;} + goto a1569; + n1580: break; } @@ -2222,16 +1860,16 @@ private function b152(): bool $this->rec(152); } - goto f1593; - a1594: - goto k1593; - f1593: + goto f1568; + a1569: + goto k1568; + f1568: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1593: - $this->v[$m1] = $this->reduceDoctrineArrayItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1568: + $this->v[$m1] = $this->reduceDoctrineArrayItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -2250,7 +1888,7 @@ private function b153(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b154()) { - goto f1735;} + goto f1706;} // b139 $o2 = $this->p; $m2 = $this->n; @@ -2262,18 +1900,18 @@ private function b153(): bool $this->rec(3); } - goto e1737; + goto e1708; } $this->p++; } - e1737: + e1708: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1735;} + goto f1706;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -2287,21 +1925,21 @@ private function b153(): bool $this->rec(3); } - goto e1739; + goto e1710; } $this->p++; } - e1739: + e1710: if (!$this->b145()) { - goto f1735;} - goto k1735; - f1735: + goto f1706;} + goto k1706; + f1706: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1735: + k1706: return true; } @@ -2336,16 +1974,16 @@ private function b154(): bool case 14: case 24: if (!$this->b160()) { - goto n1780;} - goto a1779; - n1780: + goto n1751;} + goto a1750; + n1751: // b169 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(169); } - goto n1781;} + goto n1752;} $o2 = $this->p; $m2 = $this->n; @@ -2355,7 +1993,7 @@ private function b154(): bool $this->rec(144); } - goto f1782;} + goto f1753;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -2364,17 +2002,17 @@ private function b154(): bool $this->f = $this->p; $this->er = []; } - goto f1782;} + goto f1753;} } - goto k1782; - f1782: + goto k1753; + f1753: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1781; - k1782: - goto a1779; - n1781: + goto n1752; + k1753: + goto a1750; + n1752: break; case 7: case 15: @@ -2387,7 +2025,7 @@ private function b154(): bool $this->rec(169); } - goto n1783;} + goto n1754;} $o2 = $this->p; $m2 = $this->n; @@ -2397,7 +2035,7 @@ private function b154(): bool $this->rec(144); } - goto f1784;} + goto f1755;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -2406,88 +2044,95 @@ private function b154(): bool $this->f = $this->p; $this->er = []; } - goto f1784;} + goto f1755;} } - goto k1784; - f1784: + goto k1755; + f1755: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1783; - k1784: - goto a1779; - n1783: + goto n1754; + k1755: + goto a1750; + n1754: break; case 22: case 23: - // b155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } + if (!$this->b155()) { + goto n1756;} + goto a1750; + n1756: + break; + case 20: + $this->v[$this->n++] = $this->token($this->p++); + goto a1750; + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a1750; + break; + } - goto n1785;} + if ($this->p > $this->f) { + $this->rec(154); + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->b156()) { - goto n1788;} - goto a1787; - n1788: - break; - case 23: - $this->v[$this->n++] = $this->token($this->p++); - goto a1787; - break; - } + goto f1749; + a1750: + goto k1749; + f1749: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1749: + $this->v[$m1] = $this->reduceDoctrineArrayKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; - if ($this->p > $this->f) { - $this->rec(155); - } + return true; + } - goto f1786; - a1787: - goto k1786; - f1786: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1785; - k1786: - $this->v[$m2] = $this->reduceDoctrineString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a1779; - n1785: + private function b155(): bool + { + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(155); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: break; - case 20: - $this->v[$this->n++] = $this->token($this->p++); - goto a1779; + case 22: + if (!$this->b156()) { + goto n1284;} + goto a1283; + n1284: break; - case 21: + case 23: $this->v[$this->n++] = $this->token($this->p++); - goto a1779; + goto a1283; break; } if ($this->p > $this->f) { - $this->rec(154); + $this->rec(155); } - goto f1778; - a1779: - goto k1778; - f1778: + goto f1282; + a1283: + goto k1282; + f1282: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1778: - $this->v[$m1] = $this->reduceDoctrineArrayKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1282: + $this->v[$m1] = $this->reduceDoctrineString(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -2510,7 +2155,7 @@ private function b156(): bool $this->rec(44); } - goto f1296;} + goto f1564;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { @@ -2520,7 +2165,7 @@ private function b156(): bool $this->rec(158); } - goto n1297;} + goto n1565;} $o2 = $this->p; $m2 = $this->n; @@ -2533,36 +2178,36 @@ private function b156(): bool $this->rec(159); } - goto e1299; + goto e1567; } $this->v[$this->n++] = $this->token($this->p++); $k2++; } - e1299: + e1567: if ($k2 < 1) { - goto f1298; + goto f1566; } - goto k1298; - f1298: + goto k1566; + f1566: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1297; - k1298: - n1297: + goto n1565; + k1566: + n1565: } elseif ($this->p > $this->f) { $this->rec(158); } - goto k1296; - f1296: + goto k1564; + f1564: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1296: + k1564: return true; } @@ -2585,14 +2230,14 @@ private function b160(): bool $this->f = $this->p; $this->er = []; } - goto f1295;} + goto f1281;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1295;} + goto f1281;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 43)) { @@ -2600,19 +2245,19 @@ private function b160(): bool $this->rec(66); } - goto f1295;} + goto f1281;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b163()) { - goto f1295;} - goto k1295; - f1295: + goto f1281;} + goto k1281; + f1281: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1295: - $this->v[$m1] = $this->reduceDoctrineConstantFetch($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1281: + $this->v[$m1] = $this->reduceDoctrineConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -2658,7 +2303,7 @@ private function b163(): bool $this->rec(166); } - goto n709;} + goto n693;} $o2 = $this->p; $m2 = $this->n; @@ -2668,25 +2313,25 @@ private function b163(): bool $this->rec(144); } - goto f710;} + goto f694;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->b168()) { - goto n711;} - n711: + goto n695;} + n695: } elseif ($this->p > $this->f) { $this->rec(168); } - goto k710; - f710: + goto k694; + f694: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n709; - k710: - goto a708; - n709: + goto n693; + k694: + goto a692; + n693: break; case 50: // b164 @@ -2695,7 +2340,7 @@ private function b163(): bool $this->rec(164); } - goto n712;} + goto n696;} $o2 = $this->p; $m2 = $this->n; @@ -2705,29 +2350,29 @@ private function b163(): bool $this->rec(71); } - goto f713;} + goto f697;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T83e30518[$this->ids[$this->p]])) { if (!$this->b166()) { - goto n714;} - n714: + goto n698;} + n698: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k713; - f713: + goto k697; + f697: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n712; - k713: - goto a708; - n712: + goto n696; + k697: + goto a692; + n696: break; case 85: $this->v[$this->n++] = $this->token($this->p++); - goto a708; + goto a692; break; } @@ -2735,15 +2380,15 @@ private function b163(): bool $this->rec(163); } - goto f707; - a708: - goto k707; - f707: + goto f691; + a692: + goto k691; + f691: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k707: + k691: return true; } @@ -2765,23 +2410,23 @@ private function b164(): bool $this->rec(71); } - goto f1286;} + goto f1269;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T83e30518[$this->ids[$this->p]])) { if (!$this->b166()) { - goto n1287;} - n1287: + goto n1270;} + n1270: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k1286; - f1286: + goto k1269; + f1269: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1286: + k1269: return true; } @@ -2803,23 +2448,23 @@ private function b166(): bool $this->rec(144); } - goto f952;} + goto f947;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->b168()) { - goto n953;} - n953: + goto n948;} + n948: } elseif ($this->p > $this->f) { $this->rec(168); } - goto k952; - f952: + goto k947; + f947: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k952: + k947: return true; } @@ -2841,13 +2486,13 @@ private function b168(): bool break; case 50: if (!$this->b164()) { - goto n951;} - goto a950; - n951: + goto n946;} + goto a945; + n946: break; case 85: $this->v[$this->n++] = $this->token($this->p++); - goto a950; + goto a945; break; } @@ -2855,15 +2500,56 @@ private function b168(): bool $this->rec(168); } - goto f949; - a950: - goto k949; - f949: + goto f944; + a945: + goto k944; + f944: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k949: + k944: + + return true; + } + + private function b172(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(172); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1280;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1280;} + } + goto k1280; + f1280: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1280: + $this->v[$m1] = $this->reduceDoctrineIdentifier(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; return true; } @@ -2888,7 +2574,7 @@ private function b176(): bool $this->rec(177); } - goto e1614; + goto e1582; } // b177 @@ -2897,7 +2583,7 @@ private function b176(): bool $this->rec(177); } - goto e1614;} + goto e1582;} $o2 = $this->p; $m2 = $this->n; @@ -2907,7 +2593,7 @@ private function b176(): bool $this->rec(63); } - goto f1615;} + goto f1583;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -2921,40 +2607,40 @@ private function b176(): bool $this->rec(3); } - goto e1617; + goto e1585; } $this->p++; } - e1617: + e1585: if (!$this->b178()) { - goto f1615;} - goto k1615; - f1615: + goto f1583;} + goto k1583; + f1583: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1614; - k1615: + goto e1582; + k1583: if ($this->p === $b1) { $k1 = 1; - goto e1614; + goto e1582; } $k1++; } - e1614: + e1582: if ($k1 < 1) { - goto f1613; + goto f1581; } - goto k1613; - f1613: + goto k1581; + f1581: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1613: + k1581: return true; } @@ -2972,13 +2658,13 @@ private function b178(): bool $this->rec(180); } - goto n1742;} + goto n1713;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b152()) { - goto f1743;} + goto f1714;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -2990,21 +2676,21 @@ private function b178(): bool $this->rec(3); } - goto e1745; + goto e1716; } $this->p++; } - e1745: - goto k1743; - f1743: + e1716: + goto k1714; + f1714: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1742; - k1743: - goto a1741; - n1742: + goto n1713; + k1714: + goto a1712; + n1713: break; case 0: case 25: @@ -3045,9 +2731,9 @@ private function b178(): bool $this->rec(62); } - goto n1746;} - goto a1741; - n1746: + goto n1717;} + goto a1712; + n1717: break; } @@ -3055,15 +2741,15 @@ private function b178(): bool $this->rec(178); } - goto f1740; - a1741: - goto k1740; - f1740: + goto f1711; + a1712: + goto k1711; + f1711: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1740: + k1711: return true; } @@ -3088,7 +2774,7 @@ private function b182(): bool $this->rec(183); } - goto e995; + goto e983; } // b183 @@ -3097,7 +2783,7 @@ private function b182(): bool $this->rec(183); } - goto e995;} + goto e983;} $o2 = $this->p; $m2 = $this->n; @@ -3107,7 +2793,7 @@ private function b182(): bool $this->rec(63); } - goto f996;} + goto f984;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -3121,40 +2807,40 @@ private function b182(): bool $this->rec(3); } - goto e998; + goto e986; } $this->p++; } - e998: + e986: if (!$this->b184()) { - goto f996;} - goto k996; - f996: + goto f984;} + goto k984; + f984: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e995; - k996: + goto e983; + k984: if ($this->p === $b1) { $k1 = 1; - goto e995; + goto e983; } $k1++; } - e995: + e983: if ($k1 < 1) { - goto f994; + goto f982; } - goto k994; - f994: + goto k982; + f982: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k994: + k982: return true; } @@ -3172,13 +2858,13 @@ private function b184(): bool $this->rec(186); } - goto n1310;} + goto n1295;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b142()) { - goto f1311;} + goto f1296;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -3190,21 +2876,21 @@ private function b184(): bool $this->rec(3); } - goto e1313; + goto e1298; } $this->p++; } - e1313: - goto k1311; - f1311: + e1298: + goto k1296; + f1296: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1310; - k1311: - goto a1309; - n1310: + goto n1295; + k1296: + goto a1294; + n1295: break; case 0: case 21: @@ -3246,9 +2932,9 @@ private function b184(): bool $this->rec(53); } - goto n1314;} - goto a1309; - n1314: + goto n1299;} + goto a1294; + n1299: break; } @@ -3256,15 +2942,15 @@ private function b184(): bool $this->rec(184); } - goto f1308; - a1309: - goto k1308; - f1308: + goto f1293; + a1294: + goto k1293; + f1293: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1308: + k1293: return true; } @@ -3286,11 +2972,11 @@ private function b187(): bool $this->rec(12); } - goto f472;} + goto f447;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b138()) { - goto f472;} + goto f447;} // b19 $o2 = $this->p; // s19 @@ -3304,27 +2990,27 @@ private function b187(): bool $this->rec(21); } - goto e476; + goto e451; } $this->p++; } - e476: + e451: if (!$this->s74()) { - goto f474;} - goto k474; - f474: + goto f449;} + goto k449; + f449: $this->p = $o3; - goto f472; - k474: - $this->v[$this->n++] = $this->reduceDoctrineText($this->context($o2)); - goto k472; - f472: + goto f447; + k449: + $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k447; + f447: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k472: + k447: return true; } @@ -3336,40 +3022,8 @@ private function b189(): bool $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - // b455 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f34;} - } - // b457 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - if (!$this->b125()) { - goto f35;} - goto k35; - f35: - $this->p = $o3; - $this->n = $m3; - $this->comments = $cs3; - goto f34; - k35: - $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); - $this->n = $m3 + 1; - goto k34; - f34: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n33; - k34: + if (!$this->b455()) { + goto n33;} goto a32; n33: break; @@ -3399,156 +3053,30 @@ private function b189(): bool case 74: case 75: if (!$this->b190()) { - goto n36;} + goto n34;} goto a32; - n36: - // b454 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(454); - } - - goto n37;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f38;} - - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f38;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k38; - f38: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n37; - k38: - $this->v[$m2] = $this->reduceInvalidTag($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; + n34: + if (!$this->b454()) { + goto n35;} goto a32; - n37: - // b455 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f41;} - } - // b457 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - if (!$this->b125()) { - goto f42;} - goto k42; - f42: - $this->p = $o3; - $this->n = $m3; - $this->comments = $cs3; - goto f41; - k42: - $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); - $this->n = $m3 + 1; - goto k41; - f41: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n40; - k41: + n35: + if (!$this->b455()) { + goto n36;} goto a32; - n40: + n36: break; case 76: case 77: case 78: case 79: - // b454 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(454); - } - - goto n43;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f44;} - - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f44;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k44; - f44: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n43; - k44: - $this->v[$m2] = $this->reduceInvalidTag($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; + if (!$this->b454()) { + goto n37;} goto a32; - n43: - // b455 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f47;} - } - // b457 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - if (!$this->b125()) { - goto f48;} - goto k48; - f48: - $this->p = $o3; - $this->n = $m3; - $this->comments = $cs3; - goto f47; - k48: - $this->v[$m3] = $this->reduceTextChild($this->context($o3), $this->n === $m3 + 1 && !\is_array($this->v[$m3]) ? [$this->v[$m3]] : $this->merge($m3)); - $this->n = $m3 + 1; - goto k47; - f47: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n46; - k47: + n37: + if (!$this->b455()) { + goto n38;} goto a32; - n46: + n38: break; } @@ -3586,33 +3114,33 @@ private function b190(): bool break; case 51: if (!$this->b402()) { - goto n65;} - goto a64; - n65: + goto n55;} + goto a54; + n55: break; case 52: if (!$this->b405()) { - goto n66;} - goto a64; - n66: + goto n56;} + goto a54; + n56: break; case 53: if (!$this->b406()) { - goto n67;} - goto a64; - n67: + goto n57;} + goto a54; + n57: break; case 54: if (!$this->b404()) { - goto n68;} - goto a64; - n68: + goto n58;} + goto a54; + n58: break; case 55: if (!$this->b401()) { - goto n69;} - goto a64; - n69: + goto n59;} + goto a54; + n59: break; case 56: // b395 @@ -3621,7 +3149,7 @@ private function b190(): bool $this->rec(395); } - goto n70;} + goto n60;} $o2 = $this->p; $m2 = $this->n; @@ -3631,7 +3159,7 @@ private function b190(): bool $this->rec(95); } - goto f71;} + goto f61;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -3640,31 +3168,31 @@ private function b190(): bool $this->rec(391); } - goto f71;} + goto f61;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f72;} + goto f62;} if (!$this->b388()) { - goto f72;} - goto k72; - f72: + goto f62;} + goto k62; + f62: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f71; - k72: - goto k71; - f71: + goto f61; + k62: + goto k61; + f61: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n70; - k71: - goto a64; - n70: + goto n60; + k61: + goto a54; + n60: break; case 57: // b394 @@ -3673,7 +3201,7 @@ private function b190(): bool $this->rec(394); } - goto n73;} + goto n63;} $o2 = $this->p; $m2 = $this->n; @@ -3683,7 +3211,7 @@ private function b190(): bool $this->rec(94); } - goto f74;} + goto f64;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -3692,44 +3220,44 @@ private function b190(): bool $this->rec(391); } - goto f74;} + goto f64;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f75;} + goto f65;} if (!$this->b388()) { - goto f75;} - goto k75; - f75: + goto f65;} + goto k65; + f65: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f74; - k75: - goto k74; - f74: + goto f64; + k65: + goto k64; + f64: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n73; - k74: - goto a64; - n73: + goto n63; + k64: + goto a54; + n63: break; case 58: if (!$this->b443()) { - goto n76;} - goto a64; - n76: + goto n66;} + goto a54; + n66: break; case 59: if (!$this->b446()) { - goto n77;} - goto a64; - n77: - break; + goto n67;} + goto a54; + n67: + break; case 60: // b397 if (!($this->ids[$this->p] === 60)) { @@ -3737,7 +3265,7 @@ private function b190(): bool $this->rec(397); } - goto n78;} + goto n68;} $o2 = $this->p; $m2 = $this->n; @@ -3747,7 +3275,7 @@ private function b190(): bool $this->rec(107); } - goto f79;} + goto f69;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -3756,31 +3284,31 @@ private function b190(): bool $this->rec(391); } - goto f79;} + goto f69;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f80;} + goto f70;} if (!$this->b388()) { - goto f80;} - goto k80; - f80: + goto f70;} + goto k70; + f70: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f79; - k80: - goto k79; - f79: + goto f69; + k70: + goto k69; + f69: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n78; - k79: - goto a64; - n78: + goto n68; + k69: + goto a54; + n68: break; case 61: // b396 @@ -3789,7 +3317,7 @@ private function b190(): bool $this->rec(396); } - goto n81;} + goto n71;} $o2 = $this->p; $m2 = $this->n; @@ -3799,7 +3327,7 @@ private function b190(): bool $this->rec(96); } - goto f82;} + goto f72;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -3808,49 +3336,49 @@ private function b190(): bool $this->rec(391); } - goto f82;} + goto f72;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f83;} + goto f73;} if (!$this->b388()) { - goto f83;} - goto k83; - f83: + goto f73;} + goto k73; + f73: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f82; - k83: - goto k82; - f82: + goto f72; + k73: + goto k72; + f72: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n81; - k82: - goto a64; - n81: + goto n71; + k72: + goto a54; + n71: break; case 62: if (!$this->b436()) { - goto n84;} - goto a64; - n84: + goto n74;} + goto a54; + n74: break; case 63: if (!$this->b398()) { - goto n85;} - goto a64; - n85: + goto n75;} + goto a54; + n75: break; case 64: if (!$this->b439()) { - goto n86;} - goto a64; - n86: + goto n76;} + goto a54; + n76: break; case 65: // b407 @@ -3859,7 +3387,7 @@ private function b190(): bool $this->rec(407); } - goto n87;} + goto n77;} $o2 = $this->p; $m2 = $this->n; @@ -3869,45 +3397,45 @@ private function b190(): bool $this->rec(97); } - goto f88;} + goto f78;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f88;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k88; - f88: + goto f78;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k78; + f78: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n87; - k88: - goto a64; - n87: + goto n77; + k78: + goto a54; + n77: break; case 66: if (!$this->b441()) { - goto n90;} - goto a64; - n90: + goto n80;} + goto a54; + n80: if (!$this->b442()) { - goto n91;} - goto a64; - n91: + goto n81;} + goto a54; + n81: break; case 67: if (!$this->b400()) { - goto n92;} - goto a64; - n92: + goto n82;} + goto a54; + n82: break; case 68: if (!$this->b437()) { - goto n93;} - goto a64; - n93: + goto n83;} + goto a54; + n83: break; case 69: // b408 @@ -3916,7 +3444,7 @@ private function b190(): bool $this->rec(408); } - goto n94;} + goto n84;} $o2 = $this->p; $m2 = $this->n; @@ -3926,20 +3454,20 @@ private function b190(): bool $this->rec(99); } - goto f95;} + goto f85;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b409()) { - goto f95;} - goto k95; - f95: + goto f85;} + goto k85; + f85: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n94; - k95: - goto a64; - n94: + goto n84; + k85: + goto a54; + n84: break; case 70: // b390 @@ -3948,7 +3476,7 @@ private function b190(): bool $this->rec(390); } - goto n96;} + goto n86;} $o2 = $this->p; $m2 = $this->n; @@ -3958,7 +3486,7 @@ private function b190(): bool $this->rec(91); } - goto f97;} + goto f87;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -3967,31 +3495,31 @@ private function b190(): bool $this->rec(391); } - goto f97;} + goto f87;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f98;} + goto f88;} if (!$this->b388()) { - goto f98;} - goto k98; - f98: + goto f88;} + goto k88; + f88: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f97; - k98: - goto k97; - f97: + goto f87; + k88: + goto k87; + f87: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n96; - k97: - goto a64; - n96: + goto n86; + k87: + goto a54; + n86: break; case 71: // b392 @@ -4000,7 +3528,7 @@ private function b190(): bool $this->rec(392); } - goto n99;} + goto n89;} $o2 = $this->p; $m2 = $this->n; @@ -4010,7 +3538,7 @@ private function b190(): bool $this->rec(92); } - goto f100;} + goto f90;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -4019,63 +3547,37 @@ private function b190(): bool $this->rec(391); } - goto f100;} + goto f90;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f101;} + goto f91;} if (!$this->b388()) { - goto f101;} - goto k101; - f101: + goto f91;} + goto k91; + f91: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f100; - k101: - goto k100; - f100: + goto f90; + k91: + goto k90; + f90: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n99; - k100: - goto a64; - n99: + goto n89; + k90: + goto a54; + n89: break; case 72: - // b191 - if (!($this->ids[$this->p] === 72)) { - if ($this->p > $this->f) { - $this->rec(191); - } - - goto n102;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 72)) { - if ($this->p >= $this->f) { - $this->rec(84); - } - - goto f103;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b192()) { - goto f103;} - goto k103; - f103: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n102; - k103: - goto a64; - n102: + if (!$this->b191()) { + goto n92;} + goto a54; + n92: break; case 73: // b393 @@ -4084,7 +3586,7 @@ private function b190(): bool $this->rec(393); } - goto n104;} + goto n93;} $o2 = $this->p; $m2 = $this->n; @@ -4094,7 +3596,7 @@ private function b190(): bool $this->rec(93); } - goto f105;} + goto f94;} $this->v[$this->n++] = $this->token($this->p++); // b391 @@ -4103,71 +3605,43 @@ private function b190(): bool $this->rec(391); } - goto f105;} + goto f94;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f106;} + goto f95;} if (!$this->b388()) { - goto f106;} - goto k106; - f106: + goto f95;} + goto k95; + f95: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f105; - k106: - goto k105; - f105: + goto f94; + k95: + goto k94; + f94: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n104; - k105: - goto a64; - n104: + goto n93; + k94: + goto a54; + n93: break; case 74: if (!$this->b440()) { - goto n107;} - goto a64; - n107: + goto n96;} + goto a54; + n96: break; case 75: - // b384 - if (!($this->ids[$this->p] === 75)) { - if ($this->p > $this->f) { - $this->rec(384); - } - - goto n108;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 75)) { - if ($this->p >= $this->f) { - $this->rec(90); - } - - goto f109;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b199()) { - goto f109;} - if (!$this->b385()) { - goto f109;} - goto k109; - f109: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n108; - k109: - goto a64; - n108: + if (!$this->b384()) { + goto n97;} + goto a54; + n97: break; } @@ -4175,21 +3649,54 @@ private function b190(): bool $this->rec(190); } - goto f63; - a64: - goto k63; - f63: + goto f53; + a54: + goto k53; + f53: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k63: - $this->v[$m1] = $this->reduceKnownTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k53: + $this->v[$m1] = $this->reduceKnownTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; } + private function b191(): bool + { + if (!($this->ids[$this->p] === 72)) { + if ($this->p > $this->f) { + $this->rec(191); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 72)) { + if ($this->p >= $this->f) { + $this->rec(84); + } + + goto f295;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b192()) { + goto f295;} + goto k295; + f295: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k295: + + return true; + } + private function b192(): bool { if (!isset(self::T3bf4df75[$this->ids[$this->p]])) { @@ -4233,17 +3740,17 @@ private function b192(): bool case 32: case 82: if (!$this->b198()) { - goto n311;} - goto a310; - n311: + goto n544;} + goto a543; + n544: break; case 26: case 27: case 42: if (!$this->b193()) { - goto n312;} - goto a310; - n312: + goto n545;} + goto a543; + n545: break; } @@ -4251,15 +3758,15 @@ private function b192(): bool $this->rec(192); } - goto f309; - a310: - goto k309; - f309: + goto f542; + a543: + goto k542; + f542: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k309: + k542: return true; } @@ -4281,7 +3788,7 @@ private function b193(): bool $this->rec(195); } - goto f566;} + goto f795;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -4297,21 +3804,21 @@ private function b193(): bool $this->rec(47); } - goto f566;} + goto f795;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o2 = $this->p; if (!$this->s125()) { - goto f566;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k566; - f566: + goto f795;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k795; + f795: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k566: + k795: return true; } @@ -4329,7 +3836,7 @@ private function b198(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b199()) { - goto f564;} + goto f793;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -4345,21 +3852,21 @@ private function b198(): bool $this->rec(47); } - goto f564;} + goto f793;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o2 = $this->p; if (!$this->s125()) { - goto f564;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k564; - f564: + goto f793;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k793; + f793: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k564: + k793: return true; } @@ -4411,24 +3918,24 @@ private function b199(): bool $this->rec(367); } - goto n172;} + goto n160;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b201()) { - goto f173;} + goto f161;} if (!$this->b368()) { - goto f173;} - goto k173; - f173: + goto f161;} + goto k161; + f161: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n172; - k173: - goto a171; - n172: + goto n160; + k161: + goto a159; + n160: break; case 30: // b200 @@ -4437,7 +3944,7 @@ private function b199(): bool $this->rec(200); } - goto n174;} + goto n162;} $o2 = $this->p; $m2 = $this->n; @@ -4447,22 +3954,22 @@ private function b199(): bool $this->rec(51); } - goto f175;} + goto f163;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f175;} - goto k175; - f175: + goto f163;} + goto k163; + f163: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n174; - k175: - $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n162; + k163: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); $this->n = $m2 + 1; - goto a171; - n174: + goto a159; + n162: break; } @@ -4470,16 +3977,16 @@ private function b199(): bool $this->rec(199); } - goto f170; - a171: - goto k170; - f170: + goto f158; + a159: + goto k158; + f158: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k170: - $this->v[$m1] = $this->reduceType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k158: + $this->v[$m1] = $this->reduceType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -4520,7 +4027,7 @@ private function b201(): bool $this->rec(366); } - goto n368;} + goto n342;} $o2 = $this->p; $m2 = $this->n; @@ -4530,7 +4037,7 @@ private function b201(): bool $this->rec(332); } - goto f369;} + goto f343;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -4539,26 +4046,26 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f369;} + goto f343;} } if (!$this->b281()) { - goto f369;} - goto k369; - f369: + goto f343;} + goto k343; + f343: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n368; - k369: - goto a367; - n368: + goto n342; + k343: + goto a341; + n342: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n370;} + goto n344;} $o2 = $this->p; $m2 = $this->n; @@ -4576,19 +4083,19 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f371;} + goto f345;} } if (!$this->b335()) { - goto f371;} - goto k371; - f371: + goto f345;} + goto k345; + f345: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n370; - k371: - goto a367; - n370: + goto n344; + k345: + goto a341; + n344: break; case 19: case 20: @@ -4600,7 +4107,7 @@ private function b201(): bool $this->rec(333); } - goto n373;} + goto n347;} $o2 = $this->p; $m2 = $this->n; @@ -4618,34 +4125,34 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f374;} + goto f348;} } if (!$this->b335()) { - goto f374;} - goto k374; - f374: + goto f348;} + goto k348; + f348: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n373; - k374: - goto a367; - n373: + goto n347; + k348: + goto a341; + n347: break; case 3: case 4: case 8: if (!$this->b255()) { - goto n376;} - goto a367; - n376: + goto n350;} + goto a341; + n350: // b278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n377;} + goto n351;} $o2 = $this->p; $m2 = $this->n; @@ -4655,7 +4162,7 @@ private function b201(): bool $this->rec(279); } - goto f378;} + goto f352;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -4664,7 +4171,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f378;} + goto f352;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4672,26 +4179,26 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f378;} + goto f352;} } if (!$this->b281()) { - goto f378;} - goto k378; - f378: + goto f352;} + goto k352; + f352: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n377; - k378: - goto a367; - n377: + goto n351; + k352: + goto a341; + n351: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n379;} + goto n353;} $o2 = $this->p; $m2 = $this->n; @@ -4709,39 +4216,39 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f380;} + goto f354;} } if (!$this->b335()) { - goto f380;} - goto k380; - f380: + goto f354;} + goto k354; + f354: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n379; - k380: - goto a367; - n379: + goto n353; + k354: + goto a341; + n353: break; case 32: case 82: if (!$this->b202()) { - goto n382;} - goto a367; - n382: + goto n356;} + goto a341; + n356: break; case 6: if (!$this->b267()) { - goto n383;} - goto a367; - n383: + goto n357;} + goto a341; + n357: // b278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n384;} + goto n358;} $o2 = $this->p; $m2 = $this->n; @@ -4751,7 +4258,7 @@ private function b201(): bool $this->rec(279); } - goto f385;} + goto f359;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -4760,7 +4267,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f385;} + goto f359;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4768,26 +4275,26 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f385;} + goto f359;} } if (!$this->b281()) { - goto f385;} - goto k385; - f385: + goto f359;} + goto k359; + f359: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n384; - k385: - goto a367; - n384: + goto n358; + k359: + goto a341; + n358: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n386;} + goto n360;} $o2 = $this->p; $m2 = $this->n; @@ -4805,32 +4312,32 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f387;} + goto f361;} } if (!$this->b335()) { - goto f387;} - goto k387; - f387: + goto f361;} + goto k361; + f361: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n386; - k387: - goto a367; - n386: + goto n360; + k361: + goto a341; + n360: break; case 7: if (!$this->b230()) { - goto n389;} - goto a367; - n389: + goto n363;} + goto a341; + n363: // b278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n390;} + goto n364;} $o2 = $this->p; $m2 = $this->n; @@ -4840,7 +4347,7 @@ private function b201(): bool $this->rec(279); } - goto f391;} + goto f365;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -4849,7 +4356,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f391;} + goto f365;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4857,26 +4364,26 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f391;} + goto f365;} } if (!$this->b281()) { - goto f391;} - goto k391; - f391: + goto f365;} + goto k365; + f365: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n390; - k391: - goto a367; - n390: + goto n364; + k365: + goto a341; + n364: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n392;} + goto n366;} $o2 = $this->p; $m2 = $this->n; @@ -4894,25 +4401,25 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f393;} + goto f367;} } if (!$this->b335()) { - goto f393;} - goto k393; - f393: + goto f367;} + goto k367; + f367: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n392; - k393: - goto a367; - n392: + goto n366; + k367: + goto a341; + n366: break; case 25: if (!$this->b229()) { - goto n395;} - goto a367; - n395: + goto n369;} + goto a341; + n369: break; } @@ -4920,16 +4427,16 @@ private function b201(): bool $this->rec(201); } - goto f366; - a367: - goto k366; - f366: + goto f340; + a341: + goto k340; + f340: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k366: - $this->v[$m1] = $this->reduceAtomic($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k340: + $this->v[$m1] = $this->reduceAtomic(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -4952,7 +4459,7 @@ private function b202(): bool $this->rec(16); } - goto f633;} + goto f617;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -4966,14 +4473,14 @@ private function b202(): bool $this->rec(204); } - goto e635; + goto e619; } $this->p++; } - e635: + e619: if (!$this->b205()) { - goto f633;} + goto f617;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -4985,18 +4492,18 @@ private function b202(): bool $this->rec(204); } - goto e637; + goto e621; } $this->p++; } - e637: + e621: if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f633;} + goto f617;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -5006,7 +4513,7 @@ private function b202(): bool $this->rec(223); } - goto n638;} + goto n622;} $o2 = $this->p; $m2 = $this->n; @@ -5019,41 +4526,41 @@ private function b202(): bool $this->rec(224); } - goto e640; + goto e624; } if (!$this->b224()) { - goto e640;} + goto e624;} if ($this->p === $b2) { $k2 = 1; - goto e640; + goto e624; } $k2++; } - e640: + e624: if ($k2 < 1) { - goto f639; + goto f623; } - goto k639; - f639: + goto k623; + f623: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n638; - k639: - n638: + goto n622; + k623: + n622: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k633; - f633: + goto k617; + f617: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k633: + k617: return true; } @@ -5105,30 +4612,30 @@ private function b205(): bool $this->rec(208); } - goto n859;} + goto n854;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b201()) { - goto f860;} + goto f855;} if (!$this->b209()) { - goto f860;} - goto k860; - f860: + goto f855;} + goto k855; + f855: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n859; - k860: - goto a858; - n859: + goto n854; + k855: + goto a853; + n854: break; case 26: if (!$this->b206()) { - goto n861;} - goto a858; - n861: + goto n856;} + goto a853; + n856: break; case 30: // b200 @@ -5137,7 +4644,7 @@ private function b205(): bool $this->rec(200); } - goto n862;} + goto n857;} $o2 = $this->p; $m2 = $this->n; @@ -5147,22 +4654,22 @@ private function b205(): bool $this->rec(51); } - goto f863;} + goto f858;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f863;} - goto k863; - f863: + goto f858;} + goto k858; + f858: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n862; - k863: - $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n857; + k858: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); $this->n = $m2 + 1; - goto a858; - n862: + goto a853; + n857: break; } @@ -5170,16 +4677,16 @@ private function b205(): bool $this->rec(205); } - goto f857; - a858: - goto k857; - f857: + goto f852; + a853: + goto k852; + f852: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k857: - $this->v[$m1] = $this->reduceSubType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k852: + $this->v[$m1] = $this->reduceSubType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -5202,7 +4709,7 @@ private function b206(): bool $this->rec(47); } - goto f1135;} + goto f1118;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 12)) { @@ -5210,7 +4717,7 @@ private function b206(): bool $this->rec(23); } - goto f1135;} + goto f1118;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 11)) { @@ -5219,7 +4726,7 @@ private function b206(): bool $this->rec(24); } if (!$this->b199()) { - goto f1135;} + goto f1118;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5231,18 +4738,18 @@ private function b206(): bool $this->rec(204); } - goto e1137; + goto e1120; } $this->p++; } - e1137: + e1120: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1135;} + goto f1118;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5256,14 +4763,14 @@ private function b206(): bool $this->rec(204); } - goto e1139; + goto e1122; } $this->p++; } - e1139: + e1122: if (!$this->b199()) { - goto f1135;} + goto f1118;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5275,18 +4782,18 @@ private function b206(): bool $this->rec(204); } - goto e1141; + goto e1124; } $this->p++; } - e1141: + e1124: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1135;} + goto f1118;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5300,21 +4807,21 @@ private function b206(): bool $this->rec(204); } - goto e1143; + goto e1126; } $this->p++; } - e1143: + e1126: if (!$this->b205()) { - goto f1135;} - goto k1135; - f1135: + goto f1118;} + goto k1118; + f1118: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1135: + k1118: return true; } @@ -5341,27 +4848,27 @@ private function b209(): bool $this->rec(204); } - goto e1127; + goto e1110; } $this->p++; } - e1127: + e1110: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->b213()) { - goto n1128;} - n1128: + goto n1111;} + n1111: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1123; - n1124: + goto a1106; + n1107: break; case 12: if (!$this->b210()) { - goto n1129;} - goto a1123; - n1129: + goto n1112;} + goto a1106; + n1112: // b211 $o2 = $this->p; $m2 = $this->n; @@ -5377,21 +4884,21 @@ private function b209(): bool $this->rec(204); } - goto e1133; + goto e1116; } $this->p++; } - e1133: + e1116: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->b213()) { - goto n1134;} - n1134: + goto n1117;} + n1117: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1123; - n1130: + goto a1106; + n1113: break; } @@ -5399,15 +4906,15 @@ private function b209(): bool $this->rec(209); } - goto f1122; - a1123: - goto k1122; - f1122: + goto f1105; + a1106: + goto k1105; + f1105: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1122: + k1105: return true; } @@ -5429,7 +4936,7 @@ private function b210(): bool $this->rec(23); } - goto f1467;} + goto f1445;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 11)) { @@ -5438,7 +4945,7 @@ private function b210(): bool $this->rec(24); } if (!$this->b199()) { - goto f1467;} + goto f1445;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5450,18 +4957,18 @@ private function b210(): bool $this->rec(204); } - goto e1469; + goto e1447; } $this->p++; } - e1469: + e1447: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1467;} + goto f1445;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5475,14 +4982,14 @@ private function b210(): bool $this->rec(204); } - goto e1471; + goto e1449; } $this->p++; } - e1471: + e1449: if (!$this->b199()) { - goto f1467;} + goto f1445;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5494,18 +5001,18 @@ private function b210(): bool $this->rec(204); } - goto e1473; + goto e1451; } $this->p++; } - e1473: + e1451: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1467;} + goto f1445;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5519,21 +5026,21 @@ private function b210(): bool $this->rec(204); } - goto e1475; + goto e1453; } $this->p++; } - e1475: + e1453: if (!$this->b205()) { - goto f1467;} - goto k1467; - f1467: + goto f1445;} + goto k1445; + f1445: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1467: + k1445: return true; } @@ -5555,15 +5062,15 @@ private function b213(): bool break; case 28: if (!$this->b214()) { - goto n1465;} - goto a1464; - n1465: + goto n1443;} + goto a1442; + n1443: break; case 29: if (!$this->b218()) { - goto n1466;} - goto a1464; - n1466: + goto n1444;} + goto a1442; + n1444: break; } @@ -5571,15 +5078,15 @@ private function b213(): bool $this->rec(213); } - goto f1463; - a1464: - goto k1463; - f1463: + goto f1441; + a1442: + goto k1441; + f1441: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1463: + k1441: return true; } @@ -5602,7 +5109,7 @@ private function b214(): bool $this->rec(215); } - goto f1671;} + goto f1642;} $o2 = $this->p; $m2 = $this->n; @@ -5615,45 +5122,45 @@ private function b214(): bool $this->rec(216); } - goto e1673; + goto e1644; } if (!$this->b216()) { - goto e1673;} + goto e1644;} if ($this->p === $b2) { $k2 = 1; - goto e1673; + goto e1644; } $k2++; } - e1673: + e1644: if ($k2 < 1) { - goto f1672; + goto f1643; } - goto k1672; - f1672: + goto k1643; + f1643: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f1671; - k1672: + goto f1642; + k1643: if (($this->ids[$this->p] === 28)) { if (($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1671;} + goto f1642;} } - goto k1671; - f1671: + goto k1642; + f1642: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1671: + k1642: return true; } @@ -5675,7 +5182,7 @@ private function b216(): bool $this->rec(49); } - goto f1755;} + goto f1726;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5689,14 +5196,14 @@ private function b216(): bool $this->rec(204); } - goto e1757; + goto e1728; } $this->p++; } - e1757: + e1728: if (!$this->b201()) { - goto f1755;} + goto f1726;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5708,19 +5215,19 @@ private function b216(): bool $this->rec(204); } - goto e1759; + goto e1730; } $this->p++; } - e1759: - goto k1755; - f1755: + e1730: + goto k1726; + f1726: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1755: + k1726: return true; } @@ -5743,7 +5250,7 @@ private function b218(): bool $this->rec(219); } - goto f1674;} + goto f1645;} $o2 = $this->p; $m2 = $this->n; @@ -5756,45 +5263,45 @@ private function b218(): bool $this->rec(220); } - goto e1676; + goto e1647; } if (!$this->b220()) { - goto e1676;} + goto e1647;} if ($this->p === $b2) { $k2 = 1; - goto e1676; + goto e1647; } $k2++; } - e1676: + e1647: if ($k2 < 1) { - goto f1675; + goto f1646; } - goto k1675; - f1675: + goto k1646; + f1646: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f1674; - k1675: + goto f1645; + k1646: if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1674;} + goto f1645;} } - goto k1674; - f1674: + goto k1645; + f1645: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1674: + k1645: return true; } @@ -5816,7 +5323,7 @@ private function b220(): bool $this->rec(50); } - goto f1760;} + goto f1731;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5830,14 +5337,14 @@ private function b220(): bool $this->rec(204); } - goto e1762; + goto e1733; } $this->p++; } - e1762: + e1733: if (!$this->b201()) { - goto f1760;} + goto f1731;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5849,19 +5356,19 @@ private function b220(): bool $this->rec(204); } - goto e1764; + goto e1735; } $this->p++; } - e1764: - goto k1760; - f1760: + e1735: + goto k1731; + f1731: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1760: + k1731: return true; } @@ -5888,7 +5395,7 @@ private function b224(): bool $this->rec(225); } - goto n837;} + goto n831;} $o2 = $this->p; $m2 = $this->n; @@ -5898,7 +5405,7 @@ private function b224(): bool $this->rec(57); } - goto f838;} + goto f832;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 37)) { @@ -5907,34 +5414,34 @@ private function b224(): bool $this->f = $this->p; $this->er = []; } - goto f838;} + goto f832;} } if (!$this->b199()) { - goto f838;} + goto f832;} if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f838;} + goto f832;} $this->v[$this->n++] = $this->token($this->p++); - goto k838; - f838: + goto k832; + f832: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n837; - k838: - goto a836; - n837: + goto n831; + k832: + goto a830; + n831: // b227 if (!isset(self::T885cd349[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(227); } - goto n839;} + goto n833;} $o2 = $this->p; $m2 = $this->n; @@ -5944,7 +5451,7 @@ private function b224(): bool $this->rec(228); } - goto f840;} + goto f834;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 37)) { @@ -5952,18 +5459,18 @@ private function b224(): bool $this->rec(59); } - goto f840;} + goto f834;} $this->v[$this->n++] = $this->token($this->p++); - goto k840; - f840: + goto k834; + f834: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n839; - k840: - goto a836; - n839: + goto n833; + k834: + goto a830; + n833: break; case 84: // b227 @@ -5972,7 +5479,7 @@ private function b224(): bool $this->rec(227); } - goto n841;} + goto n835;} $o2 = $this->p; $m2 = $this->n; @@ -5982,7 +5489,7 @@ private function b224(): bool $this->rec(228); } - goto f842;} + goto f836;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 37)) { @@ -5990,18 +5497,18 @@ private function b224(): bool $this->rec(59); } - goto f842;} + goto f836;} $this->v[$this->n++] = $this->token($this->p++); - goto k842; - f842: + goto k836; + f836: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n841; - k842: - goto a836; - n841: + goto n835; + k836: + goto a830; + n835: break; } @@ -6009,16 +5516,16 @@ private function b224(): bool $this->rec(224); } - goto f835; - a836: - goto k835; - f835: + goto f829; + a830: + goto k829; + f829: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k835: - $this->v[$m1] = $this->reduceArrayOrOffsetAccessItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k829: + $this->v[$m1] = $this->reduceArrayOrOffsetAccessItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -6041,7 +5548,7 @@ private function b229(): bool $this->rec(46); } - goto f649;} + goto f633;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -6051,7 +5558,7 @@ private function b229(): bool $this->rec(223); } - goto n650;} + goto n634;} $o2 = $this->p; $m2 = $this->n; @@ -6064,41 +5571,41 @@ private function b229(): bool $this->rec(224); } - goto e652; + goto e636; } if (!$this->b224()) { - goto e652;} + goto e636;} if ($this->p === $b2) { $k2 = 1; - goto e652; + goto e636; } $k2++; } - e652: + e636: if ($k2 < 1) { - goto f651; + goto f635; } - goto k651; - f651: + goto k635; + f635: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n650; - k651: - n650: + goto n634; + k635: + n634: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k649; - f649: + goto k633; + f633: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k649: + k633: return true; } @@ -6120,7 +5627,7 @@ private function b230(): bool $this->rec(32); } - goto f645;} + goto f629;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -6129,10 +5636,10 @@ private function b230(): bool $this->f = $this->p; $this->er = []; } - goto f645;} + goto f629;} } if (!$this->b231()) { - goto f645;} + goto f629;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -6140,7 +5647,7 @@ private function b230(): bool $this->rec(223); } - goto n646;} + goto n630;} $o2 = $this->p; $m2 = $this->n; @@ -6153,41 +5660,41 @@ private function b230(): bool $this->rec(224); } - goto e648; + goto e632; } if (!$this->b224()) { - goto e648;} + goto e632;} if ($this->p === $b2) { $k2 = 1; - goto e648; + goto e632; } $k2++; } - e648: + e632: if ($k2 < 1) { - goto f647; + goto f631; } - goto k647; - f647: + goto k631; + f631: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n646; - k647: - n646: + goto n630; + k631: + n630: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k645; - f645: + goto k629; + f629: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k645: + k629: return true; } @@ -6209,7 +5716,7 @@ private function b231(): bool $this->rec(60); } - goto f872;} + goto f867;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -6223,16 +5730,16 @@ private function b231(): bool $this->rec(204); } - goto e874; + goto e869; } $this->p++; } - e874: + e869: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->b233()) { - goto n875;} - n875: + goto n870;} + n870: } elseif ($this->p > $this->f) { $this->rec(233); } @@ -6247,28 +5754,28 @@ private function b231(): bool $this->rec(204); } - goto e877; + goto e872; } $this->p++; } - e877: + e872: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f872;} + goto f867;} $this->v[$this->n++] = $this->token($this->p++); - goto k872; - f872: + goto k867; + f867: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k872: - $this->v[$m1] = $this->reduceArrayShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k867: + $this->v[$m1] = $this->reduceArrayShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -6322,13 +5829,13 @@ private function b233(): bool $this->rec(243); } - goto n1152;} + goto n1135;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b244()) { - goto f1153;} + goto f1136;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -6340,34 +5847,34 @@ private function b233(): bool $this->rec(204); } - goto e1155; + goto e1138; } $this->p++; } - e1155: + e1138: if (($this->ids[$this->p] === 40)) { if (!$this->b252()) { - goto n1156;} - n1156: + goto n1139;} + n1139: } elseif ($this->p > $this->f) { $this->rec(252); } - goto k1153; - f1153: + goto k1136; + f1136: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1152; - k1153: - goto a1151; - n1152: + goto n1135; + k1136: + goto a1134; + n1135: break; case 42: if (!$this->b234()) { - goto n1157;} - goto a1151; - n1157: + goto n1140;} + goto a1134; + n1140: break; } @@ -6375,15 +5882,15 @@ private function b233(): bool $this->rec(233); } - goto f1150; - a1151: - goto k1150; - f1150: + goto f1133; + a1134: + goto k1133; + f1133: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1150: + k1133: return true; } @@ -6405,7 +5912,7 @@ private function b234(): bool $this->rec(65); } - goto f1489;} + goto f1467;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -6419,26 +5926,26 @@ private function b234(): bool $this->rec(204); } - goto e1491; + goto e1469; } $this->p++; } - e1491: + e1469: if (!$this->b235()) { - goto f1489;} + goto f1467;} if (($this->ids[$this->p] === 40)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1489; - f1489: + goto k1467; + f1467: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1489: + k1467: return true; } @@ -6455,9 +5962,9 @@ private function b235(): bool $this->f = $this->p; $this->er = []; } - goto n1679;} - goto a1678; - n1679: + goto n1650;} + goto a1649; + n1650: break; case 34: case 86: @@ -6467,13 +5974,13 @@ private function b235(): bool $this->rec(236); } - goto n1680;} + goto n1651;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b237()) { - goto f1681;} + goto f1652;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -6485,29 +5992,29 @@ private function b235(): bool $this->rec(204); } - goto e1683; + goto e1654; } $this->p++; } - e1683: - goto k1681; - f1681: + e1654: + goto k1652; + f1652: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1680; - k1681: - goto a1678; - n1680: + goto n1651; + k1652: + goto a1649; + n1651: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1684;} - goto a1678; - n1684: + goto n1655;} + goto a1649; + n1655: break; } @@ -6515,15 +6022,15 @@ private function b235(): bool $this->rec(235); } - goto f1677; - a1678: - goto k1677; - f1677: + goto f1648; + a1649: + goto k1648; + f1648: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1677: + k1648: return true; } @@ -6545,7 +6052,7 @@ private function b237(): bool $this->rec(238); } - goto f1765;} + goto f1736;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -6559,14 +6066,14 @@ private function b237(): bool $this->rec(204); } - goto e1767; + goto e1738; } $this->p++; } - e1767: + e1738: if (!$this->b199()) { - goto f1765;} + goto f1736;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -6578,16 +6085,16 @@ private function b237(): bool $this->rec(204); } - goto e1769; + goto e1740; } $this->p++; } - e1769: + e1740: if (($this->ids[$this->p] === 40)) { if (!$this->b240()) { - goto n1770;} - n1770: + goto n1741;} + n1741: } elseif ($this->p > $this->f) { $this->rec(240); } @@ -6596,17 +6103,17 @@ private function b237(): bool $this->rec(56); } - goto f1765;} + goto f1736;} $this->v[$this->n++] = $this->token($this->p++); - goto k1765; - f1765: + goto k1736; + f1736: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1765: - $this->v[$m1] = $this->reduceArrayShapeUnsealedType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1736: + $this->v[$m1] = $this->reduceArrayShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -6629,7 +6136,7 @@ private function b240(): bool $this->rec(63); } - goto f1789;} + goto f1757;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -6643,14 +6150,14 @@ private function b240(): bool $this->rec(204); } - goto e1791; + goto e1759; } $this->p++; } - e1791: + e1759: if (!$this->b199()) { - goto f1789;} + goto f1757;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -6662,19 +6169,19 @@ private function b240(): bool $this->rec(204); } - goto e1793; + goto e1761; } $this->p++; } - e1793: - goto k1789; - f1789: + e1761: + goto k1757; + f1757: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1789: + k1757: return true; } @@ -6722,13 +6229,13 @@ private function b244(): bool $this->rec(245); } - goto n1452;} + goto n1430;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b246()) { - goto f1453;} + goto f1431;} if (($this->ids[$this->p] === 30)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -6739,24 +6246,24 @@ private function b244(): bool $this->rec(70); } - goto f1453;} + goto f1431;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f1453;} - goto k1453; - f1453: + goto f1431;} + goto k1431; + f1431: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1452; - k1453: - goto a1451; - n1452: + goto n1430; + k1431: + goto a1429; + n1430: if (!$this->b199()) { - goto n1454;} - goto a1451; - n1454: + goto n1432;} + goto a1429; + n1432: break; case 19: case 25: @@ -6764,9 +6271,9 @@ private function b244(): bool case 32: case 82: if (!$this->b199()) { - goto n1455;} - goto a1451; - n1455: + goto n1433;} + goto a1429; + n1433: break; } @@ -6774,16 +6281,16 @@ private function b244(): bool $this->rec(244); } - goto f1450; - a1451: - goto k1450; - f1450: + goto f1428; + a1429: + goto k1428; + f1428: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1450: - $this->v[$m1] = $this->reduceArrayShapeItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1428: + $this->v[$m1] = $this->reduceArrayShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -6824,21 +6331,21 @@ private function b246(): bool case 18: case 24: if (!$this->b247()) { - goto n1662;} - goto a1661; - n1662: + goto n1633;} + goto a1632; + n1633: break; case 20: $this->v[$this->n++] = $this->token($this->p++); - goto a1661; + goto a1632; break; case 21: $this->v[$this->n++] = $this->token($this->p++); - goto a1661; + goto a1632; break; case 22: $this->v[$this->n++] = $this->token($this->p++); - goto a1661; + goto a1632; break; } @@ -6846,16 +6353,16 @@ private function b246(): bool $this->rec(246); } - goto f1660; - a1661: - goto k1660; - f1660: + goto f1631; + a1632: + goto k1631; + f1631: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1660: - $this->v[$m1] = $this->reduceArrayShapeKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1631: + $this->v[$m1] = $this->reduceArrayShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -6878,7 +6385,7 @@ private function b247(): bool $this->rec(144); } - goto f1747;} + goto f1718;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -6888,7 +6395,7 @@ private function b247(): bool $this->rec(249); } - goto n1748;} + goto n1719;} $o2 = $this->p; $m2 = $this->n; @@ -6898,7 +6405,7 @@ private function b247(): bool $this->rec(66); } - goto f1749;} + goto f1720;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -6906,27 +6413,27 @@ private function b247(): bool $this->rec(144); } - goto f1749;} + goto f1720;} $this->v[$this->n++] = $this->token($this->p++); - goto k1749; - f1749: + goto k1720; + f1720: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1748; - k1749: - n1748: + goto n1719; + k1720: + n1719: } elseif ($this->p > $this->f) { $this->rec(249); } - goto k1747; - f1747: + goto k1718; + f1718: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1747: + k1718: return true; } @@ -6948,11 +6455,11 @@ private function b252(): bool $this->rec(63); } - goto f1485;} + goto f1463;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 41)) { - $this->v[$this->n++] = $this->reduceDiscardedComment($this->context($this->p, $this->p + 1)); + $this->v[$this->n++] = $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); $this->p++; } elseif ($this->p >= $this->f) { $this->rec(254); @@ -6968,26 +6475,26 @@ private function b252(): bool $this->rec(204); } - goto e1487; + goto e1465; } $this->p++; } - e1487: + e1465: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->b233()) { - goto n1488;} - n1488: + goto n1466;} + n1466: } elseif ($this->p > $this->f) { $this->rec(233); } - goto k1485; - f1485: + goto k1463; + f1463: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1485: + k1463: return true; } @@ -7009,7 +6516,7 @@ private function b255(): bool $this->rec(256); } - goto f629;} + goto f613;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -7018,10 +6525,10 @@ private function b255(): bool $this->f = $this->p; $this->er = []; } - goto f629;} + goto f613;} } if (!$this->b257()) { - goto f629;} + goto f613;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -7029,7 +6536,7 @@ private function b255(): bool $this->rec(223); } - goto n630;} + goto n614;} $o2 = $this->p; $m2 = $this->n; @@ -7042,41 +6549,41 @@ private function b255(): bool $this->rec(224); } - goto e632; + goto e616; } if (!$this->b224()) { - goto e632;} + goto e616;} if ($this->p === $b2) { $k2 = 1; - goto e632; + goto e616; } $k2++; } - e632: + e616: if ($k2 < 1) { - goto f631; + goto f615; } - goto k631; - f631: + goto k615; + f615: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n630; - k631: - n630: + goto n614; + k615: + n614: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k629; - f629: + goto k613; + f613: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k629: + k613: return true; } @@ -7098,7 +6605,7 @@ private function b257(): bool $this->rec(60); } - goto f851;} + goto f846;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7112,16 +6619,16 @@ private function b257(): bool $this->rec(204); } - goto e853; + goto e848; } $this->p++; } - e853: + e848: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->b259()) { - goto n854;} - n854: + goto n849;} + n849: } elseif ($this->p > $this->f) { $this->rec(259); } @@ -7136,28 +6643,28 @@ private function b257(): bool $this->rec(204); } - goto e856; + goto e851; } $this->p++; } - e856: + e851: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f851;} + goto f846;} $this->v[$this->n++] = $this->token($this->p++); - goto k851; - f851: + goto k846; + f846: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k851: - $this->v[$m1] = $this->reduceListShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k846: + $this->v[$m1] = $this->reduceListShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -7211,13 +6718,13 @@ private function b259(): bool $this->rec(264); } - goto n1116;} + goto n1099;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b244()) { - goto f1117;} + goto f1100;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7229,34 +6736,34 @@ private function b259(): bool $this->rec(204); } - goto e1119; + goto e1102; } $this->p++; } - e1119: + e1102: if (($this->ids[$this->p] === 40)) { if (!$this->b266()) { - goto n1120;} - n1120: + goto n1103;} + n1103: } elseif ($this->p > $this->f) { $this->rec(266); } - goto k1117; - f1117: + goto k1100; + f1100: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1116; - k1117: - goto a1115; - n1116: + goto n1099; + k1100: + goto a1098; + n1099: break; case 42: if (!$this->b260()) { - goto n1121;} - goto a1115; - n1121: + goto n1104;} + goto a1098; + n1104: break; } @@ -7264,15 +6771,15 @@ private function b259(): bool $this->rec(259); } - goto f1114; - a1115: - goto k1114; - f1114: + goto f1097; + a1098: + goto k1097; + f1097: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1114: + k1097: return true; } @@ -7294,7 +6801,7 @@ private function b260(): bool $this->rec(65); } - goto f1460;} + goto f1438;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7308,26 +6815,26 @@ private function b260(): bool $this->rec(204); } - goto e1462; + goto e1440; } $this->p++; } - e1462: + e1440: if (!$this->b261()) { - goto f1460;} + goto f1438;} if (($this->ids[$this->p] === 40)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1460; - f1460: + goto k1438; + f1438: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1460: + k1438: return true; } @@ -7344,9 +6851,9 @@ private function b261(): bool $this->f = $this->p; $this->er = []; } - goto n1665;} - goto a1664; - n1665: + goto n1636;} + goto a1635; + n1636: break; case 34: case 86: @@ -7356,13 +6863,13 @@ private function b261(): bool $this->rec(262); } - goto n1666;} + goto n1637;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b263()) { - goto f1667;} + goto f1638;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7374,29 +6881,29 @@ private function b261(): bool $this->rec(204); } - goto e1669; + goto e1640; } $this->p++; } - e1669: - goto k1667; - f1667: + e1640: + goto k1638; + f1638: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1666; - k1667: - goto a1664; - n1666: + goto n1637; + k1638: + goto a1635; + n1637: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1670;} - goto a1664; - n1670: + goto n1641;} + goto a1635; + n1641: break; } @@ -7404,15 +6911,15 @@ private function b261(): bool $this->rec(261); } - goto f1663; - a1664: - goto k1663; - f1663: + goto f1634; + a1635: + goto k1634; + f1634: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1663: + k1634: return true; } @@ -7434,7 +6941,7 @@ private function b263(): bool $this->rec(238); } - goto f1750;} + goto f1721;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7448,14 +6955,14 @@ private function b263(): bool $this->rec(204); } - goto e1752; + goto e1723; } $this->p++; } - e1752: + e1723: if (!$this->b199()) { - goto f1750;} + goto f1721;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -7467,28 +6974,28 @@ private function b263(): bool $this->rec(204); } - goto e1754; + goto e1725; } $this->p++; } - e1754: + e1725: if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { $this->rec(56); } - goto f1750;} + goto f1721;} $this->v[$this->n++] = $this->token($this->p++); - goto k1750; - f1750: + goto k1721; + f1721: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1750: - $this->v[$m1] = $this->reduceListShapeUnsealedType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1721: + $this->v[$m1] = $this->reduceListShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -7511,11 +7018,11 @@ private function b266(): bool $this->rec(63); } - goto f1456;} + goto f1434;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 41)) { - $this->v[$this->n++] = $this->reduceDiscardedComment($this->context($this->p, $this->p + 1)); + $this->v[$this->n++] = $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); $this->p++; } elseif ($this->p >= $this->f) { $this->rec(254); @@ -7531,26 +7038,26 @@ private function b266(): bool $this->rec(204); } - goto e1458; + goto e1436; } $this->p++; } - e1458: + e1436: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->b259()) { - goto n1459;} - n1459: + goto n1437;} + n1437: } elseif ($this->p > $this->f) { $this->rec(259); } - goto k1456; - f1456: + goto k1434; + f1434: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1456: + k1434: return true; } @@ -7572,7 +7079,7 @@ private function b267(): bool $this->rec(37); } - goto f641;} + goto f625;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -7581,10 +7088,10 @@ private function b267(): bool $this->f = $this->p; $this->er = []; } - goto f641;} + goto f625;} } if (!$this->b268()) { - goto f641;} + goto f625;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -7592,7 +7099,7 @@ private function b267(): bool $this->rec(223); } - goto n642;} + goto n626;} $o2 = $this->p; $m2 = $this->n; @@ -7605,41 +7112,41 @@ private function b267(): bool $this->rec(224); } - goto e644; + goto e628; } if (!$this->b224()) { - goto e644;} + goto e628;} if ($this->p === $b2) { $k2 = 1; - goto e644; + goto e628; } $k2++; } - e644: + e628: if ($k2 < 1) { - goto f643; + goto f627; } - goto k643; - f643: + goto k627; + f627: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n642; - k643: - n642: + goto n626; + k627: + n626: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k641; - f641: + goto k625; + f625: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k641: + k625: return true; } @@ -7661,7 +7168,7 @@ private function b268(): bool $this->rec(60); } - goto f864;} + goto f859;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7675,12 +7182,12 @@ private function b268(): bool $this->rec(204); } - goto e866; + goto e861; } $this->p++; } - e866: + e861: if (isset(self::Td8017923[$this->ids[$this->p]])) { // b270 if (!isset(self::Td8017923[$this->ids[$this->p]])) { @@ -7688,13 +7195,13 @@ private function b268(): bool $this->rec(270); } - goto n867;} + goto n862;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b271()) { - goto f868;} + goto f863;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7706,27 +7213,27 @@ private function b268(): bool $this->rec(204); } - goto e870; + goto e865; } $this->p++; } - e870: + e865: if (($this->ids[$this->p] === 40)) { if (!$this->b274()) { - goto n871;} - n871: + goto n866;} + n866: } elseif ($this->p > $this->f) { $this->rec(274); } - goto k868; - f868: + goto k863; + f863: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n867; - k868: - n867: + goto n862; + k863: + n862: } elseif ($this->p > $this->f) { $this->rec(270); } @@ -7735,17 +7242,17 @@ private function b268(): bool $this->rec(62); } - goto f864;} + goto f859;} $this->v[$this->n++] = $this->token($this->p++); - goto k864; - f864: + goto k859; + f859: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k864: - $this->v[$m1] = $this->reduceObjectShape($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k859: + $this->v[$m1] = $this->reduceObjectShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -7764,7 +7271,7 @@ private function b271(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b272()) { - goto f1144;} + goto f1127;} if (($this->ids[$this->p] === 30)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -7775,19 +7282,19 @@ private function b271(): bool $this->rec(70); } - goto f1144;} + goto f1127;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f1144;} - goto k1144; - f1144: + goto f1127;} + goto k1127; + f1127: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1144: - $this->v[$m1] = $this->reduceObjectShapeItem($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1127: + $this->v[$m1] = $this->reduceObjectShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -7810,87 +7317,87 @@ private function b272(): bool break; case 1: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 2: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 3: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 4: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 5: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 6: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 7: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 8: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 9: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 10: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 11: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 12: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 13: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 14: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 15: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 16: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 17: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 18: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 21: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 22: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; case 24: $this->v[$this->n++] = $this->token($this->p++); - goto a1477; + goto a1455; break; } @@ -7898,16 +7405,16 @@ private function b272(): bool $this->rec(272); } - goto f1476; - a1477: - goto k1476; - f1476: + goto f1454; + a1455: + goto k1454; + f1454: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1476: - $this->v[$m1] = $this->reduceObjectShapeKey($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1454: + $this->v[$m1] = $this->reduceObjectShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -7933,7 +7440,7 @@ private function b274(): bool $this->rec(275); } - goto e1146; + goto e1129; } // b275 @@ -7942,7 +7449,7 @@ private function b274(): bool $this->rec(275); } - goto e1146;} + goto e1129;} $o2 = $this->p; $m2 = $this->n; @@ -7952,7 +7459,7 @@ private function b274(): bool $this->rec(63); } - goto f1147;} + goto f1130;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7966,40 +7473,40 @@ private function b274(): bool $this->rec(204); } - goto e1149; + goto e1132; } $this->p++; } - e1149: + e1132: if (!$this->b276()) { - goto f1147;} - goto k1147; - f1147: + goto f1130;} + goto k1130; + f1130: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1146; - k1147: + goto e1129; + k1130: if ($this->p === $b1) { $k1 = 1; - goto e1146; + goto e1129; } $k1++; } - e1146: + e1129: if ($k1 < 1) { - goto f1145; + goto f1128; } - goto k1145; - f1145: + goto k1128; + f1128: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1145: + k1128: return true; } @@ -8039,13 +7546,13 @@ private function b276(): bool $this->rec(277); } - goto n1480;} + goto n1458;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b271()) { - goto f1481;} + goto f1459;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -8057,21 +7564,21 @@ private function b276(): bool $this->rec(204); } - goto e1483; + goto e1461; } $this->p++; } - e1483: - goto k1481; - f1481: + e1461: + goto k1459; + f1459: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1480; - k1481: - goto a1479; - n1480: + goto n1458; + k1459: + goto a1457; + n1458: break; case 39: if (!($this->ids[$this->p] === 39)) { @@ -8079,9 +7586,9 @@ private function b276(): bool $this->rec(62); } - goto n1484;} - goto a1479; - n1484: + goto n1462;} + goto a1457; + n1462: break; } @@ -8089,15 +7596,15 @@ private function b276(): bool $this->rec(276); } - goto f1478; - a1479: - goto k1478; - f1478: + goto f1456; + a1457: + goto k1456; + f1456: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1478: + k1456: return true; } @@ -8114,24 +7621,24 @@ private function b281(): bool $this->f = $this->p; $this->er = []; } - goto n613;} - goto a612; - n613: + goto n598;} + goto a597; + n598: break; case 32: case 82: if (!$this->b364()) { - goto n614;} - goto a612; - n614: + goto n599;} + goto a597; + n599: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n615;} - goto a612; - n615: + goto n600;} + goto a597; + n600: break; case 36: case 84: @@ -8141,7 +7648,7 @@ private function b281(): bool $this->rec(223); } - goto n616;} + goto n601;} $o2 = $this->p; $m2 = $this->n; @@ -8154,78 +7661,54 @@ private function b281(): bool $this->rec(224); } - goto e618; + goto e603; } if (!$this->b224()) { - goto e618;} + goto e603;} if ($this->p === $b2) { $k2 = 1; - goto e618; + goto e603; } $k2++; } - e618: + e603: if ($k2 < 1) { - goto f617; + goto f602; } - goto k617; - f617: + goto k602; + f602: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n616; - k617: - goto a612; - n616: + goto n601; + k602: + goto a597; + n601: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n619;} - goto a612; - n619: + goto n604;} + goto a597; + n604: break; case 34: - // b282 - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(282); - } - - goto n620;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(54); - } - - goto f621;} - if (!$this->b284()) { - goto f621;} - goto k621; - f621: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n620; - k621: - goto a612; - n620: + if (!$this->b282()) { + goto n605;} + goto a597; + n605: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n622;} - goto a612; - n622: + goto n606;} + goto a597; + n606: break; } @@ -8233,24 +7716,24 @@ private function b281(): bool $this->rec(281); } - goto f611; - a612: - goto k611; - f611: + goto f596; + a597: + goto k596; + f596: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k611: + k596: return true; } - private function b284(): bool + private function b282(): bool { if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { - $this->rec(284); + $this->rec(282); } return false;} @@ -8258,18 +7741,35 @@ private function b284(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(54); + } + + goto f837;} + // b284 + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(284); + } + + goto f837;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; switch ($this->ids[$this->p]) { default: break; case 34: if (!$this->b285()) { - goto n845;} - goto a844; - n845: + goto n840;} + goto a839; + n840: if (!$this->b362()) { - goto n846;} - goto a844; - n846: + goto n841;} + goto a839; + n841: break; } @@ -8277,15 +7777,22 @@ private function b284(): bool $this->rec(284); } - goto f843; - a844: - goto k843; - f843: + goto f838; + a839: + goto k838; + f838: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f837; + k838: + goto k837; + f837: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k843: + k837: return true; } @@ -8307,7 +7814,7 @@ private function b285(): bool $this->rec(54); } - goto f1094;} + goto f1080;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -8321,46 +7828,14 @@ private function b285(): bool $this->rec(204); } - goto e1096; + goto e1082; } $this->p++; } - e1096: - // b286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - goto f1094;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1097;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f1097;} - if (!$this->b293()) { - goto f1097;} - if (!$this->b296()) { - goto f1097;} - goto k1097; - f1097: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1094; - k1097: - $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; + e1082: + if (!$this->b286()) { + goto f1080;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -8372,57 +7847,16 @@ private function b285(): bool $this->rec(204); } - goto e1099; + goto e1084; } $this->p++; } - e1099: + e1084: if (($this->ids[$this->p] === 40)) { - // b300 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(300); - } - - goto n1100;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b2 > $this->f) { - $this->rec(301); - } - - goto e1102; - } - - if (!$this->b301()) { - goto e1102;} - if ($this->p === $b2) { - $k2 = 1; - goto e1102; - } - - $k2++; - } - e1102: - - if ($k2 < 1) { - goto f1101; - } - goto k1101; - f1101: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1100; - k1101: - n1100: + if (!$this->b300()) { + goto n1085;} + n1085: } elseif ($this->p > $this->f) { $this->rec(300); } @@ -8431,7 +7865,7 @@ private function b285(): bool $this->rec(56); } - goto f1094;} + goto f1080;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -8439,7 +7873,7 @@ private function b285(): bool $this->rec(16); } - goto f1094;} + goto f1080;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -8453,12 +7887,12 @@ private function b285(): bool $this->rec(204); } - goto e1104; + goto e1087; } $this->p++; } - e1104: + e1087: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { // b306 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -8466,13 +7900,13 @@ private function b285(): bool $this->rec(306); } - goto n1105;} + goto n1088;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b307()) { - goto f1106;} + goto f1089;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -8484,27 +7918,27 @@ private function b285(): bool $this->rec(204); } - goto e1108; + goto e1091; } $this->p++; } - e1108: + e1091: if (($this->ids[$this->p] === 40)) { if (!$this->b311()) { - goto n1109;} - n1109: + goto n1092;} + n1092: } elseif ($this->p > $this->f) { $this->rec(311); } - goto k1106; - f1106: + goto k1089; + f1089: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1105; - k1106: - n1105: + goto n1088; + k1089: + n1088: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -8513,7 +7947,7 @@ private function b285(): bool $this->rec(53); } - goto f1094;} + goto f1080;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 47)) { @@ -8521,19 +7955,58 @@ private function b285(): bool $this->rec(70); } - goto f1094;} + goto f1080;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b315()) { - goto f1094;} - goto k1094; - f1094: + goto f1080;} + goto k1080; + f1080: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1080: + $this->v[$m1] = $this->reduceCallableWithTemplates(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b286(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1375;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1375;} + if (!$this->b293()) { + goto f1375;} + if (!$this->b296()) { + goto f1375;} + goto k1375; + f1375: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1094: - $this->v[$m1] = $this->reduceCallableWithTemplates($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1375: + $this->v[$m1] = $this->reduceCallableTemplateArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -8556,7 +8029,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f529;} + goto f504;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8564,17 +8037,17 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f529;} + goto f504;} } - goto k529; - f529: + goto k504; + f504: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n528; - k529: - goto a527; - n528: + goto n503; + k504: + goto a502; + n503: break; case 13: // b288 @@ -8583,7 +8056,7 @@ private function b287(): bool $this->rec(288); } - goto n530;} + goto n505;} $o2 = $this->p; $m2 = $this->n; @@ -8593,20 +8066,20 @@ private function b287(): bool $this->rec(27); } - goto f531;} + goto f506;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f531;} - goto k531; - f531: + goto f506;} + goto k506; + f506: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n530; - k531: - goto a527; - n530: + goto n505; + k506: + goto a502; + n505: // b290 $o2 = $this->p; $m2 = $this->n; @@ -8617,7 +8090,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f533;} + goto f508;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8625,17 +8098,17 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f533;} + goto f508;} } - goto k533; - f533: + goto k508; + f508: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n532; - k533: - goto a527; - n532: + goto n507; + k508: + goto a502; + n507: break; case 14: // b289 @@ -8644,7 +8117,7 @@ private function b287(): bool $this->rec(289); } - goto n534;} + goto n509;} $o2 = $this->p; $m2 = $this->n; @@ -8654,20 +8127,20 @@ private function b287(): bool $this->rec(28); } - goto f535;} + goto f510;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f535;} - goto k535; - f535: + goto f510;} + goto k510; + f510: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n534; - k535: - goto a527; - n534: + goto n509; + k510: + goto a502; + n509: // b290 $o2 = $this->p; $m2 = $this->n; @@ -8678,7 +8151,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f537;} + goto f512;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8686,17 +8159,17 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f537;} + goto f512;} } - goto k537; - f537: + goto k512; + f512: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n536; - k537: - goto a527; - n536: + goto n511; + k512: + goto a502; + n511: break; } @@ -8704,15 +8177,15 @@ private function b287(): bool $this->rec(287); } - goto f526; - a527: - goto k526; - f526: + goto f501; + a502: + goto k501; + f501: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k526: + k501: return true; } @@ -8729,9 +8202,9 @@ private function b293(): bool $this->f = $this->p; $this->er = []; } - goto n540;} - goto a539; - n540: + goto n515;} + goto a514; + n515: break; case 5: // b294 @@ -8740,7 +8213,7 @@ private function b293(): bool $this->rec(294); } - goto n541;} + goto n516;} $o2 = $this->p; $m2 = $this->n; @@ -8750,28 +8223,28 @@ private function b293(): bool $this->rec(29); } - goto f542;} + goto f517;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f542;} - goto k542; - f542: + goto f517;} + goto k517; + f517: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n541; - k542: - goto a539; - n541: + goto n516; + k517: + goto a514; + n516: if (($this->ids[$this->p] === 5)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n543;} - goto a539; - n543: + goto n518;} + goto a514; + n518: break; } @@ -8779,15 +8252,15 @@ private function b293(): bool $this->rec(293); } - goto f538; - a539: - goto k538; - f538: + goto f513; + a514: + goto k513; + f513: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k538: + k513: return true; } @@ -8804,9 +8277,9 @@ private function b296(): bool $this->f = $this->p; $this->er = []; } - goto n546;} - goto a545; - n546: + goto n521;} + goto a520; + n521: break; case 46: // b297 @@ -8815,7 +8288,7 @@ private function b296(): bool $this->rec(297); } - goto n547;} + goto n522;} $o2 = $this->p; $m2 = $this->n; @@ -8825,28 +8298,28 @@ private function b296(): bool $this->rec(69); } - goto f548;} + goto f523;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f548;} - goto k548; - f548: + goto f523;} + goto k523; + f523: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n547; - k548: - goto a545; - n547: + goto n522; + k523: + goto a520; + n522: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n549;} - goto a545; - n549: + goto n524;} + goto a520; + n524: break; } @@ -8854,24 +8327,24 @@ private function b296(): bool $this->rec(296); } - goto f544; - a545: - goto k544; - f544: + goto f519; + a520: + goto k519; + f519: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k544: + k519: return true; } - private function b301(): bool + private function b300(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(301); + $this->rec(300); } return false;} @@ -8879,35 +8352,90 @@ private function b301(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(301); + } + + goto e1418; } - goto f1437;} + // b301 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(301); + } - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + goto e1418;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } + + goto f1419;} + + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1421; } - goto e1439; + $this->p++; + } + e1421: + if (!$this->b302()) { + goto f1419;} + goto k1419; + f1419: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1418; + k1419: + if ($this->p === $b1) { + $k1 = 1; + goto e1418; } - $this->p++; + $k1++; } - e1439: - // b302 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; + e1418: + + if ($k1 < 1) { + goto f1417; + } + goto k1417; + f1417: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1417: + + return true; + } + + private function b302(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: break; @@ -8930,10 +8458,45 @@ private function b301(): bool case 17: case 18: case 24: - if (!$this->b304()) { - goto n1442;} - goto a1441; - n1442: + // b304 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(304); + } + + goto n1626;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b286()) { + goto f1627;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1629; + } + + $this->p++; + } + e1629: + goto k1627; + f1627: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1626; + k1627: + goto a1625; + n1626: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -8941,9 +8504,9 @@ private function b301(): bool $this->rec(56); } - goto n1443;} - goto a1441; - n1443: + goto n1630;} + goto a1625; + n1630: break; } @@ -8951,96 +8514,15 @@ private function b301(): bool $this->rec(302); } - goto f1440; - a1441: - goto k1440; - f1440: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1437; - k1440: - goto k1437; - f1437: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1437: - - return true; - } - - private function b304(): bool - { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(304); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - // b286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - goto f1656;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1657;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f1657;} - if (!$this->b293()) { - goto f1657;} - if (!$this->b296()) { - goto f1657;} - goto k1657; - f1657: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1656; - k1657: - $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1659; - } - - $this->p++; - } - e1659: - goto k1656; - f1656: + goto f1624; + a1625: + goto k1624; + f1624: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1656: + k1624: return true; } @@ -9058,7 +8540,7 @@ private function b307(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b199()) { - goto f1059;} + goto f1045;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -9079,14 +8561,14 @@ private function b307(): bool } elseif ($this->p >= $this->f) { $this->rec(69); } - goto k1059; - f1059: + goto k1045; + f1045: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1059: - $this->v[$m1] = $this->reduceCallableParameter($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1045: + $this->v[$m1] = $this->reduceCallableParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -9112,7 +8594,7 @@ private function b311(): bool $this->rec(312); } - goto e1061; + goto e1047; } // b312 @@ -9121,7 +8603,7 @@ private function b311(): bool $this->rec(312); } - goto e1061;} + goto e1047;} $o2 = $this->p; $m2 = $this->n; @@ -9131,7 +8613,7 @@ private function b311(): bool $this->rec(63); } - goto f1062;} + goto f1048;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -9145,40 +8627,40 @@ private function b311(): bool $this->rec(204); } - goto e1064; + goto e1050; } $this->p++; } - e1064: + e1050: if (!$this->b313()) { - goto f1062;} - goto k1062; - f1062: + goto f1048;} + goto k1048; + f1048: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1061; - k1062: + goto e1047; + k1048: if ($this->p === $b1) { $k1 = 1; - goto e1061; + goto e1047; } $k1++; } - e1061: + e1047: if ($k1 < 1) { - goto f1060; + goto f1046; } - goto k1060; - f1060: + goto k1046; + f1046: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1060: + k1046: return true; } @@ -9224,13 +8706,13 @@ private function b313(): bool $this->rec(314); } - goto n1418;} + goto n1398;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b307()) { - goto f1419;} + goto f1399;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -9242,21 +8724,21 @@ private function b313(): bool $this->rec(204); } - goto e1421; + goto e1401; } $this->p++; } - e1421: - goto k1419; - f1419: + e1401: + goto k1399; + f1399: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1418; - k1419: - goto a1417; - n1418: + goto n1398; + k1399: + goto a1397; + n1398: break; case 33: if (!($this->ids[$this->p] === 33)) { @@ -9264,9 +8746,9 @@ private function b313(): bool $this->rec(53); } - goto n1422;} - goto a1417; - n1422: + goto n1402;} + goto a1397; + n1402: break; } @@ -9274,15 +8756,15 @@ private function b313(): bool $this->rec(313); } - goto f1416; - a1417: - goto k1416; - f1416: + goto f1396; + a1397: + goto k1396; + f1396: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1416: + k1396: return true; } @@ -9322,7 +8804,7 @@ private function b315(): bool $this->rec(331); } - goto n1067;} + goto n1053;} $o2 = $this->p; $m2 = $this->n; @@ -9332,7 +8814,7 @@ private function b315(): bool $this->rec(332); } - goto f1068;} + goto f1054;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -9341,26 +8823,26 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1068;} + goto f1054;} } if (!$this->b318()) { - goto f1068;} - goto k1068; - f1068: + goto f1054;} + goto k1054; + f1054: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1067; - k1068: - goto a1066; - n1067: + goto n1053; + k1054: + goto a1052; + n1053: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1069;} + goto n1055;} $o2 = $this->p; $m2 = $this->n; @@ -9378,19 +8860,19 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1070;} + goto f1056;} } if (!$this->b335()) { - goto f1070;} - goto k1070; - f1070: + goto f1056;} + goto k1056; + f1056: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1069; - k1070: - goto a1066; - n1069: + goto n1055; + k1056: + goto a1052; + n1055: break; case 19: case 20: @@ -9402,7 +8884,7 @@ private function b315(): bool $this->rec(333); } - goto n1072;} + goto n1058;} $o2 = $this->p; $m2 = $this->n; @@ -9420,38 +8902,38 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1073;} + goto f1059;} } if (!$this->b335()) { - goto f1073;} - goto k1073; - f1073: + goto f1059;} + goto k1059; + f1059: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1072; - k1073: - goto a1066; - n1072: + goto n1058; + k1059: + goto a1052; + n1058: break; case 3: case 4: case 8: if (!$this->b255()) { - goto n1075;} - goto a1066; - n1075: + goto n1061;} + goto a1052; + n1061: if (!$this->b317()) { - goto n1076;} - goto a1066; - n1076: + goto n1062;} + goto a1052; + n1062: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1077;} + goto n1063;} $o2 = $this->p; $m2 = $this->n; @@ -9469,43 +8951,43 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1078;} + goto f1064;} } if (!$this->b335()) { - goto f1078;} - goto k1078; - f1078: + goto f1064;} + goto k1064; + f1064: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1077; - k1078: - goto a1066; - n1077: + goto n1063; + k1064: + goto a1052; + n1063: break; case 32: case 82: if (!$this->b316()) { - goto n1080;} - goto a1066; - n1080: + goto n1066;} + goto a1052; + n1066: break; case 6: if (!$this->b267()) { - goto n1081;} - goto a1066; - n1081: + goto n1067;} + goto a1052; + n1067: if (!$this->b317()) { - goto n1082;} - goto a1066; - n1082: + goto n1068;} + goto a1052; + n1068: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1083;} + goto n1069;} $o2 = $this->p; $m2 = $this->n; @@ -9523,36 +9005,36 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1084;} + goto f1070;} } if (!$this->b335()) { - goto f1084;} - goto k1084; - f1084: + goto f1070;} + goto k1070; + f1070: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1083; - k1084: - goto a1066; - n1083: + goto n1069; + k1070: + goto a1052; + n1069: break; case 7: if (!$this->b230()) { - goto n1086;} - goto a1066; - n1086: + goto n1072;} + goto a1052; + n1072: if (!$this->b317()) { - goto n1087;} - goto a1066; - n1087: + goto n1073;} + goto a1052; + n1073: // b333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1088;} + goto n1074;} $o2 = $this->p; $m2 = $this->n; @@ -9570,25 +9052,25 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1089;} + goto f1075;} } if (!$this->b335()) { - goto f1089;} - goto k1089; - f1089: + goto f1075;} + goto k1075; + f1075: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1088; - k1089: - goto a1066; - n1088: + goto n1074; + k1075: + goto a1052; + n1074: break; case 25: if (!$this->b229()) { - goto n1091;} - goto a1066; - n1091: + goto n1077;} + goto a1052; + n1077: break; case 30: // b200 @@ -9597,7 +9079,7 @@ private function b315(): bool $this->rec(200); } - goto n1092;} + goto n1078;} $o2 = $this->p; $m2 = $this->n; @@ -9607,22 +9089,22 @@ private function b315(): bool $this->rec(51); } - goto f1093;} + goto f1079;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f1093;} - goto k1093; - f1093: + goto f1079;} + goto k1079; + f1079: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1092; - k1093: - $this->v[$m2] = $this->reduceNullable($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n1078; + k1079: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); $this->n = $m2 + 1; - goto a1066; - n1092: + goto a1052; + n1078: break; } @@ -9630,16 +9112,16 @@ private function b315(): bool $this->rec(315); } - goto f1065; - a1066: - goto k1065; - f1065: + goto f1051; + a1052: + goto k1051; + f1051: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1065: - $this->v[$m1] = $this->reduceCallableReturnType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1051: + $this->v[$m1] = $this->reduceCallableReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -9662,17 +9144,17 @@ private function b316(): bool $this->rec(16); } - goto f1433;} + goto f1413;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b205()) { - goto f1433;} + goto f1413;} if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f1433;} + goto f1413;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -9682,7 +9164,7 @@ private function b316(): bool $this->rec(223); } - goto n1434;} + goto n1414;} $o2 = $this->p; $m2 = $this->n; @@ -9695,41 +9177,41 @@ private function b316(): bool $this->rec(224); } - goto e1436; + goto e1416; } if (!$this->b224()) { - goto e1436;} + goto e1416;} if ($this->p === $b2) { $k2 = 1; - goto e1436; + goto e1416; } $k2++; } - e1436: + e1416: if ($k2 < 1) { - goto f1435; + goto f1415; } - goto k1435; - f1435: + goto k1415; + f1415: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1434; - k1435: - n1434: + goto n1414; + k1415: + n1414: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1433; - f1433: + goto k1413; + f1413: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1433: + k1413: return true; } @@ -9751,7 +9233,7 @@ private function b317(): bool $this->rec(279); } - goto f1432;} + goto f1412;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -9760,7 +9242,7 @@ private function b317(): bool $this->f = $this->p; $this->er = []; } - goto f1432;} + goto f1412;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -9768,17 +9250,17 @@ private function b317(): bool $this->f = $this->p; $this->er = []; } - goto f1432;} + goto f1412;} } if (!$this->b318()) { - goto f1432;} - goto k1432; - f1432: + goto f1412;} + goto k1412; + f1412: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1432: + k1412: return true; } @@ -9795,24 +9277,24 @@ private function b318(): bool $this->f = $this->p; $this->er = []; } - goto n1425;} - goto a1424; - n1425: + goto n1405;} + goto a1404; + n1405: break; case 34: case 86: if (!$this->b319()) { - goto n1426;} - goto a1424; - n1426: + goto n1406;} + goto a1404; + n1406: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1427;} - goto a1424; - n1427: + goto n1407;} + goto a1404; + n1407: break; case 36: case 84: @@ -9822,7 +9304,7 @@ private function b318(): bool $this->rec(223); } - goto n1428;} + goto n1408;} $o2 = $this->p; $m2 = $this->n; @@ -9835,40 +9317,40 @@ private function b318(): bool $this->rec(224); } - goto e1430; + goto e1410; } if (!$this->b224()) { - goto e1430;} + goto e1410;} if ($this->p === $b2) { $k2 = 1; - goto e1430; + goto e1410; } $k2++; } - e1430: + e1410: if ($k2 < 1) { - goto f1429; + goto f1409; } - goto k1429; - f1429: + goto k1409; + f1409: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1428; - k1429: - goto a1424; - n1428: + goto n1408; + k1409: + goto a1404; + n1408: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1431;} - goto a1424; - n1431: + goto n1411;} + goto a1404; + n1411: break; } @@ -9876,15 +9358,15 @@ private function b318(): bool $this->rec(318); } - goto f1423; - a1424: - goto k1423; - f1423: + goto f1403; + a1404: + goto k1403; + f1403: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1423: + k1403: return true; } @@ -9902,7 +9384,7 @@ private function b319(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b320()) { - goto f1652;} + goto f1620;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -9910,7 +9392,7 @@ private function b319(): bool $this->rec(223); } - goto n1653;} + goto n1621;} $o2 = $this->p; $m2 = $this->n; @@ -9923,41 +9405,41 @@ private function b319(): bool $this->rec(224); } - goto e1655; + goto e1623; } if (!$this->b224()) { - goto e1655;} + goto e1623;} if ($this->p === $b2) { $k2 = 1; - goto e1655; + goto e1623; } $k2++; } - e1655: + e1623: if ($k2 < 1) { - goto f1654; + goto f1622; } - goto k1654; - f1654: + goto k1622; + f1622: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1653; - k1654: - n1653: + goto n1621; + k1622: + n1621: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1652; - f1652: + goto k1620; + f1620: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1652: + k1620: return true; } @@ -9979,7 +9461,7 @@ private function b320(): bool $this->rec(238); } - goto f787;} + goto f525;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -9993,14 +9475,14 @@ private function b320(): bool $this->rec(204); } - goto e789; + goto e527; } $this->p++; } - e789: + e527: if (!$this->b321()) { - goto f787;} + goto f525;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -10012,16 +9494,16 @@ private function b320(): bool $this->rec(204); } - goto e791; + goto e529; } $this->p++; } - e791: + e529: if (($this->ids[$this->p] === 40)) { if (!$this->b327()) { - goto n792;} - n792: + goto n530;} + n530: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -10030,17 +9512,17 @@ private function b320(): bool $this->rec(56); } - goto f787;} + goto f525;} $this->v[$this->n++] = $this->token($this->p++); - goto k787; - f787: + goto k525; + f525: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k787: - $this->v[$m1] = $this->reduceGenericInReturnType($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k525: + $this->v[$m1] = $this->reduceGenericInReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -10092,7 +9574,7 @@ private function b321(): bool $this->rec(324); } - goto n1027;} + goto n779;} $o2 = $this->p; $m2 = $this->n; @@ -10103,19 +9585,19 @@ private function b321(): bool $this->f = $this->p; $this->er = []; } - goto f1028;} + goto f780;} } if (!$this->b199()) { - goto f1028;} - goto k1028; - f1028: + goto f780;} + goto k780; + f780: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1027; - k1028: - goto a1026; - n1027: + goto n779; + k780: + goto a778; + n779: break; case 1: case 2: @@ -10125,7 +9607,7 @@ private function b321(): bool $this->rec(322); } - goto n1029;} + goto n781;} $o2 = $this->p; $m2 = $this->n; @@ -10135,28 +9617,28 @@ private function b321(): bool $this->rec(323); } - goto f1030;} + goto f782;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f1030;} - goto k1030; - f1030: + goto f782;} + goto k782; + f782: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1029; - k1030: - goto a1026; - n1029: + goto n781; + k782: + goto a778; + n781: break; case 50: $this->v[$this->n++] = $this->token($this->p++); - goto a1026; + goto a778; break; case 85: $this->v[$this->n++] = $this->token($this->p++); - goto a1026; + goto a778; break; } @@ -10164,16 +9646,16 @@ private function b321(): bool $this->rec(321); } - goto f1025; - a1026: - goto k1025; - f1025: + goto f777; + a778: + goto k777; + f777: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1025: - $this->v[$m1] = $this->reduceGenericArgument($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k777: + $this->v[$m1] = $this->reduceGenericArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -10199,7 +9681,7 @@ private function b327(): bool $this->rec(328); } - goto e1032; + goto e784; } // b328 @@ -10208,7 +9690,7 @@ private function b327(): bool $this->rec(328); } - goto e1032;} + goto e784;} $o2 = $this->p; $m2 = $this->n; @@ -10218,7 +9700,7 @@ private function b327(): bool $this->rec(63); } - goto f1033;} + goto f785;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -10232,40 +9714,40 @@ private function b327(): bool $this->rec(204); } - goto e1035; + goto e787; } $this->p++; } - e1035: + e787: if (!$this->b329()) { - goto f1033;} - goto k1033; - f1033: + goto f785;} + goto k785; + f785: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1032; - k1033: + goto e784; + k785: if ($this->p === $b1) { $k1 = 1; - goto e1032; + goto e784; } $k1++; } - e1032: + e784: if ($k1 < 1) { - goto f1031; + goto f783; } - goto k1031; - f1031: + goto k783; + f783: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1031: + k783: return true; } @@ -10313,13 +9795,13 @@ private function b329(): bool $this->rec(330); } - goto n1392;} + goto n1015;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b321()) { - goto f1393;} + goto f1016;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -10331,21 +9813,21 @@ private function b329(): bool $this->rec(204); } - goto e1395; + goto e1018; } $this->p++; } - e1395: - goto k1393; - f1393: + e1018: + goto k1016; + f1016: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1392; - k1393: - goto a1391; - n1392: + goto n1015; + k1016: + goto a1014; + n1015: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -10353,9 +9835,9 @@ private function b329(): bool $this->rec(56); } - goto n1396;} - goto a1391; - n1396: + goto n1019;} + goto a1014; + n1019: break; } @@ -10363,15 +9845,15 @@ private function b329(): bool $this->rec(329); } - goto f1390; - a1391: - goto k1390; - f1390: + goto f1013; + a1014: + goto k1013; + f1013: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1390: + k1013: return true; } @@ -10401,10 +9883,10 @@ private function b335(): bool $this->f = $this->p; $this->er = []; } - goto f624;} + goto f608;} } if (!$this->b340()) { - goto f624;} + goto f608;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -10412,7 +9894,7 @@ private function b335(): bool $this->rec(223); } - goto n626;} + goto n610;} $o2 = $this->p; $m2 = $this->n; @@ -10425,41 +9907,41 @@ private function b335(): bool $this->rec(224); } - goto e628; + goto e612; } if (!$this->b224()) { - goto e628;} + goto e612;} if ($this->p === $b2) { $k2 = 1; - goto e628; + goto e612; } $k2++; } - e628: + e612: if ($k2 < 1) { - goto f627; + goto f611; } - goto k627; - f627: + goto k611; + f611: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n626; - k627: - n626: + goto n610; + k611: + n610: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k624; - f624: + goto k608; + f608: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k624: + k608: return true; } @@ -10494,92 +9976,55 @@ private function b340(): bool case 14: case 24: if (!$this->b357()) { - goto n184;} - goto a183; - n184: + goto n172;} + goto a171; + n172: break; case 7: case 18: if (!$this->b347()) { - goto n185;} - goto a183; - n185: + goto n173;} + goto a171; + n173: break; case 21: case 22: - // b343 - if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(343); - } - - goto n186;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 21: - $this->v[$this->n++] = $this->token($this->p++); - goto a188; - break; - case 22: - $this->v[$this->n++] = $this->token($this->p++); - goto a188; - break; - } - - if ($this->p > $this->f) { - $this->rec(343); - } - - goto f187; - a188: - goto k187; - f187: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n186; - k187: - $this->v[$m2] = $this->reduceConstantString($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto a183; - n186: + if (!$this->b343()) { + goto n174;} + goto a171; + n174: break; case 36: case 84: if (!$this->b361()) { - goto n189;} - goto a183; - n189: + goto n175;} + goto a171; + n175: break; case 15: - $this->v[$this->n++] = $this->reduceConstantFalse($this->context($this->p, $this->p + 1)); + $this->v[$this->n++] = $this->reduceConstantFalse($this->indexes[$this->p], $this->indexes[$this->p]); $this->p++; - goto a183; + goto a171; break; case 16: - $this->v[$this->n++] = $this->reduceConstantTrue($this->context($this->p, $this->p + 1)); + $this->v[$this->n++] = $this->reduceConstantTrue($this->indexes[$this->p], $this->indexes[$this->p]); $this->p++; - goto a183; + goto a171; break; case 17: - $this->v[$this->n++] = $this->reduceConstantNull($this->context($this->p, $this->p + 1)); + $this->v[$this->n++] = $this->reduceConstantNull($this->indexes[$this->p], $this->indexes[$this->p]); $this->p++; - goto a183; + goto a171; break; case 19: - $this->v[$this->n++] = $this->reduceConstantFloat($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceConstantFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a183; + goto a171; break; case 20: - $this->v[$this->n++] = $this->reduceConstantInteger($this->context($this->p, $this->p + 1), [$this->token($this->p)]); + $this->v[$this->n++] = $this->reduceConstantInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a183; + goto a171; break; } @@ -10587,24 +10032,24 @@ private function b340(): bool $this->rec(340); } - goto f182; - a183: - goto k182; - f182: + goto f170; + a171: + goto k170; + f170: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k182: + k170: return true; } - private function b347(): bool + private function b343(): bool { - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(347); + $this->rec(343); } return false;} @@ -10612,12 +10057,56 @@ private function b347(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(339); - } + switch ($this->ids[$this->p]) { + default: + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a426; + break; + case 22: + $this->v[$this->n++] = $this->token($this->p++); + goto a426; + break; + } - goto f449;} + if ($this->p > $this->f) { + $this->rec(343); + } + + goto f425; + a426: + goto k425; + f425: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k425: + $this->v[$m1] = $this->reduceConstantString(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b347(): bool + { + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(347); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(339); + } + + goto f423;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -10625,13 +10114,13 @@ private function b347(): bool $this->rec(16); } - goto f449;} + goto f423;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { if (!$this->b349()) { - goto n450;} - n450: + goto n424;} + n424: } elseif ($this->p > $this->f) { $this->rec(349); } @@ -10640,17 +10129,17 @@ private function b347(): bool $this->rec(53); } - goto f449;} + goto f423;} $this->v[$this->n++] = $this->token($this->p++); - goto k449; - f449: + goto k423; + f423: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k449: - $this->v[$m1] = $this->reduceConstantArrayLiteral($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k423: + $this->v[$m1] = $this->reduceConstantArrayLiteral(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -10674,23 +10163,23 @@ private function b349(): bool $this->rec(350); } - goto f715;} + goto f699;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b340()) { - goto f716;} + goto f700;} if (!$this->b351()) { - goto f716;} - goto k716; - f716: + goto f700;} + goto k700; + f700: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f715; - k716: - $this->v[$m2] = $this->reduceConstantArrayItem($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto f699; + k700: + $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); $this->n = $m2 + 1; if (($this->ids[$this->p] === 40)) { // b355 @@ -10699,7 +10188,7 @@ private function b349(): bool $this->rec(355); } - goto n717;} + goto n701;} $o2 = $this->p; $m2 = $this->n; @@ -10712,31 +10201,31 @@ private function b349(): bool $this->rec(356); } - goto e719; + goto e703; } if (!$this->b356()) { - goto e719;} + goto e703;} if ($this->p === $b2) { $k2 = 1; - goto e719; + goto e703; } $k2++; } - e719: + e703: if ($k2 < 1) { - goto f718; + goto f702; } - goto k718; - f718: + goto k702; + f702: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n717; - k718: - n717: + goto n701; + k702: + n701: } elseif ($this->p > $this->f) { $this->rec(355); } @@ -10745,13 +10234,13 @@ private function b349(): bool } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k715; - f715: + goto k699; + f699: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k715: + k699: return true; } @@ -10768,9 +10257,9 @@ private function b351(): bool $this->f = $this->p; $this->er = []; } - goto n956;} - goto a955; - n956: + goto n951;} + goto a950; + n951: break; case 44: // b352 @@ -10779,7 +10268,7 @@ private function b351(): bool $this->rec(352); } - goto n957;} + goto n952;} $o2 = $this->p; $m2 = $this->n; @@ -10789,28 +10278,28 @@ private function b351(): bool $this->rec(67); } - goto f958;} + goto f953;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b340()) { - goto f958;} - goto k958; - f958: + goto f953;} + goto k953; + f953: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n957; - k958: - goto a955; - n957: + goto n952; + k953: + goto a950; + n952: if (($this->ids[$this->p] === 44)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n959;} - goto a955; - n959: + goto n954;} + goto a950; + n954: break; } @@ -10818,15 +10307,15 @@ private function b351(): bool $this->rec(351); } - goto f954; - a955: - goto k954; - f954: + goto f949; + a950: + goto k949; + f949: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k954: + k949: return true; } @@ -10848,7 +10337,7 @@ private function b356(): bool $this->rec(63); } - goto f960;} + goto f955;} $this->v[$this->n++] = $this->token($this->p++); // b350 @@ -10857,31 +10346,31 @@ private function b356(): bool $this->rec(350); } - goto f960;} + goto f955;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b340()) { - goto f961;} + goto f956;} if (!$this->b351()) { - goto f961;} - goto k961; - f961: + goto f956;} + goto k956; + f956: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f960; - k961: - $this->v[$m2] = $this->reduceConstantArrayItem($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto f955; + k956: + $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); $this->n = $m2 + 1; - goto k960; - f960: + goto k955; + f955: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k960: + k955: return true; } @@ -10904,14 +10393,14 @@ private function b357(): bool $this->f = $this->p; $this->er = []; } - goto f446;} + goto f420;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f446;} + goto f420;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { @@ -10921,7 +10410,7 @@ private function b357(): bool $this->rec(360); } - goto n447;} + goto n421;} $o2 = $this->p; $m2 = $this->n; @@ -10931,30 +10420,30 @@ private function b357(): bool $this->rec(66); } - goto f448;} + goto f422;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b163()) { - goto f448;} - goto k448; - f448: + goto f422;} + goto k422; + f422: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n447; - k448: - n447: + goto n421; + k422: + n421: } elseif ($this->p > $this->f) { $this->rec(360); } - goto k446; - f446: + goto k420; + f420: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k446: - $this->v[$m1] = $this->reduceConstantFetch($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k420: + $this->v[$m1] = $this->reduceConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -10977,13 +10466,13 @@ private function b361(): bool $this->rec(228); } - goto f451;} + goto f427;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { if (!$this->b349()) { - goto n452;} - n452: + goto n428;} + n428: } elseif ($this->p > $this->f) { $this->rec(349); } @@ -10992,17 +10481,17 @@ private function b361(): bool $this->rec(59); } - goto f451;} + goto f427;} $this->v[$this->n++] = $this->token($this->p++); - goto k451; - f451: + goto k427; + f427: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k451: - $this->v[$m1] = $this->reduceConstantArrayShorthand($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k427: + $this->v[$m1] = $this->reduceConstantArrayShorthand(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -11021,7 +10510,7 @@ private function b362(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b363()) { - goto f1110;} + goto f1093;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -11029,7 +10518,7 @@ private function b362(): bool $this->rec(223); } - goto n1111;} + goto n1094;} $o2 = $this->p; $m2 = $this->n; @@ -11042,41 +10531,41 @@ private function b362(): bool $this->rec(224); } - goto e1113; + goto e1096; } if (!$this->b224()) { - goto e1113;} + goto e1096;} if ($this->p === $b2) { $k2 = 1; - goto e1113; + goto e1096; } $k2++; } - e1113: + e1096: if ($k2 < 1) { - goto f1112; + goto f1095; } - goto k1112; - f1112: + goto k1095; + f1095: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1111; - k1112: - n1111: + goto n1094; + k1095: + n1094: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1110; - f1110: + goto k1093; + f1093: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1110: + k1093: return true; } @@ -11098,7 +10587,7 @@ private function b363(): bool $this->rec(54); } - goto f1444;} + goto f1422;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -11112,14 +10601,14 @@ private function b363(): bool $this->rec(204); } - goto e1446; + goto e1424; } $this->p++; } - e1446: + e1424: if (!$this->b321()) { - goto f1444;} + goto f1422;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -11131,16 +10620,16 @@ private function b363(): bool $this->rec(204); } - goto e1448; + goto e1426; } $this->p++; } - e1448: + e1426: if (($this->ids[$this->p] === 40)) { if (!$this->b327()) { - goto n1449;} - n1449: + goto n1427;} + n1427: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -11149,17 +10638,17 @@ private function b363(): bool $this->rec(56); } - goto f1444;} + goto f1422;} $this->v[$this->n++] = $this->token($this->p++); - goto k1444; - f1444: + goto k1422; + f1422: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1444: - $this->v[$m1] = $this->reduceGeneric($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1422: + $this->v[$m1] = $this->reduceGeneric(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -11182,7 +10671,7 @@ private function b364(): bool $this->rec(16); } - goto f827;} + goto f821;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -11196,12 +10685,12 @@ private function b364(): bool $this->rec(204); } - goto e829; + goto e823; } $this->p++; } - e829: + e823: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { // b306 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -11209,13 +10698,13 @@ private function b364(): bool $this->rec(306); } - goto n830;} + goto n824;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b307()) { - goto f831;} + goto f825;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -11227,27 +10716,27 @@ private function b364(): bool $this->rec(204); } - goto e833; + goto e827; } $this->p++; } - e833: + e827: if (($this->ids[$this->p] === 40)) { if (!$this->b311()) { - goto n834;} - n834: + goto n828;} + n828: } elseif ($this->p > $this->f) { $this->rec(311); } - goto k831; - f831: + goto k825; + f825: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n830; - k831: - n830: + goto n824; + k825: + n824: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -11256,7 +10745,7 @@ private function b364(): bool $this->rec(53); } - goto f827;} + goto f821;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 47)) { @@ -11264,19 +10753,19 @@ private function b364(): bool $this->rec(70); } - goto f827;} + goto f821;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b315()) { - goto f827;} - goto k827; - f827: + goto f821;} + goto k821; + f821: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k827: - $this->v[$m1] = $this->reduceCallable($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k821: + $this->v[$m1] = $this->reduceCallable(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -11299,7 +10788,7 @@ private function b368(): bool $this->f = $this->p; $this->er = []; } - goto f399;} + goto f373;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -11307,17 +10796,17 @@ private function b368(): bool $this->f = $this->p; $this->er = []; } - goto f399;} + goto f373;} } - goto k399; - f399: + goto k373; + f373: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n398; - k399: - goto a397; - n398: + goto n372; + k373: + goto a371; + n372: break; case 28: case 29: @@ -11329,7 +10818,7 @@ private function b368(): bool $this->rec(369); } - goto n400;} + goto n374;} $o2 = $this->p; $m2 = $this->n; @@ -11345,23 +10834,23 @@ private function b368(): bool $this->rec(204); } - goto e403; + goto e377; } $this->p++; } - e403: + e377: if (!$this->b370()) { - goto f401;} - goto k401; - f401: + goto f375;} + goto k375; + f375: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n400; - k401: - goto a397; - n400: + goto n374; + k375: + goto a371; + n374: // b383 $o2 = $this->p; $m2 = $this->n; @@ -11372,7 +10861,7 @@ private function b368(): bool $this->f = $this->p; $this->er = []; } - goto f405;} + goto f379;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -11380,17 +10869,17 @@ private function b368(): bool $this->f = $this->p; $this->er = []; } - goto f405;} + goto f379;} } - goto k405; - f405: + goto k379; + f379: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n404; - k405: - goto a397; - n404: + goto n378; + k379: + goto a371; + n378: break; } @@ -11398,15 +10887,15 @@ private function b368(): bool $this->rec(368); } - goto f396; - a397: - goto k396; - f396: + goto f370; + a371: + goto k370; + f370: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k396: + k370: return true; } @@ -11428,15 +10917,15 @@ private function b370(): bool break; case 28: if (!$this->b371()) { - goto n655;} - goto a654; - n655: + goto n639;} + goto a638; + n639: break; case 29: if (!$this->b377()) { - goto n656;} - goto a654; - n656: + goto n640;} + goto a638; + n640: break; } @@ -11444,15 +10933,15 @@ private function b370(): bool $this->rec(370); } - goto f653; - a654: - goto k653; - f653: + goto f637; + a638: + goto k637; + f637: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k653: + k637: return true; } @@ -11475,7 +10964,7 @@ private function b371(): bool $this->rec(372); } - goto f878;} + goto f873;} $o2 = $this->p; $m2 = $this->n; @@ -11488,45 +10977,45 @@ private function b371(): bool $this->rec(373); } - goto e880; + goto e875; } if (!$this->b373()) { - goto e880;} + goto e875;} if ($this->p === $b2) { $k2 = 1; - goto e880; + goto e875; } $k2++; } - e880: + e875: if ($k2 < 1) { - goto f879; + goto f874; } - goto k879; - f879: + goto k874; + f874: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f878; - k879: + goto f873; + k874: if (($this->ids[$this->p] === 28)) { if (($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f878;} + goto f873;} } - goto k878; - f878: + goto k873; + f873: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k878: + k873: return true; } @@ -11548,11 +11037,11 @@ private function b373(): bool $this->rec(49); } - goto f1158;} + goto f1141;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f1158;} + goto f1141;} // b375 $o2 = $this->p; $m2 = $this->n; @@ -11568,33 +11057,33 @@ private function b373(): bool $this->rec(204); } - goto e1162; + goto e1145; } $this->p++; } - e1162: + e1145: if (!($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->rec(49); } - goto f1160;} - goto k1160; - f1160: + goto f1143;} + goto k1143; + f1143: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1159; - k1160: - n1159: - goto k1158; - f1158: + goto n1142; + k1143: + n1142: + goto k1141; + f1141: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1158: + k1141: return true; } @@ -11617,7 +11106,7 @@ private function b377(): bool $this->rec(378); } - goto f881;} + goto f876;} $o2 = $this->p; $m2 = $this->n; @@ -11630,45 +11119,45 @@ private function b377(): bool $this->rec(379); } - goto e883; + goto e878; } if (!$this->b379()) { - goto e883;} + goto e878;} if ($this->p === $b2) { $k2 = 1; - goto e883; + goto e878; } $k2++; } - e883: + e878: if ($k2 < 1) { - goto f882; + goto f877; } - goto k882; - f882: + goto k877; + f877: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f881; - k882: + goto f876; + k877: if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f881;} + goto f876;} } - goto k881; - f881: + goto k876; + f876: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k881: + k876: return true; } @@ -11690,11 +11179,11 @@ private function b379(): bool $this->rec(50); } - goto f1163;} + goto f1146;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f1163;} + goto f1146;} // b381 $o2 = $this->p; $m2 = $this->n; @@ -11710,33 +11199,68 @@ private function b379(): bool $this->rec(204); } - goto e1167; + goto e1150; } $this->p++; } - e1167: + e1150: if (!($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->rec(50); } - goto f1165;} - goto k1165; - f1165: + goto f1148;} + goto k1148; + f1148: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1164; - k1165: - n1164: - goto k1163; - f1163: + goto n1147; + k1148: + n1147: + goto k1146; + f1146: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1146: + + return true; + } + + private function b384(): bool + { + if (!($this->ids[$this->p] === 75)) { + if ($this->p > $this->f) { + $this->rec(384); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 75)) { + if ($this->p >= $this->f) { + $this->rec(90); + } + + goto f298;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f298;} + if (!$this->b385()) { + goto f298;} + goto k298; + f298: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1163: + k298: return true; } @@ -11748,48 +11272,10 @@ private function b385(): bool $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - // b388 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f317;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f317;} - } - if (($this->ids[$this->p] === 32)) { - if (($this->ids[$this->p] === 32)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f317;} - } - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f317;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k317; - f317: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n316; - k317: - goto a315; - n316: + if (!$this->b388()) { + goto n548;} + goto a547; + n548: break; case 25: case 26: @@ -11799,7 +11285,7 @@ private function b385(): bool $this->rec(386); } - goto n319;} + goto n549;} $o2 = $this->p; $m2 = $this->n; @@ -11809,65 +11295,27 @@ private function b385(): bool $this->rec(387); } - goto f320;} + goto f550;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f320;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k320; - f320: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n319; - k320: - goto a315; - n319: - // b388 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f323;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f323;} - } - if (($this->ids[$this->p] === 32)) { - if (($this->ids[$this->p] === 32)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f323;} - } - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f323;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k323; - f323: + goto f550;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k550; + f550: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n322; - k323: - goto a315; - n322: + goto n549; + k550: + goto a547; + n549: + if (!$this->b388()) { + goto n552;} + goto a547; + n552: break; } @@ -11875,15 +11323,15 @@ private function b385(): bool $this->rec(385); } - goto f314; - a315: - goto k314; - f314: + goto f546; + a547: + goto k546; + f546: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k314: + k546: return true; } @@ -11899,7 +11347,7 @@ private function b388(): bool $this->f = $this->p; $this->er = []; } - goto f281;} + goto f267;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -11907,7 +11355,7 @@ private function b388(): bool $this->f = $this->p; $this->er = []; } - goto f281;} + goto f267;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -11915,20 +11363,20 @@ private function b388(): bool $this->f = $this->p; $this->er = []; } - goto f281;} + goto f267;} } // b125 $o2 = $this->p; if (!$this->s125()) { - goto f281;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k281; - f281: + goto f267;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k267; + f267: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k281: + k267: return true; } @@ -11950,7 +11398,7 @@ private function b398(): bool $this->rec(98); } - goto f289;} + goto f273;} $this->v[$this->n++] = $this->token($this->p++); // b399 @@ -11959,40 +11407,40 @@ private function b398(): bool $this->rec(399); } - goto f289;} + goto f273;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b199()) { - goto f290;} + goto f274;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f290;} + goto f274;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f290;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k290; - f290: + goto f274;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k274; + f274: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f289; - k290: - goto k289; - f289: + goto f273; + k274: + goto k273; + f273: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k289: + k273: return true; } @@ -12014,7 +11462,7 @@ private function b400(): bool $this->rec(108); } - goto f296;} + goto f281;} $this->v[$this->n++] = $this->token($this->p++); // b399 @@ -12023,40 +11471,40 @@ private function b400(): bool $this->rec(399); } - goto f296;} + goto f281;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b199()) { - goto f297;} + goto f282;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f297;} + goto f282;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f297;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k297; - f297: + goto f282;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k282; + f282: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f296; - k297: - goto k296; - f296: + goto f281; + k282: + goto k281; + f281: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k296: + k281: return true; } @@ -12078,7 +11526,7 @@ private function b401(): bool $this->rec(87); } - goto f278;} + goto f264;} $this->v[$this->n++] = $this->token($this->p++); // b399 @@ -12087,40 +11535,40 @@ private function b401(): bool $this->rec(399); } - goto f278;} + goto f264;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b199()) { - goto f279;} + goto f265;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f279;} + goto f265;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f279;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k279; - f279: + goto f265;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k265; + f265: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f278; - k279: - goto k278; - f278: + goto f264; + k265: + goto k264; + f264: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k278: + k264: return true; } @@ -12142,7 +11590,7 @@ private function b402(): bool $this->rec(85); } - goto f266;} + goto f252;} $this->v[$this->n++] = $this->token($this->p++); // b403 @@ -12151,7 +11599,7 @@ private function b402(): bool $this->rec(403); } - goto f266;} + goto f252;} $o2 = $this->p; $m2 = $this->n; @@ -12161,28 +11609,28 @@ private function b402(): bool $this->rec(47); } - goto f267;} + goto f253;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f267;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k267; - f267: + goto f253;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k253; + f253: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f266; - k267: - goto k266; - f266: + goto f252; + k253: + goto k252; + f252: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k266: + k252: return true; } @@ -12204,7 +11652,7 @@ private function b404(): bool $this->rec(86); } - goto f275;} + goto f261;} $this->v[$this->n++] = $this->token($this->p++); // b403 @@ -12213,7 +11661,7 @@ private function b404(): bool $this->rec(403); } - goto f275;} + goto f261;} $o2 = $this->p; $m2 = $this->n; @@ -12223,28 +11671,28 @@ private function b404(): bool $this->rec(47); } - goto f276;} + goto f262;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f276;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k276; - f276: + goto f262;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k262; + f262: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f275; - k276: - goto k275; - f275: + goto f261; + k262: + goto k261; + f261: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k275: + k261: return true; } @@ -12266,7 +11714,7 @@ private function b405(): bool $this->rec(88); } - goto f269;} + goto f255;} $this->v[$this->n++] = $this->token($this->p++); // b403 @@ -12275,7 +11723,7 @@ private function b405(): bool $this->rec(403); } - goto f269;} + goto f255;} $o2 = $this->p; $m2 = $this->n; @@ -12285,28 +11733,28 @@ private function b405(): bool $this->rec(47); } - goto f270;} + goto f256;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f270;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k270; - f270: + goto f256;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k256; + f256: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f269; - k270: - goto k269; - f269: + goto f255; + k256: + goto k255; + f255: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k269: + k255: return true; } @@ -12328,7 +11776,7 @@ private function b406(): bool $this->rec(89); } - goto f272;} + goto f258;} $this->v[$this->n++] = $this->token($this->p++); // b403 @@ -12337,7 +11785,7 @@ private function b406(): bool $this->rec(403); } - goto f272;} + goto f258;} $o2 = $this->p; $m2 = $this->n; @@ -12347,28 +11795,28 @@ private function b406(): bool $this->rec(47); } - goto f273;} + goto f259;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o3 = $this->p; if (!$this->s125()) { - goto f273;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k273; - f273: + goto f259;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k259; + f259: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f272; - k273: - goto k272; - f272: + goto f258; + k259: + goto k258; + f258: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k272: + k258: return true; } @@ -12420,24 +11868,24 @@ private function b409(): bool $this->rec(435); } - goto n302;} + goto n288;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b199()) { - goto f303;} + goto f289;} if (!$this->b415()) { - goto f303;} - goto k303; - f303: + goto f289;} + goto k289; + f289: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n302; - k303: - goto a301; - n302: + goto n288; + k289: + goto a287; + n288: break; case 9: // b410 @@ -12446,7 +11894,7 @@ private function b409(): bool $this->rec(410); } - goto n304;} + goto n290;} $o2 = $this->p; $m2 = $this->n; @@ -12456,7 +11904,7 @@ private function b409(): bool $this->rec(25); } - goto f305;} + goto f291;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T648acf56[$this->ids[$this->p]])) { @@ -12472,45 +11920,45 @@ private function b409(): bool $this->f = $this->p; $this->er = []; } - goto f305;} + goto f291;} } if (!$this->b199()) { - goto f305;} + goto f291;} if (!$this->b415()) { - goto f305;} - goto k305; - f305: + goto f291;} + goto k291; + f291: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n304; - k305: - goto a301; - n304: + goto n290; + k291: + goto a287; + n290: // b435 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(435); } - goto n307;} + goto n293;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b199()) { - goto f308;} + goto f294;} if (!$this->b415()) { - goto f308;} - goto k308; - f308: + goto f294;} + goto k294; + f294: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n307; - k308: - goto a301; - n307: + goto n293; + k294: + goto a287; + n293: break; } @@ -12518,15 +11966,15 @@ private function b409(): bool $this->rec(409); } - goto f300; - a301: - goto k300; - f300: + goto f286; + a287: + goto k286; + f286: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k300: + k286: return true; } @@ -12571,7 +12019,7 @@ private function b415(): bool $this->rec(416); } - goto n555;} + goto n533;} $o2 = $this->p; $m2 = $this->n; @@ -12581,29 +12029,29 @@ private function b415(): bool $this->rec(144); } - goto f556;} + goto f534;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b417()) { - goto f556;} - goto k556; - f556: + goto f534;} + goto k534; + f534: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n555; - k556: - goto a554; - n555: + goto n533; + k534: + goto a532; + n533: break; case 32: case 34: case 82: case 86: if (!$this->b417()) { - goto n557;} - goto a554; - n557: + goto n535;} + goto a532; + n535: break; } @@ -12611,15 +12059,15 @@ private function b415(): bool $this->rec(415); } - goto f553; - a554: - goto k553; - f553: + goto f531; + a532: + goto k531; + f531: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k553: + k531: return true; } @@ -12636,57 +12084,14 @@ private function b417(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - // b418 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n796;} - goto a795; - n796: - break; - case 34: - case 86: - if (!$this->b419()) { - goto n797;} - goto a795; - n797: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n798;} - goto a795; - n798: - break; - } - - if ($this->p > $this->f) { - $this->rec(418); - } - - goto f794; - a795: - goto k794; - f794: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f793; - k794: + if (!$this->b418()) { + goto f788;} if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(16); } - goto f793;} + goto f788;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T9373805c[$this->ids[$this->p]])) { @@ -12696,28 +12101,28 @@ private function b417(): bool $this->rec(424); } - goto n799;} + goto n789;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b425()) { - goto f800;} + goto f790;} if (($this->ids[$this->p] === 40)) { if (!$this->b433()) { - goto n801;} - n801: + goto n791;} + n791: } elseif ($this->p > $this->f) { $this->rec(433); } - goto k800; - f800: + goto k790; + f790: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n799; - k800: - n799: + goto n789; + k790: + n789: } elseif ($this->p > $this->f) { $this->rec(424); } @@ -12726,151 +12131,121 @@ private function b417(): bool $this->rec(53); } - goto f793;} + goto f788;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o2 = $this->p; if (!$this->s125()) { - goto f793;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k793; - f793: + goto f788;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k788; + f788: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k793: + k788: return true; } - private function b419(): bool + private function b418(): bool { - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(419); - } - - return false;} - $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1036;} - - $this->v[$this->n++] = $this->token($this->p++); - // b286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1022;} + goto a1021; + n1022: + break; + case 34: + case 86: + // b419 + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(419); + } - goto f1036;} + goto n1023;} - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(238); + } - goto f1037;} + goto f1024;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f1037;} - if (!$this->b293()) { - goto f1037;} - if (!$this->b296()) { - goto f1037;} - goto k1037; - f1037: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1036; - k1037: - $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - if (($this->ids[$this->p] === 40)) { - // b421 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b286()) { + goto f1024;} + if (($this->ids[$this->p] === 40)) { + if (!$this->b421()) { + goto n1025;} + n1025: + } elseif ($this->p > $this->f) { $this->rec(421); } - - goto n1038;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b2 > $this->f) { - $this->rec(422); + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); } - goto e1040; - } - - if (!$this->b422()) { - goto e1040;} - if ($this->p === $b2) { - $k2 = 1; - goto e1040; - } - - $k2++; - } - e1040: + goto f1024;} - if ($k2 < 1) { - goto f1039; - } - goto k1039; - f1039: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1038; - k1039: - n1038: - } elseif ($this->p > $this->f) { - $this->rec(421); + $this->v[$this->n++] = $this->token($this->p++); + goto k1024; + f1024: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1023; + k1024: + goto a1021; + n1023: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1026;} + goto a1021; + n1026: + break; } - if (!($this->ids[$this->p] === 35)) { - if ($this->p >= $this->f) { - $this->rec(56); - } - goto f1036;} + if ($this->p > $this->f) { + $this->rec(418); + } - $this->v[$this->n++] = $this->token($this->p++); - goto k1036; - f1036: + goto f1020; + a1021: + goto k1020; + f1020: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1036: + k1020: return true; } - private function b422(): bool + private function b421(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(422); + $this->rec(421); } return false;} @@ -12878,55 +12253,64 @@ private function b422(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(422); + } + + goto e1377; } - goto f1397;} + // b422 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(422); + } - $this->v[$this->n++] = $this->token($this->p++); - // b286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } + goto e1377;} - goto f1397;} + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 40)) { + if ($this->p >= $this->f) { + $this->rec(63); + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + goto f1378;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b286()) { + goto f1378;} + goto k1378; + f1378: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1377; + k1378: + if ($this->p === $b1) { + $k1 = 1; + goto e1377; } - goto f1398;} + $k1++; + } + e1377: - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f1398;} - if (!$this->b293()) { - goto f1398;} - if (!$this->b296()) { - goto f1398;} - goto k1398; - f1398: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1397; - k1398: - $this->v[$m2] = $this->reduceCallableTemplateArgument($this->context($o2), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto k1397; - f1397: + if ($k1 < 1) { + goto f1376; + } + goto k1376; + f1376: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1397: + k1376: return true; } @@ -12969,9 +12353,9 @@ private function b425(): bool case 32: case 82: if (!$this->b426()) { - goto n1043;} - goto a1042; - n1043: + goto n1029;} + goto a1028; + n1029: break; case 26: case 27: @@ -12982,7 +12366,7 @@ private function b425(): bool $this->rec(431); } - goto n1044;} + goto n1030;} $o2 = $this->p; $m2 = $this->n; @@ -13002,20 +12386,20 @@ private function b425(): bool $this->rec(47); } - goto f1045;} + goto f1031;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b429()) { - goto f1045;} - goto k1045; - f1045: + goto f1031;} + goto k1031; + f1031: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1044; - k1045: - goto a1042; - n1044: + goto n1030; + k1031: + goto a1028; + n1030: break; } @@ -13023,16 +12407,16 @@ private function b425(): bool $this->rec(425); } - goto f1041; - a1042: - goto k1041; - f1041: + goto f1027; + a1028: + goto k1027; + f1027: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1041: - $this->v[$m1] = $this->reduceMethodParameter($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1027: + $this->v[$m1] = $this->reduceMethodParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -13055,9 +12439,9 @@ private function b426(): bool $this->rec(428); } - goto f1399;} + goto f1379;} if (!$this->b199()) { - goto f1399;} + goto f1379;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -13073,18 +12457,18 @@ private function b426(): bool $this->rec(47); } - goto f1399;} + goto f1379;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b429()) { - goto f1399;} - goto k1399; - f1399: + goto f1379;} + goto k1379; + f1379: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1399: + k1379: return true; } @@ -13101,9 +12485,9 @@ private function b429(): bool $this->f = $this->p; $this->er = []; } - goto n1402;} - goto a1401; - n1402: + goto n1382;} + goto a1381; + n1382: break; case 46: // b430 @@ -13112,7 +12496,7 @@ private function b429(): bool $this->rec(430); } - goto n1403;} + goto n1383;} $o2 = $this->p; $m2 = $this->n; @@ -13122,28 +12506,28 @@ private function b429(): bool $this->rec(69); } - goto f1404;} + goto f1384;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b340()) { - goto f1404;} - goto k1404; - f1404: + goto f1384;} + goto k1384; + f1384: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1403; - k1404: - goto a1401; - n1403: + goto n1383; + k1384: + goto a1381; + n1383: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1405;} - goto a1401; - n1405: + goto n1385;} + goto a1381; + n1385: break; } @@ -13151,15 +12535,15 @@ private function b429(): bool $this->rec(429); } - goto f1400; - a1401: - goto k1400; - f1400: + goto f1380; + a1381: + goto k1380; + f1380: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1400: + k1380: return true; } @@ -13184,7 +12568,7 @@ private function b433(): bool $this->rec(434); } - goto e1047; + goto e1033; } // b434 @@ -13193,7 +12577,7 @@ private function b433(): bool $this->rec(434); } - goto e1047;} + goto e1033;} $o2 = $this->p; $m2 = $this->n; @@ -13203,37 +12587,37 @@ private function b433(): bool $this->rec(63); } - goto f1048;} + goto f1034;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b425()) { - goto f1048;} - goto k1048; - f1048: + goto f1034;} + goto k1034; + f1034: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1047; - k1048: + goto e1033; + k1034: if ($this->p === $b1) { $k1 = 1; - goto e1047; + goto e1033; } $k1++; } - e1047: + e1033: if ($k1 < 1) { - goto f1046; + goto f1032; } - goto k1046; - f1046: + goto k1032; + f1032: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1046: + k1032: return true; } @@ -13244,81 +12628,43 @@ private function b436(): bool if ($this->p > $this->f) { $this->rec(436); } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 62)) { - if ($this->p >= $this->f) { - $this->rec(100); - } - - goto f286;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f286;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f286;} - if (!$this->b293()) { - goto f286;} - if (!$this->b296()) { - goto f286;} - // b388 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f287;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f287;} - } - if (($this->ids[$this->p] === 32)) { - if (($this->ids[$this->p] === 32)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f287;} - } - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f287;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k287; - f287: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f286; - k287: - goto k286; - f286: + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!($this->ids[$this->p] === 62)) { + if ($this->p >= $this->f) { + $this->rec(100); + } + + goto f272;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f272;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f272;} + if (!$this->b293()) { + goto f272;} + if (!$this->b296()) { + goto f272;} + if (!$this->b388()) { + goto f272;} + goto k272; + f272: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k286: + k272: return true; } @@ -13340,91 +12686,46 @@ private function b437(): bool $this->rec(101); } - goto f299;} + goto f284;} $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b438()) { - goto f299;} - goto k299; - f299: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k299: - - return true; - } - - private function b438(): bool - { + // b438 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(438); } - return false;} + goto f284;} - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f550;} + goto f285;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b320()) { - goto f550;} - // b388 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f551;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f551;} - } - if (($this->ids[$this->p] === 32)) { - if (($this->ids[$this->p] === 32)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f551;} - } - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f551;} - $this->v[$this->n++] = $this->reduceText($this->context($o3)); - goto k551; - f551: + goto f285;} + if (!$this->b388()) { + goto f285;} + goto k285; + f285: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f550; - k551: - goto k550; - f550: + goto f284; + k285: + goto k284; + f284: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k550: + k284: return true; } @@ -13446,18 +12747,46 @@ private function b439(): bool $this->rec(102); } - goto f292;} + goto f276;} + + $this->v[$this->n++] = $this->token($this->p++); + // b438 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } + + goto f276;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f277;} $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b438()) { - goto f292;} - goto k292; - f292: + if (!$this->b320()) { + goto f277;} + if (!$this->b388()) { + goto f277;} + goto k277; + f277: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f276; + k277: + goto k276; + f276: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k292: + k276: return true; } @@ -13479,18 +12808,46 @@ private function b440(): bool $this->rec(103); } - goto f313;} + goto f296;} $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b438()) { - goto f313;} - goto k313; - f313: + // b438 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } + + goto f296;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f297;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b320()) { + goto f297;} + if (!$this->b388()) { + goto f297;} + goto k297; + f297: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f296; + k297: + goto k296; + f296: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k313: + k296: return true; } @@ -13512,7 +12869,7 @@ private function b441(): bool $this->rec(104); } - goto f293;} + goto f278;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13520,7 +12877,7 @@ private function b441(): bool $this->rec(144); } - goto f293;} + goto f278;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 46)) { @@ -13529,20 +12886,20 @@ private function b441(): bool $this->rec(69); } if (!$this->b199()) { - goto f293;} + goto f278;} if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } - goto f293;} - goto k293; - f293: + goto f278;} + goto k278; + f278: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k293: + k278: return true; } @@ -13564,7 +12921,7 @@ private function b442(): bool $this->rec(104); } - goto f294;} + goto f279;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13572,7 +12929,7 @@ private function b442(): bool $this->rec(144); } - goto f294;} + goto f279;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 46)) { @@ -13583,16 +12940,16 @@ private function b442(): bool // b125 $o2 = $this->p; if (!$this->s125()) { - goto f294;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k294; - f294: + goto f279;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k279; + f279: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k294: - $this->v[$m1] = $this->reduceInvalidTypeAliasTag($this->context($o1), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k279: + $this->v[$m1] = $this->reduceInvalidTypeAliasTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); $this->n = $m1 + 1; return true; @@ -13615,7 +12972,7 @@ private function b443(): bool $this->rec(105); } - goto f283;} + goto f269;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13623,7 +12980,7 @@ private function b443(): bool $this->rec(144); } - goto f283;} + goto f269;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 10)) { @@ -13631,7 +12988,7 @@ private function b443(): bool $this->rec(26); } - goto f283;} + goto f269;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13639,18 +12996,18 @@ private function b443(): bool $this->rec(144); } - goto f283;} + goto f269;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b444()) { - goto f283;} - goto k283; - f283: + goto f269;} + goto k269; + f269: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k283: + k269: return true; } @@ -13667,9 +13024,9 @@ private function b444(): bool $this->f = $this->p; $this->er = []; } - goto n516;} - goto a515; - n516: + goto n491;} + goto a490; + n491: break; case 14: // b445 @@ -13678,7 +13035,7 @@ private function b444(): bool $this->rec(445); } - goto n517;} + goto n492;} $o2 = $this->p; $m2 = $this->n; @@ -13688,7 +13045,7 @@ private function b444(): bool $this->rec(28); } - goto f518;} + goto f493;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13696,26 +13053,26 @@ private function b444(): bool $this->rec(144); } - goto f518;} + goto f493;} $this->v[$this->n++] = $this->token($this->p++); - goto k518; - f518: + goto k493; + f493: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n517; - k518: - goto a515; - n517: + goto n492; + k493: + goto a490; + n492: if (($this->ids[$this->p] === 14)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n519;} - goto a515; - n519: + goto n494;} + goto a490; + n494: break; } @@ -13723,15 +13080,15 @@ private function b444(): bool $this->rec(444); } - goto f514; - a515: - goto k514; - f514: + goto f489; + a490: + goto k489; + f489: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k514: + k489: return true; } @@ -13753,7 +13110,7 @@ private function b446(): bool $this->rec(106); } - goto f284;} + goto f270;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 31)) { @@ -13767,29 +13124,29 @@ private function b446(): bool $this->rec(69); } if (!$this->b199()) { - goto f284;} + goto f270;} if (!isset(self::T29c7f960[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(448); } - goto f284;} + goto f270;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b449()) { - goto f284;} + goto f270;} // b125 $o2 = $this->p; if (!$this->s125()) { - goto f284;} - $this->v[$this->n++] = $this->reduceText($this->context($o2)); - goto k284; - f284: + goto f270;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k270; + f270: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k284: + k270: return true; } @@ -13806,9 +13163,9 @@ private function b449(): bool $this->f = $this->p; $this->er = []; } - goto n522;} - goto a521; - n522: + goto n497;} + goto a496; + n497: break; case 45: // b450 @@ -13817,7 +13174,7 @@ private function b449(): bool $this->rec(450); } - goto n523;} + goto n498;} $o2 = $this->p; $m2 = $this->n; @@ -13827,7 +13184,7 @@ private function b449(): bool $this->rec(68); } - goto f524;} + goto f499;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -13835,28 +13192,28 @@ private function b449(): bool $this->rec(144); } - goto f524;} + goto f499;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b451()) { - goto f524;} - goto k524; - f524: + goto f499;} + goto k499; + f499: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n523; - k524: - goto a521; - n523: + goto n498; + k499: + goto a496; + n498: if (($this->ids[$this->p] === 45)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n525;} - goto a521; - n525: + goto n500;} + goto a496; + n500: break; } @@ -13864,15 +13221,15 @@ private function b449(): bool $this->rec(449); } - goto f520; - a521: - goto k520; - f520: + goto f495; + a496: + goto k495; + f495: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k520: + k495: return true; } @@ -13889,9 +13246,9 @@ private function b451(): bool $this->f = $this->p; $this->er = []; } - goto n783;} - goto a782; - n783: + goto n773;} + goto a772; + n773: break; case 32: case 82: @@ -13901,7 +13258,7 @@ private function b451(): bool $this->rec(452); } - goto n784;} + goto n774;} $o2 = $this->p; $m2 = $this->n; @@ -13911,7 +13268,7 @@ private function b451(): bool $this->rec(16); } - goto f785;} + goto f775;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 33)) { @@ -13919,26 +13276,26 @@ private function b451(): bool $this->rec(53); } - goto f785;} + goto f775;} $this->v[$this->n++] = $this->token($this->p++); - goto k785; - f785: + goto k775; + f775: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n784; - k785: - goto a782; - n784: + goto n774; + k775: + goto a772; + n774: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n786;} - goto a782; - n786: + goto n776;} + goto a772; + n776: break; } @@ -13946,15 +13303,95 @@ private function b451(): bool $this->rec(451); } - goto f781; - a782: - goto k781; - f781: + goto f771; + a772: + goto k771; + f771: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k771: + + return true; + } + + private function b454(): bool + { + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(454); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(119); + } + + goto f241;} + + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f241;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k241; + f241: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k241: + $this->v[$m1] = $this->reduceInvalidTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b455(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f238;} + } + // b457 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f239;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k239; + f239: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f238; + k239: + $this->v[$m2] = $this->reduceTextChild(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + $this->n = $m2 + 1; + goto k238; + f238: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k781: + k238: return true; } @@ -14051,7 +13488,7 @@ private function s8(): bool // s188 $o2 = $this->p; if (!$this->s189()) { - goto f207;} + goto f193;} // s458 $o3 = $this->p; switch ($this->ids[$this->p]) { @@ -14063,13 +13500,13 @@ private function s8(): bool $this->rec(7); } - goto n210;} - goto a209; - n210: + goto n196;} + goto a195; + n196: break; case 80: $this->p++; - goto a209; + goto a195; break; } @@ -14077,20 +13514,20 @@ private function s8(): bool $this->rec(458); } - goto f208; - a209: - goto k208; - f208: + goto f194; + a195: + goto k194; + f194: $this->p = $o3; - goto f207; - k208: - goto k207; - f207: + goto f193; + k194: + goto k193; + f193: $this->p = $o2; - goto n206; - k207: - goto a205; - n206: + goto n192; + k193: + goto a191; + n192: break; case 76: case 77: @@ -14102,27 +13539,27 @@ private function s8(): bool $this->rec(9); } - goto n211;} + goto n197;} $o2 = $this->p; if (!$this->s10()) { - goto f212;} + goto f198;} if (($this->ids[$this->p] === 80)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(3); } - goto k212; - f212: + goto k198; + f198: $this->p = $o2; - goto n211; - k212: - goto a205; - n211: + goto n197; + k198: + goto a191; + n197: // s188 $o2 = $this->p; if (!$this->s189()) { - goto f214;} + goto f200;} // s458 $o3 = $this->p; switch ($this->ids[$this->p]) { @@ -14134,13 +13571,13 @@ private function s8(): bool $this->rec(7); } - goto n217;} - goto a216; - n217: + goto n203;} + goto a202; + n203: break; case 80: $this->p++; - goto a216; + goto a202; break; } @@ -14148,20 +13585,20 @@ private function s8(): bool $this->rec(458); } - goto f215; - a216: - goto k215; - f215: + goto f201; + a202: + goto k201; + f201: $this->p = $o3; - goto f214; - k215: - goto k214; - f214: + goto f200; + k201: + goto k200; + f200: $this->p = $o2; - goto n213; - k214: - goto a205; - n213: + goto n199; + k200: + goto a191; + n199: break; } @@ -14169,13 +13606,13 @@ private function s8(): bool $this->rec(8); } - goto f204; - a205: - goto k204; - f204: + goto f190; + a191: + goto k190; + f190: $this->p = $o1; return false; - k204: + k190: return true; } @@ -14366,16 +13803,16 @@ private function s74(): bool $this->rec(77); } - goto f230;} + goto f216;} if (!$this->s78()) { - goto f230;} - goto k230; - f230: + goto f216;} + goto k216; + f216: $this->p = $o2; - goto n229; - k230: - goto a228; - n229: + goto n215; + k216: + goto a214; + n215: // s117 $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -14383,14 +13820,14 @@ private function s74(): bool $this->rec(119); } - goto f232;} + goto f218;} if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f232;} + goto f218;} } if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { $sf = $this->f; @@ -14405,17 +13842,17 @@ private function s74(): bool $this->f = $this->p; $this->er = []; } - goto f232;} + goto f218;} } if (!$this->s125()) { - goto f232;} - goto k232; - f232: + goto f218;} + goto k218; + f218: $this->p = $o2; - goto n231; - k232: - goto a228; - n231: + goto n217; + k218: + goto a214; + n217: break; case 76: case 78: @@ -14426,16 +13863,16 @@ private function s74(): bool $this->rec(77); } - goto f235;} + goto f221;} if (!$this->s78()) { - goto f235;} - goto k235; - f235: + goto f221;} + goto k221; + f221: $this->p = $o2; - goto n234; - k235: - goto a228; - n234: + goto n220; + k221: + goto a214; + n220: // s117 $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -14443,14 +13880,14 @@ private function s74(): bool $this->rec(119); } - goto f237;} + goto f223;} if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f237;} + goto f223;} } if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { $sf = $this->f; @@ -14465,25 +13902,25 @@ private function s74(): bool $this->f = $this->p; $this->er = []; } - goto f237;} + goto f223;} } if (!$this->s125()) { - goto f237;} - goto k237; - f237: + goto f223;} + goto k223; + f223: $this->p = $o2; - goto n236; - k237: - goto a228; - n236: + goto n222; + k223: + goto a214; + n222: if (!isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(121); } - goto n239;} - goto a228; - n239: + goto n225;} + goto a214; + n225: break; } @@ -14491,13 +13928,13 @@ private function s74(): bool $this->rec(74); } - goto f227; - a228: - goto k227; - f227: + goto f213; + a214: + goto k213; + f213: $this->p = $o1; return false; - k227: + k213: return true; } @@ -14520,20 +13957,20 @@ private function s78(): bool $this->f = $this->p; $this->er = []; } - goto n489;} + goto n464;} } - goto a488; - n489: + goto a463; + n464: break; case 80: if (!$this->s79()) { - goto n491;} - goto a488; - n491: + goto n466;} + goto a463; + n466: if (!$this->s110()) { - goto n492;} - goto a488; - n492: + goto n467;} + goto a463; + n467: if (($this->ids[$this->p] === 80)) { $sf = $this->f; $se = $this->er; @@ -14547,10 +13984,10 @@ private function s78(): bool $this->f = $this->p; $this->er = []; } - goto n493;} + goto n468;} } - goto a488; - n493: + goto a463; + n468: break; } @@ -14558,13 +13995,13 @@ private function s78(): bool $this->rec(78); } - goto f487; - a488: - goto k487; - f487: + goto f462; + a463: + goto k462; + f462: $this->p = $o1; return false; - k487: + k462: return true; } @@ -14584,7 +14021,7 @@ private function s79(): bool $this->rec(3); } - goto f745;} + goto f735;} $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14593,7 +14030,7 @@ private function s79(): bool $this->f = $this->p; $this->er = []; } - goto f745;} + goto f735;} } // s109 if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { @@ -14601,7 +14038,7 @@ private function s79(): bool $this->rec(109); } - goto f745;} + goto f735;} $o2 = $this->p; $k2 = 0; @@ -14612,30 +14049,30 @@ private function s79(): bool $this->rec(21); } - goto e747; + goto e737; } $this->p++; $k2++; } - e747: + e737: if ($k2 < 1) { - goto f746; + goto f736; } - goto k746; - f746: + goto k736; + f736: $this->p = $o2; - goto f745; - k746: + goto f735; + k736: if (!$this->s74()) { - goto f745;} - goto k745; - f745: + goto f735;} + goto k735; + f735: $this->p = $o1; return false; - k745: + k735: return true; } @@ -14655,7 +14092,7 @@ private function s110(): bool $this->rec(3); } - goto f748;} + goto f738;} $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14664,7 +14101,7 @@ private function s110(): bool $this->f = $this->p; $this->er = []; } - goto f748;} + goto f738;} } // s111 if (!($this->ids[$this->p] === 80)) { @@ -14672,7 +14109,7 @@ private function s110(): bool $this->rec(111); } - goto f748;} + goto f738;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -14680,13 +14117,13 @@ private function s110(): bool break; case 80: if (!$this->s79()) { - goto n751;} - goto a750; - n751: + goto n741;} + goto a740; + n741: if (!$this->s110()) { - goto n752;} - goto a750; - n752: + goto n742;} + goto a740; + n742: break; } @@ -14694,18 +14131,18 @@ private function s110(): bool $this->rec(111); } - goto f749; - a750: - goto k749; - f749: + goto f739; + a740: + goto k739; + f739: $this->p = $o2; - goto f748; - k749: - goto k748; - f748: + goto f738; + k739: + goto k738; + f738: $this->p = $o1; return false; - k748: + k738: return true; } @@ -14730,7 +14167,7 @@ private function s113(): bool $this->rec(114); } - goto n741;} + goto n731;} $o2 = $this->p; if (!($this->ids[$this->p] === 80)) { @@ -14738,7 +14175,7 @@ private function s113(): bool $this->rec(3); } - goto f742;} + goto f732;} $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14747,24 +14184,24 @@ private function s113(): bool $this->f = $this->p; $this->er = []; } - goto f742;} + goto f732;} } if (!$this->s113()) { - goto f742;} - goto k742; - f742: + goto f732;} + goto k732; + f732: $this->p = $o2; - goto n741; - k742: - goto a740; - n741: + goto n731; + k732: + goto a730; + n731: // s115 if (!($this->ids[$this->p] === 80)) { if ($this->p > $this->f) { $this->rec(115); } - goto n743;} + goto n733;} $o2 = $this->p; if (!($this->ids[$this->p] === 80)) { @@ -14772,7 +14209,7 @@ private function s113(): bool $this->rec(3); } - goto f744;} + goto f734;} $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14781,23 +14218,23 @@ private function s113(): bool $this->f = $this->p; $this->er = []; } - goto f744;} + goto f734;} } if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(116); } - goto f744;} + goto f734;} $this->p++; - goto k744; - f744: + goto k734; + f734: $this->p = $o2; - goto n743; - k744: - goto a740; - n743: + goto n733; + k734: + goto a730; + n733: break; } @@ -14805,13 +14242,13 @@ private function s113(): bool $this->rec(113); } - goto f739; - a740: - goto k739; - f739: + goto f729; + a730: + goto k729; + f729: $this->p = $o1; return false; - k739: + k729: return true; } @@ -14831,7 +14268,7 @@ private function s123(): bool $this->rec(124); } - goto f495;} + goto f470;} $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -14839,14 +14276,14 @@ private function s123(): bool $this->rec(16); } - goto f495;} + goto f470;} $this->p++; - goto k495; - f495: + goto k470; + f470: $this->p = $o1; return false; - k495: + k470: return true; } @@ -14863,16 +14300,16 @@ private function s125(): bool $this->rec(116); } - goto e259; + goto e245; } $this->p++; } - e259: + e245: if (($this->ids[$this->p] === 80)) { if (!$this->s128()) { - goto n260;} - n260: + goto n246;} + n246: } elseif ($this->p > $this->f) { $this->rec(128); } @@ -14898,7 +14335,7 @@ private function s128(): bool $this->rec(129); } - goto e510; + goto e485; } // s129 @@ -14907,18 +14344,18 @@ private function s128(): bool $this->rec(129); } - goto e510;} + goto e485;} $o2 = $this->p; if (!$this->s130()) { - goto f511;} + goto f486;} // s132 if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(132); } - goto f511;} + goto f486;} $o3 = $this->p; $k3 = 0; @@ -14929,45 +14366,45 @@ private function s128(): bool $this->rec(116); } - goto e513; + goto e488; } $this->p++; $k3++; } - e513: + e488: if ($k3 < 1) { - goto f512; + goto f487; } - goto k512; - f512: + goto k487; + f487: $this->p = $o3; - goto f511; - k512: - goto k511; - f511: + goto f486; + k487: + goto k486; + f486: $this->p = $o2; - goto e510; - k511: + goto e485; + k486: if ($this->p === $b1) { $k1 = 1; - goto e510; + goto e485; } $k1++; } - e510: + e485: if ($k1 < 1) { - goto f509; + goto f484; } - goto k509; - f509: + goto k484; + f484: $this->p = $o1; return false; - k509: + k484: return true; } @@ -14990,7 +14427,7 @@ private function s130(): bool $this->rec(131); } - goto e779; + goto e769; } // s131 @@ -14999,7 +14436,7 @@ private function s130(): bool $this->rec(131); } - goto e779;} + goto e769;} $o2 = $this->p; if (!($this->ids[$this->p] === 80)) { @@ -15007,7 +14444,7 @@ private function s130(): bool $this->rec(3); } - goto f780;} + goto f770;} $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -15016,30 +14453,30 @@ private function s130(): bool $this->f = $this->p; $this->er = []; } - goto f780;} + goto f770;} } - goto k780; - f780: + goto k770; + f770: $this->p = $o2; - goto e779; - k780: + goto e769; + k770: if ($this->p === $b1) { $k1 = 1; - goto e779; + goto e769; } $k1++; } - e779: + e769: if ($k1 < 1) { - goto f778; + goto f768; } - goto k778; - f778: + goto k768; + f768: $this->p = $o1; return false; - k778: + k768: return true; } @@ -15059,11 +14496,11 @@ private function s135(): bool $this->rec(136); } - goto f248;} + goto f234;} $this->p++; if (!$this->s137()) { - goto f248;} + goto f234;} // s19 $o2 = $this->p; // s20 @@ -15075,24 +14512,24 @@ private function s135(): bool $this->rec(21); } - goto e251; + goto e237; } $this->p++; } - e251: + e237: if (!$this->s74()) { - goto f249;} - goto k249; - f249: + goto f235;} + goto k235; + f235: $this->p = $o2; - goto f248; - k249: - goto k248; - f248: + goto f234; + k235: + goto k234; + f234: $this->p = $o1; return false; - k248: + k234: return true; } @@ -15107,9 +14544,9 @@ private function s137(): bool $this->f = $this->p; $this->er = []; } - goto n502;} - goto a501; - n502: + goto n477;} + goto a476; + n477: break; case 32: case 82: @@ -15119,7 +14556,7 @@ private function s137(): bool $this->rec(138); } - goto n503;} + goto n478;} $o2 = $this->p; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -15127,7 +14564,7 @@ private function s137(): bool $this->rec(16); } - goto f504;} + goto f479;} $this->p++; // s139 @@ -15139,16 +14576,16 @@ private function s137(): bool $this->rec(3); } - goto e506; + goto e481; } $this->p++; } - e506: + e481: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n507;} - n507: + goto n482;} + n482: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -15157,24 +14594,24 @@ private function s137(): bool $this->rec(53); } - goto f504;} + goto f479;} $this->p++; - goto k504; - f504: + goto k479; + f479: $this->p = $o2; - goto n503; - k504: - goto a501; - n503: + goto n478; + k479: + goto a476; + n478: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n508;} - goto a501; - n508: + goto n483;} + goto a476; + n483: break; } @@ -15182,13 +14619,13 @@ private function s137(): bool $this->rec(137); } - goto f500; - a501: - goto k500; - f500: + goto f475; + a476: + goto k475; + f475: $this->p = $o1; return false; - k500: + k475: return true; } @@ -15208,7 +14645,7 @@ private function s138(): bool $this->rec(16); } - goto f1618;} + goto f1586;} $this->p++; // s139 @@ -15220,12 +14657,12 @@ private function s138(): bool $this->rec(3); } - goto e1620; + goto e1588; } $this->p++; } - e1620: + e1588: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { // s141 if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { @@ -15233,11 +14670,11 @@ private function s138(): bool $this->rec(141); } - goto n1621;} + goto n1589;} $o2 = $this->p; if (!$this->s142()) { - goto f1622;} + goto f1590;} // s139 $o3 = $this->p; while (true) { @@ -15247,25 +14684,25 @@ private function s138(): bool $this->rec(3); } - goto e1624; + goto e1592; } $this->p++; } - e1624: + e1592: if (($this->ids[$this->p] === 40)) { if (!$this->s182()) { - goto n1625;} - n1625: + goto n1593;} + n1593: } elseif ($this->p > $this->f) { $this->rec(182); } - goto k1622; - f1622: + goto k1590; + f1590: $this->p = $o2; - goto n1621; - k1622: - n1621: + goto n1589; + k1590: + n1589: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -15274,14 +14711,14 @@ private function s138(): bool $this->rec(53); } - goto f1618;} + goto f1586;} $this->p++; - goto k1618; - f1618: + goto k1586; + f1586: $this->p = $o1; return false; - k1618: + k1586: return true; } @@ -15297,7 +14734,7 @@ private function s141(): bool $o1 = $this->p; if (!$this->s142()) { - goto f496;} + goto f471;} // s139 $o2 = $this->p; while (true) { @@ -15307,24 +14744,24 @@ private function s141(): bool $this->rec(3); } - goto e498; + goto e473; } $this->p++; } - e498: + e473: if (($this->ids[$this->p] === 40)) { if (!$this->s182()) { - goto n499;} - n499: + goto n474;} + n474: } elseif ($this->p > $this->f) { $this->rec(182); } - goto k496; - f496: + goto k471; + f471: $this->p = $o1; return false; - k496: + k471: return true; } @@ -15372,9 +14809,9 @@ private function s142(): bool case 78: case 79: if (!$this->s146()) { - goto n755;} - goto a754; - n755: + goto n745;} + goto a744; + n745: break; case 1: case 2: @@ -15391,16 +14828,16 @@ private function s142(): bool case 14: case 24: if (!$this->s143()) { - goto n756;} - goto a754; - n756: + goto n746;} + goto a744; + n746: // s172 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(172); } - goto n757;} + goto n747;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -15408,7 +14845,7 @@ private function s142(): bool $this->rec(144); } - goto f758;} + goto f748;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -15417,22 +14854,22 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f758;} + goto f748;} } - goto k758; - f758: + goto k748; + f748: $this->p = $o2; - goto n757; - k758: - goto a754; - n757: + goto n747; + k748: + goto a744; + n747: // s160 if (!isset(self::T96867045[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(160); } - goto n759;} + goto n749;} $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -15441,14 +14878,14 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f760;} + goto f750;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f760;} + goto f750;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -15456,18 +14893,18 @@ private function s142(): bool $this->rec(66); } - goto f760;} + goto f750;} $this->p++; if (!$this->s163()) { - goto f760;} - goto k760; - f760: + goto f750;} + goto k750; + f750: $this->p = $o2; - goto n759; - k760: - goto a754; - n759: + goto n749; + k750: + goto a744; + n749: break; case 7: case 15: @@ -15475,16 +14912,16 @@ private function s142(): bool case 17: case 18: if (!$this->s143()) { - goto n761;} - goto a754; - n761: + goto n751;} + goto a744; + n751: // s172 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(172); } - goto n762;} + goto n752;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -15492,7 +14929,7 @@ private function s142(): bool $this->rec(144); } - goto f763;} + goto f753;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -15501,15 +14938,15 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f763;} + goto f753;} } - goto k763; - f763: + goto k753; + f753: $this->p = $o2; - goto n762; - k763: - goto a754; - n762: + goto n752; + k753: + goto a744; + n752: break; case 22: case 23: @@ -15519,7 +14956,7 @@ private function s142(): bool $this->rec(155); } - goto n764;} + goto n754;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -15527,13 +14964,13 @@ private function s142(): bool break; case 22: if (!$this->s156()) { - goto n767;} - goto a766; - n767: + goto n757;} + goto a756; + n757: break; case 23: $this->p++; - goto a766; + goto a756; break; } @@ -15541,15 +14978,15 @@ private function s142(): bool $this->rec(155); } - goto f765; - a766: - goto k765; - f765: + goto f755; + a756: + goto k755; + f755: $this->p = $o2; - goto n764; - k765: - goto a754; - n764: + goto n754; + k755: + goto a744; + n754: break; case 38: case 83: @@ -15559,7 +14996,7 @@ private function s142(): bool $this->rec(148); } - goto n768;} + goto n758;} $o2 = $this->p; if (!isset(self::T34048a70[$this->ids[$this->p]])) { @@ -15567,7 +15004,7 @@ private function s142(): bool $this->rec(149); } - goto f769;} + goto f759;} $this->p++; // s139 @@ -15579,16 +15016,16 @@ private function s142(): bool $this->rec(3); } - goto e771; + goto e761; } $this->p++; } - e771: + e761: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n772;} - n772: + goto n762;} + n762: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -15597,24 +15034,24 @@ private function s142(): bool $this->rec(62); } - goto f769;} + goto f759;} $this->p++; - goto k769; - f769: + goto k759; + f759: $this->p = $o2; - goto n768; - k769: - goto a754; - n768: + goto n758; + k759: + goto a744; + n758: break; case 19: $this->p++; - goto a754; + goto a744; break; case 20: $this->p++; - goto a754; + goto a744; break; } @@ -15622,13 +15059,13 @@ private function s142(): bool $this->rec(142); } - goto f753; - a754: - goto k753; - f753: + goto f743; + a744: + goto k743; + f743: $this->p = $o1; return false; - k753: + k743: return true; } @@ -15648,7 +15085,7 @@ private function s143(): bool $this->rec(144); } - goto f1005;} + goto f993;} $this->p++; // s139 @@ -15660,18 +15097,18 @@ private function s143(): bool $this->rec(3); } - goto e1007; + goto e995; } $this->p++; } - e1007: + e995: if (!($this->ids[$this->p] === 46)) { if ($this->p >= $this->f) { $this->rec(69); } - goto f1005;} + goto f993;} $this->p++; // s139 @@ -15683,19 +15120,19 @@ private function s143(): bool $this->rec(3); } - goto e1009; + goto e997; } $this->p++; } - e1009: + e997: if (!$this->s145()) { - goto f1005;} - goto k1005; - f1005: + goto f993;} + goto k993; + f993: $this->p = $o1; return false; - k1005: + k993: return true; } @@ -15748,7 +15185,7 @@ private function s145(): bool $this->rec(146); } - goto n1317;} + goto n1302;} $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -15756,23 +15193,23 @@ private function s145(): bool $this->rec(119); } - goto f1318;} + goto f1303;} $this->p++; if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if (!$this->s138()) { - goto n1319;} - n1319: + goto n1304;} + n1304: } elseif ($this->p > $this->f) { $this->rec(138); } - goto k1318; - f1318: + goto k1303; + f1303: $this->p = $o2; - goto n1317; - k1318: - goto a1316; - n1317: + goto n1302; + k1303: + goto a1301; + n1302: break; case 1: case 2: @@ -15794,7 +15231,7 @@ private function s145(): bool $this->rec(172); } - goto n1320;} + goto n1305;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -15802,7 +15239,7 @@ private function s145(): bool $this->rec(144); } - goto f1321;} + goto f1306;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -15811,22 +15248,22 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1321;} + goto f1306;} } - goto k1321; - f1321: + goto k1306; + f1306: $this->p = $o2; - goto n1320; - k1321: - goto a1316; - n1320: + goto n1305; + k1306: + goto a1301; + n1305: // s160 if (!isset(self::T96867045[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(160); } - goto n1322;} + goto n1307;} $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -15835,14 +15272,14 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1323;} + goto f1308;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1323;} + goto f1308;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -15850,18 +15287,18 @@ private function s145(): bool $this->rec(66); } - goto f1323;} + goto f1308;} $this->p++; if (!$this->s163()) { - goto f1323;} - goto k1323; - f1323: + goto f1308;} + goto k1308; + f1308: $this->p = $o2; - goto n1322; - k1323: - goto a1316; - n1322: + goto n1307; + k1308: + goto a1301; + n1307: break; case 7: case 15: @@ -15874,7 +15311,7 @@ private function s145(): bool $this->rec(172); } - goto n1324;} + goto n1309;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -15882,7 +15319,7 @@ private function s145(): bool $this->rec(144); } - goto f1325;} + goto f1310;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -15891,15 +15328,15 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1325;} + goto f1310;} } - goto k1325; - f1325: + goto k1310; + f1310: $this->p = $o2; - goto n1324; - k1325: - goto a1316; - n1324: + goto n1309; + k1310: + goto a1301; + n1309: break; case 22: case 23: @@ -15909,7 +15346,7 @@ private function s145(): bool $this->rec(155); } - goto n1326;} + goto n1311;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -15917,13 +15354,13 @@ private function s145(): bool break; case 22: if (!$this->s156()) { - goto n1329;} - goto a1328; - n1329: + goto n1314;} + goto a1313; + n1314: break; case 23: $this->p++; - goto a1328; + goto a1313; break; } @@ -15931,15 +15368,15 @@ private function s145(): bool $this->rec(155); } - goto f1327; - a1328: - goto k1327; - f1327: + goto f1312; + a1313: + goto k1312; + f1312: $this->p = $o2; - goto n1326; - k1327: - goto a1316; - n1326: + goto n1311; + k1312: + goto a1301; + n1311: break; case 38: case 83: @@ -15949,7 +15386,7 @@ private function s145(): bool $this->rec(148); } - goto n1330;} + goto n1315;} $o2 = $this->p; if (!isset(self::T34048a70[$this->ids[$this->p]])) { @@ -15957,7 +15394,7 @@ private function s145(): bool $this->rec(149); } - goto f1331;} + goto f1316;} $this->p++; // s139 @@ -15969,16 +15406,16 @@ private function s145(): bool $this->rec(3); } - goto e1333; + goto e1318; } $this->p++; } - e1333: + e1318: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n1334;} - n1334: + goto n1319;} + n1319: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -15987,24 +15424,24 @@ private function s145(): bool $this->rec(62); } - goto f1331;} + goto f1316;} $this->p++; - goto k1331; - f1331: + goto k1316; + f1316: $this->p = $o2; - goto n1330; - k1331: - goto a1316; - n1330: + goto n1315; + k1316: + goto a1301; + n1315: break; case 19: $this->p++; - goto a1316; + goto a1301; break; case 20: $this->p++; - goto a1316; + goto a1301; break; } @@ -16012,13 +15449,13 @@ private function s145(): bool $this->rec(145); } - goto f1315; - a1316: - goto k1315; - f1315: + goto f1300; + a1301: + goto k1300; + f1300: $this->p = $o1; return false; - k1315: + k1300: return true; } @@ -16038,7 +15475,7 @@ private function s146(): bool $this->rec(119); } - goto f999;} + goto f987;} $this->p++; if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -16048,7 +15485,7 @@ private function s146(): bool $this->rec(138); } - goto n1000;} + goto n988;} $o2 = $this->p; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -16056,7 +15493,7 @@ private function s146(): bool $this->rec(16); } - goto f1001;} + goto f989;} $this->p++; // s139 @@ -16068,16 +15505,16 @@ private function s146(): bool $this->rec(3); } - goto e1003; + goto e991; } $this->p++; } - e1003: + e991: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n1004;} - n1004: + goto n992;} + n992: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -16086,23 +15523,23 @@ private function s146(): bool $this->rec(53); } - goto f1001;} + goto f989;} $this->p++; - goto k1001; - f1001: + goto k989; + f989: $this->p = $o2; - goto n1000; - k1001: - n1000: + goto n988; + k989: + n988: } elseif ($this->p > $this->f) { $this->rec(138); } - goto k999; - f999: + goto k987; + f987: $this->p = $o1; return false; - k999: + k987: return true; } @@ -16118,7 +15555,7 @@ private function s151(): bool $o1 = $this->p; if (!$this->s152()) { - goto f1014;} + goto f1002;} // s139 $o2 = $this->p; while (true) { @@ -16128,24 +15565,24 @@ private function s151(): bool $this->rec(3); } - goto e1016; + goto e1004; } $this->p++; } - e1016: + e1004: if (($this->ids[$this->p] === 40)) { if (!$this->s176()) { - goto n1017;} - n1017: + goto n1005;} + n1005: } elseif ($this->p > $this->f) { $this->rec(176); } - goto k1014; - f1014: + goto k1002; + f1002: $this->p = $o1; return false; - k1014: + k1002: return true; } @@ -16198,7 +15635,7 @@ private function s152(): bool $this->rec(146); } - goto n1337;} + goto n1322;} $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -16206,23 +15643,23 @@ private function s152(): bool $this->rec(119); } - goto f1338;} + goto f1323;} $this->p++; if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if (!$this->s138()) { - goto n1339;} - n1339: + goto n1324;} + n1324: } elseif ($this->p > $this->f) { $this->rec(138); } - goto k1338; - f1338: + goto k1323; + f1323: $this->p = $o2; - goto n1337; - k1338: - goto a1336; - n1337: + goto n1322; + k1323: + goto a1321; + n1322: break; case 1: case 2: @@ -16244,11 +15681,11 @@ private function s152(): bool $this->rec(153); } - goto n1340;} + goto n1325;} $o2 = $this->p; if (!$this->s154()) { - goto f1341;} + goto f1326;} // s139 $o3 = $this->p; while (true) { @@ -16258,18 +15695,18 @@ private function s152(): bool $this->rec(3); } - goto e1343; + goto e1328; } $this->p++; } - e1343: + e1328: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1341;} + goto f1326;} $this->p++; // s139 @@ -16281,28 +15718,28 @@ private function s152(): bool $this->rec(3); } - goto e1345; + goto e1330; } $this->p++; } - e1345: + e1330: if (!$this->s145()) { - goto f1341;} - goto k1341; - f1341: + goto f1326;} + goto k1326; + f1326: $this->p = $o2; - goto n1340; - k1341: - goto a1336; - n1340: + goto n1325; + k1326: + goto a1321; + n1325: // s172 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(172); } - goto n1346;} + goto n1331;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -16310,7 +15747,7 @@ private function s152(): bool $this->rec(144); } - goto f1347;} + goto f1332;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -16319,22 +15756,22 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1347;} + goto f1332;} } - goto k1347; - f1347: + goto k1332; + f1332: $this->p = $o2; - goto n1346; - k1347: - goto a1336; - n1346: + goto n1331; + k1332: + goto a1321; + n1331: // s160 if (!isset(self::T96867045[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(160); } - goto n1348;} + goto n1333;} $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -16343,14 +15780,14 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1349;} + goto f1334;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1349;} + goto f1334;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -16358,18 +15795,18 @@ private function s152(): bool $this->rec(66); } - goto f1349;} + goto f1334;} $this->p++; if (!$this->s163()) { - goto f1349;} - goto k1349; - f1349: + goto f1334;} + goto k1334; + f1334: $this->p = $o2; - goto n1348; - k1349: - goto a1336; - n1348: + goto n1333; + k1334: + goto a1321; + n1333: break; case 7: case 15: @@ -16382,11 +15819,11 @@ private function s152(): bool $this->rec(153); } - goto n1350;} + goto n1335;} $o2 = $this->p; if (!$this->s154()) { - goto f1351;} + goto f1336;} // s139 $o3 = $this->p; while (true) { @@ -16396,18 +15833,18 @@ private function s152(): bool $this->rec(3); } - goto e1353; + goto e1338; } $this->p++; } - e1353: + e1338: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1351;} + goto f1336;} $this->p++; // s139 @@ -16419,28 +15856,28 @@ private function s152(): bool $this->rec(3); } - goto e1355; + goto e1340; } $this->p++; } - e1355: + e1340: if (!$this->s145()) { - goto f1351;} - goto k1351; - f1351: + goto f1336;} + goto k1336; + f1336: $this->p = $o2; - goto n1350; - k1351: - goto a1336; - n1350: + goto n1335; + k1336: + goto a1321; + n1335: // s172 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(172); } - goto n1356;} + goto n1341;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -16448,7 +15885,7 @@ private function s152(): bool $this->rec(144); } - goto f1357;} + goto f1342;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -16457,15 +15894,15 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1357;} + goto f1342;} } - goto k1357; - f1357: + goto k1342; + f1342: $this->p = $o2; - goto n1356; - k1357: - goto a1336; - n1356: + goto n1341; + k1342: + goto a1321; + n1341: break; case 22: case 23: @@ -16475,11 +15912,11 @@ private function s152(): bool $this->rec(153); } - goto n1358;} + goto n1343;} $o2 = $this->p; if (!$this->s154()) { - goto f1359;} + goto f1344;} // s139 $o3 = $this->p; while (true) { @@ -16489,18 +15926,18 @@ private function s152(): bool $this->rec(3); } - goto e1361; + goto e1346; } $this->p++; } - e1361: + e1346: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1359;} + goto f1344;} $this->p++; // s139 @@ -16512,28 +15949,28 @@ private function s152(): bool $this->rec(3); } - goto e1363; + goto e1348; } $this->p++; } - e1363: + e1348: if (!$this->s145()) { - goto f1359;} - goto k1359; - f1359: + goto f1344;} + goto k1344; + f1344: $this->p = $o2; - goto n1358; - k1359: - goto a1336; - n1358: + goto n1343; + k1344: + goto a1321; + n1343: // s155 if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(155); } - goto n1364;} + goto n1349;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -16541,13 +15978,13 @@ private function s152(): bool break; case 22: if (!$this->s156()) { - goto n1367;} - goto a1366; - n1367: + goto n1352;} + goto a1351; + n1352: break; case 23: $this->p++; - goto a1366; + goto a1351; break; } @@ -16555,15 +15992,15 @@ private function s152(): bool $this->rec(155); } - goto f1365; - a1366: - goto k1365; - f1365: + goto f1350; + a1351: + goto k1350; + f1350: $this->p = $o2; - goto n1364; - k1365: - goto a1336; - n1364: + goto n1349; + k1350: + goto a1321; + n1349: break; case 38: case 83: @@ -16573,7 +16010,7 @@ private function s152(): bool $this->rec(148); } - goto n1368;} + goto n1353;} $o2 = $this->p; if (!isset(self::T34048a70[$this->ids[$this->p]])) { @@ -16581,7 +16018,7 @@ private function s152(): bool $this->rec(149); } - goto f1369;} + goto f1354;} $this->p++; // s139 @@ -16593,16 +16030,16 @@ private function s152(): bool $this->rec(3); } - goto e1371; + goto e1356; } $this->p++; } - e1371: + e1356: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n1372;} - n1372: + goto n1357;} + n1357: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -16611,20 +16048,20 @@ private function s152(): bool $this->rec(62); } - goto f1369;} + goto f1354;} $this->p++; - goto k1369; - f1369: + goto k1354; + f1354: $this->p = $o2; - goto n1368; - k1369: - goto a1336; - n1368: + goto n1353; + k1354: + goto a1321; + n1353: break; case 19: $this->p++; - goto a1336; + goto a1321; break; case 20: // s153 @@ -16633,11 +16070,11 @@ private function s152(): bool $this->rec(153); } - goto n1373;} + goto n1358;} $o2 = $this->p; if (!$this->s154()) { - goto f1374;} + goto f1359;} // s139 $o3 = $this->p; while (true) { @@ -16647,18 +16084,18 @@ private function s152(): bool $this->rec(3); } - goto e1376; + goto e1361; } $this->p++; } - e1376: + e1361: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1374;} + goto f1359;} $this->p++; // s139 @@ -16670,23 +16107,23 @@ private function s152(): bool $this->rec(3); } - goto e1378; + goto e1363; } $this->p++; } - e1378: + e1363: if (!$this->s145()) { - goto f1374;} - goto k1374; - f1374: + goto f1359;} + goto k1359; + f1359: $this->p = $o2; - goto n1373; - k1374: - goto a1336; - n1373: + goto n1358; + k1359: + goto a1321; + n1358: $this->p++; - goto a1336; + goto a1321; break; case 21: // s153 @@ -16695,11 +16132,11 @@ private function s152(): bool $this->rec(153); } - goto n1379;} + goto n1364;} $o2 = $this->p; if (!$this->s154()) { - goto f1380;} + goto f1365;} // s139 $o3 = $this->p; while (true) { @@ -16709,18 +16146,18 @@ private function s152(): bool $this->rec(3); } - goto e1382; + goto e1367; } $this->p++; } - e1382: + e1367: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1380;} + goto f1365;} $this->p++; // s139 @@ -16732,21 +16169,21 @@ private function s152(): bool $this->rec(3); } - goto e1384; + goto e1369; } $this->p++; } - e1384: + e1369: if (!$this->s145()) { - goto f1380;} - goto k1380; - f1380: + goto f1365;} + goto k1365; + f1365: $this->p = $o2; - goto n1379; - k1380: - goto a1336; - n1379: + goto n1364; + k1365: + goto a1321; + n1364: break; } @@ -16754,13 +16191,13 @@ private function s152(): bool $this->rec(152); } - goto f1335; - a1336: - goto k1335; - f1335: + goto f1320; + a1321: + goto k1320; + f1320: $this->p = $o1; return false; - k1335: + k1320: return true; } @@ -16798,7 +16235,7 @@ private function s154(): bool $this->rec(160); } - goto n1628;} + goto n1596;} $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -16807,14 +16244,14 @@ private function s154(): bool $this->f = $this->p; $this->er = []; } - goto f1629;} + goto f1597;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1629;} + goto f1597;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -16822,25 +16259,25 @@ private function s154(): bool $this->rec(66); } - goto f1629;} + goto f1597;} $this->p++; if (!$this->s163()) { - goto f1629;} - goto k1629; - f1629: + goto f1597;} + goto k1597; + f1597: $this->p = $o2; - goto n1628; - k1629: - goto a1627; - n1628: + goto n1596; + k1597: + goto a1595; + n1596: // s169 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(169); } - goto n1630;} + goto n1598;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -16848,7 +16285,7 @@ private function s154(): bool $this->rec(144); } - goto f1631;} + goto f1599;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -16857,15 +16294,15 @@ private function s154(): bool $this->f = $this->p; $this->er = []; } - goto f1631;} + goto f1599;} } - goto k1631; - f1631: + goto k1599; + f1599: $this->p = $o2; - goto n1630; - k1631: - goto a1627; - n1630: + goto n1598; + k1599: + goto a1595; + n1598: break; case 7: case 15: @@ -16878,7 +16315,7 @@ private function s154(): bool $this->rec(169); } - goto n1632;} + goto n1600;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -16886,7 +16323,7 @@ private function s154(): bool $this->rec(144); } - goto f1633;} + goto f1601;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -16895,15 +16332,15 @@ private function s154(): bool $this->f = $this->p; $this->er = []; } - goto f1633;} + goto f1601;} } - goto k1633; - f1633: + goto k1601; + f1601: $this->p = $o2; - goto n1632; - k1633: - goto a1627; - n1632: + goto n1600; + k1601: + goto a1595; + n1600: break; case 22: case 23: @@ -16913,7 +16350,7 @@ private function s154(): bool $this->rec(155); } - goto n1634;} + goto n1602;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -16921,13 +16358,13 @@ private function s154(): bool break; case 22: if (!$this->s156()) { - goto n1637;} - goto a1636; - n1637: + goto n1605;} + goto a1604; + n1605: break; case 23: $this->p++; - goto a1636; + goto a1604; break; } @@ -16935,23 +16372,23 @@ private function s154(): bool $this->rec(155); } - goto f1635; - a1636: - goto k1635; - f1635: + goto f1603; + a1604: + goto k1603; + f1603: $this->p = $o2; - goto n1634; - k1635: - goto a1627; - n1634: + goto n1602; + k1603: + goto a1595; + n1602: break; case 20: $this->p++; - goto a1627; + goto a1595; break; case 21: $this->p++; - goto a1627; + goto a1595; break; } @@ -16959,13 +16396,13 @@ private function s154(): bool $this->rec(154); } - goto f1626; - a1627: - goto k1626; - f1626: + goto f1594; + a1595: + goto k1594; + f1594: $this->p = $o1; return false; - k1626: + k1594: return true; } @@ -16985,7 +16422,7 @@ private function s156(): bool $this->rec(44); } - goto f1010;} + goto f998;} $this->p++; if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { @@ -16995,7 +16432,7 @@ private function s156(): bool $this->rec(158); } - goto n1011;} + goto n999;} $o2 = $this->p; $k2 = 0; @@ -17006,32 +16443,32 @@ private function s156(): bool $this->rec(159); } - goto e1013; + goto e1001; } $this->p++; $k2++; } - e1013: + e1001: if ($k2 < 1) { - goto f1012; + goto f1000; } - goto k1012; - f1012: + goto k1000; + f1000: $this->p = $o2; - goto n1011; - k1012: - n1011: + goto n999; + k1000: + n999: } elseif ($this->p > $this->f) { $this->rec(158); } - goto k1010; - f1010: + goto k998; + f998: $this->p = $o1; return false; - k1010: + k998: return true; } @@ -17074,7 +16511,7 @@ private function s163(): bool $this->rec(166); } - goto n722;} + goto n706;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -17082,23 +16519,23 @@ private function s163(): bool $this->rec(144); } - goto f723;} + goto f707;} $this->p++; if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->s168()) { - goto n724;} - n724: + goto n708;} + n708: } elseif ($this->p > $this->f) { $this->rec(168); } - goto k723; - f723: + goto k707; + f707: $this->p = $o2; - goto n722; - k723: - goto a721; - n722: + goto n706; + k707: + goto a705; + n706: break; case 50: // s164 @@ -17107,7 +16544,7 @@ private function s163(): bool $this->rec(164); } - goto n725;} + goto n709;} $o2 = $this->p; if (!($this->ids[$this->p] === 50)) { @@ -17115,27 +16552,27 @@ private function s163(): bool $this->rec(71); } - goto f726;} + goto f710;} $this->p++; if (isset(self::T83e30518[$this->ids[$this->p]])) { if (!$this->s166()) { - goto n727;} - n727: + goto n711;} + n711: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k726; - f726: + goto k710; + f710: $this->p = $o2; - goto n725; - k726: - goto a721; - n725: + goto n709; + k710: + goto a705; + n709: break; case 85: $this->p++; - goto a721; + goto a705; break; } @@ -17143,13 +16580,13 @@ private function s163(): bool $this->rec(163); } - goto f720; - a721: - goto k720; - f720: + goto f704; + a705: + goto k704; + f704: $this->p = $o1; return false; - k720: + k704: return true; } @@ -17169,21 +16606,21 @@ private function s164(): bool $this->rec(71); } - goto f1288;} + goto f1271;} $this->p++; if (isset(self::T83e30518[$this->ids[$this->p]])) { if (!$this->s166()) { - goto n1289;} - n1289: + goto n1272;} + n1272: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k1288; - f1288: + goto k1271; + f1271: $this->p = $o1; return false; - k1288: + k1271: return true; } @@ -17203,21 +16640,21 @@ private function s166(): bool $this->rec(144); } - goto f965;} + goto f960;} $this->p++; if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->s168()) { - goto n966;} - n966: + goto n961;} + n961: } elseif ($this->p > $this->f) { $this->rec(168); } - goto k965; - f965: + goto k960; + f960: $this->p = $o1; return false; - k965: + k960: return true; } @@ -17237,13 +16674,13 @@ private function s168(): bool break; case 50: if (!$this->s164()) { - goto n964;} - goto a963; - n964: + goto n959;} + goto a958; + n959: break; case 85: $this->p++; - goto a963; + goto a958; break; } @@ -17251,13 +16688,13 @@ private function s168(): bool $this->rec(168); } - goto f962; - a963: - goto k962; - f962: + goto f957; + a958: + goto k957; + f957: $this->p = $o1; return false; - k962: + k957: return true; } @@ -17277,7 +16714,7 @@ private function s169(): bool $this->rec(144); } - goto f623;} + goto f607;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -17286,13 +16723,13 @@ private function s169(): bool $this->f = $this->p; $this->er = []; } - goto f623;} + goto f607;} } - goto k623; - f623: + goto k607; + f607: $this->p = $o1; return false; - k623: + k607: return true; } @@ -17315,7 +16752,7 @@ private function s176(): bool $this->rec(177); } - goto e1386; + goto e1371; } // s177 @@ -17324,7 +16761,7 @@ private function s176(): bool $this->rec(177); } - goto e1386;} + goto e1371;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -17332,7 +16769,7 @@ private function s176(): bool $this->rec(63); } - goto f1387;} + goto f1372;} $this->p++; // s139 @@ -17344,36 +16781,36 @@ private function s176(): bool $this->rec(3); } - goto e1389; + goto e1374; } $this->p++; } - e1389: + e1374: if (!$this->s178()) { - goto f1387;} - goto k1387; - f1387: + goto f1372;} + goto k1372; + f1372: $this->p = $o2; - goto e1386; - k1387: + goto e1371; + k1372: if ($this->p === $b1) { $k1 = 1; - goto e1386; + goto e1371; } $k1++; } - e1386: + e1371: if ($k1 < 1) { - goto f1385; + goto f1370; } - goto k1385; - f1385: + goto k1370; + f1370: $this->p = $o1; return false; - k1385: + k1370: return true; } @@ -17389,11 +16826,11 @@ private function s178(): bool $this->rec(180); } - goto n1640;} + goto n1608;} $o2 = $this->p; if (!$this->s152()) { - goto f1641;} + goto f1609;} // s139 $o3 = $this->p; while (true) { @@ -17403,19 +16840,19 @@ private function s178(): bool $this->rec(3); } - goto e1643; + goto e1611; } $this->p++; } - e1643: - goto k1641; - f1641: + e1611: + goto k1609; + f1609: $this->p = $o2; - goto n1640; - k1641: - goto a1639; - n1640: + goto n1608; + k1609: + goto a1607; + n1608: break; case 0: case 25: @@ -17456,9 +16893,9 @@ private function s178(): bool $this->rec(62); } - goto n1644;} - goto a1639; - n1644: + goto n1612;} + goto a1607; + n1612: break; } @@ -17466,13 +16903,13 @@ private function s178(): bool $this->rec(178); } - goto f1638; - a1639: - goto k1638; - f1638: + goto f1606; + a1607: + goto k1606; + f1606: $this->p = $o1; return false; - k1638: + k1606: return true; } @@ -17495,7 +16932,7 @@ private function s182(): bool $this->rec(183); } - goto e774; + goto e764; } // s183 @@ -17504,7 +16941,7 @@ private function s182(): bool $this->rec(183); } - goto e774;} + goto e764;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -17512,7 +16949,7 @@ private function s182(): bool $this->rec(63); } - goto f775;} + goto f765;} $this->p++; // s139 @@ -17524,36 +16961,36 @@ private function s182(): bool $this->rec(3); } - goto e777; + goto e767; } $this->p++; } - e777: + e767: if (!$this->s184()) { - goto f775;} - goto k775; - f775: + goto f765;} + goto k765; + f765: $this->p = $o2; - goto e774; - k775: + goto e764; + k765: if ($this->p === $b1) { $k1 = 1; - goto e774; + goto e764; } $k1++; } - e774: + e764: if ($k1 < 1) { - goto f773; + goto f763; } - goto k773; - f773: + goto k763; + f763: $this->p = $o1; return false; - k773: + k763: return true; } @@ -17569,11 +17006,11 @@ private function s184(): bool $this->rec(186); } - goto n1020;} + goto n1008;} $o2 = $this->p; if (!$this->s142()) { - goto f1021;} + goto f1009;} // s139 $o3 = $this->p; while (true) { @@ -17583,19 +17020,19 @@ private function s184(): bool $this->rec(3); } - goto e1023; + goto e1011; } $this->p++; } - e1023: - goto k1021; - f1021: + e1011: + goto k1009; + f1009: $this->p = $o2; - goto n1020; - k1021: - goto a1019; - n1020: + goto n1008; + k1009: + goto a1007; + n1008: break; case 0: case 21: @@ -17637,9 +17074,9 @@ private function s184(): bool $this->rec(53); } - goto n1024;} - goto a1019; - n1024: + goto n1012;} + goto a1007; + n1012: break; } @@ -17647,13 +17084,13 @@ private function s184(): bool $this->rec(184); } - goto f1018; - a1019: - goto k1018; - f1018: + goto f1006; + a1007: + goto k1006; + f1006: $this->p = $o1; return false; - k1018: + k1006: return true; } @@ -17673,7 +17110,7 @@ private function s187(): bool $this->rec(12); } - goto f240;} + goto f226;} $this->p++; // s138 @@ -17682,7 +17119,7 @@ private function s187(): bool $this->rec(138); } - goto f240;} + goto f226;} $o2 = $this->p; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -17690,7 +17127,7 @@ private function s187(): bool $this->rec(16); } - goto f241;} + goto f227;} $this->p++; // s139 @@ -17702,16 +17139,16 @@ private function s187(): bool $this->rec(3); } - goto e243; + goto e229; } $this->p++; } - e243: + e229: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n244;} - n244: + goto n230;} + n230: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -17720,14 +17157,14 @@ private function s187(): bool $this->rec(53); } - goto f241;} + goto f227;} $this->p++; - goto k241; - f241: + goto k227; + f227: $this->p = $o2; - goto f240; - k241: + goto f226; + k227: // s19 $o2 = $this->p; // s20 @@ -17739,24 +17176,24 @@ private function s187(): bool $this->rec(21); } - goto e247; + goto e233; } $this->p++; } - e247: + e233: if (!$this->s74()) { - goto f245;} - goto k245; - f245: + goto f231;} + goto k231; + f231: $this->p = $o2; - goto f240; - k245: - goto k240; - f240: + goto f226; + k231: + goto k226; + f226: $this->p = $o1; return false; - k240: + k226: return true; } @@ -17774,24 +17211,24 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f52;} + goto f42;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f53;} - goto k53; - f53: + goto f43;} + goto k43; + f43: $this->p = $o3; - goto f52; - k53: - goto k52; - f52: + goto f42; + k43: + goto k42; + f42: $this->p = $o2; - goto n51; - k52: - goto a50; - n51: + goto n41; + k42: + goto a40; + n41: break; case 51: case 52: @@ -17819,13 +17256,13 @@ private function s189(): bool case 74: case 75: if (!$this->s190()) { - goto n54;} - goto a50; - n54: + goto n44;} + goto a40; + n44: if (!$this->s454()) { - goto n55;} - goto a50; - n55: + goto n45;} + goto a40; + n45: // s455 $o2 = $this->p; if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -17834,33 +17271,33 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f57;} + goto f47;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f58;} - goto k58; - f58: + goto f48;} + goto k48; + f48: $this->p = $o3; - goto f57; - k58: - goto k57; - f57: + goto f47; + k48: + goto k47; + f47: $this->p = $o2; - goto n56; - k57: - goto a50; - n56: + goto n46; + k47: + goto a40; + n46: break; case 76: case 77: case 78: case 79: if (!$this->s454()) { - goto n59;} - goto a50; - n59: + goto n49;} + goto a40; + n49: // s455 $o2 = $this->p; if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -17869,24 +17306,24 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f61;} + goto f51;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f62;} - goto k62; - f62: + goto f52;} + goto k52; + f52: $this->p = $o3; - goto f61; - k62: - goto k61; - f61: + goto f51; + k52: + goto k51; + f51: $this->p = $o2; - goto n60; - k61: - goto a50; - n60: + goto n50; + k51: + goto a40; + n50: break; } @@ -17894,13 +17331,13 @@ private function s189(): bool $this->rec(189); } - goto f49; - a50: - goto k49; - f49: + goto f39; + a40: + goto k39; + f39: $this->p = $o1; return false; - k49: + k39: return true; } @@ -17925,7 +17362,7 @@ private function s190(): bool $this->rec(402); } - goto n112;} + goto n100;} $o2 = $this->p; if (!($this->ids[$this->p] === 51)) { @@ -17933,7 +17370,7 @@ private function s190(): bool $this->rec(85); } - goto f113;} + goto f101;} $this->p++; // s403 @@ -17942,7 +17379,7 @@ private function s190(): bool $this->rec(403); } - goto f113;} + goto f101;} $o3 = $this->p; if (!($this->ids[$this->p] === 26)) { @@ -17950,23 +17387,23 @@ private function s190(): bool $this->rec(47); } - goto f114;} + goto f102;} $this->p++; if (!$this->s125()) { - goto f114;} - goto k114; - f114: + goto f102;} + goto k102; + f102: $this->p = $o3; - goto f113; - k114: - goto k113; - f113: + goto f101; + k102: + goto k101; + f101: $this->p = $o2; - goto n112; - k113: - goto a111; - n112: + goto n100; + k101: + goto a99; + n100: break; case 52: // s405 @@ -17975,7 +17412,7 @@ private function s190(): bool $this->rec(405); } - goto n115;} + goto n103;} $o2 = $this->p; if (!($this->ids[$this->p] === 52)) { @@ -17983,7 +17420,7 @@ private function s190(): bool $this->rec(88); } - goto f116;} + goto f104;} $this->p++; // s403 @@ -17992,7 +17429,7 @@ private function s190(): bool $this->rec(403); } - goto f116;} + goto f104;} $o3 = $this->p; if (!($this->ids[$this->p] === 26)) { @@ -18000,23 +17437,23 @@ private function s190(): bool $this->rec(47); } - goto f117;} + goto f105;} $this->p++; if (!$this->s125()) { - goto f117;} - goto k117; - f117: + goto f105;} + goto k105; + f105: $this->p = $o3; - goto f116; - k117: - goto k116; - f116: - $this->p = $o2; - goto n115; - k116: - goto a111; - n115: + goto f104; + k105: + goto k104; + f104: + $this->p = $o2; + goto n103; + k104: + goto a99; + n103: break; case 53: // s406 @@ -18025,7 +17462,7 @@ private function s190(): bool $this->rec(406); } - goto n118;} + goto n106;} $o2 = $this->p; if (!($this->ids[$this->p] === 53)) { @@ -18033,7 +17470,7 @@ private function s190(): bool $this->rec(89); } - goto f119;} + goto f107;} $this->p++; // s403 @@ -18042,7 +17479,7 @@ private function s190(): bool $this->rec(403); } - goto f119;} + goto f107;} $o3 = $this->p; if (!($this->ids[$this->p] === 26)) { @@ -18050,23 +17487,23 @@ private function s190(): bool $this->rec(47); } - goto f120;} + goto f108;} $this->p++; if (!$this->s125()) { - goto f120;} - goto k120; - f120: + goto f108;} + goto k108; + f108: $this->p = $o3; - goto f119; - k120: - goto k119; - f119: + goto f107; + k108: + goto k107; + f107: $this->p = $o2; - goto n118; - k119: - goto a111; - n118: + goto n106; + k107: + goto a99; + n106: break; case 54: // s404 @@ -18075,7 +17512,7 @@ private function s190(): bool $this->rec(404); } - goto n121;} + goto n109;} $o2 = $this->p; if (!($this->ids[$this->p] === 54)) { @@ -18083,7 +17520,7 @@ private function s190(): bool $this->rec(86); } - goto f122;} + goto f110;} $this->p++; // s403 @@ -18092,7 +17529,7 @@ private function s190(): bool $this->rec(403); } - goto f122;} + goto f110;} $o3 = $this->p; if (!($this->ids[$this->p] === 26)) { @@ -18100,23 +17537,23 @@ private function s190(): bool $this->rec(47); } - goto f123;} + goto f111;} $this->p++; if (!$this->s125()) { - goto f123;} - goto k123; - f123: + goto f111;} + goto k111; + f111: $this->p = $o3; - goto f122; - k123: - goto k122; - f122: + goto f110; + k111: + goto k110; + f110: $this->p = $o2; - goto n121; - k122: - goto a111; - n121: + goto n109; + k110: + goto a99; + n109: break; case 55: // s401 @@ -18125,7 +17562,7 @@ private function s190(): bool $this->rec(401); } - goto n124;} + goto n112;} $o2 = $this->p; if (!($this->ids[$this->p] === 55)) { @@ -18133,7 +17570,7 @@ private function s190(): bool $this->rec(87); } - goto f125;} + goto f113;} $this->p++; // s399 @@ -18142,33 +17579,33 @@ private function s190(): bool $this->rec(399); } - goto f125;} + goto f113;} $o3 = $this->p; if (!$this->s199()) { - goto f126;} + goto f114;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f126;} + goto f114;} $this->p++; if (!$this->s125()) { - goto f126;} - goto k126; - f126: + goto f114;} + goto k114; + f114: $this->p = $o3; - goto f125; - k126: - goto k125; - f125: + goto f113; + k114: + goto k113; + f113: $this->p = $o2; - goto n124; - k125: - goto a111; - n124: + goto n112; + k113: + goto a99; + n112: break; case 56: // s395 @@ -18177,7 +17614,7 @@ private function s190(): bool $this->rec(395); } - goto n127;} + goto n115;} $o2 = $this->p; if (!($this->ids[$this->p] === 56)) { @@ -18185,18 +17622,18 @@ private function s190(): bool $this->rec(95); } - goto f128;} + goto f116;} $this->p++; if (!$this->s391()) { - goto f128;} - goto k128; - f128: + goto f116;} + goto k116; + f116: $this->p = $o2; - goto n127; - k128: - goto a111; - n127: + goto n115; + k116: + goto a99; + n115: break; case 57: // s394 @@ -18205,7 +17642,7 @@ private function s190(): bool $this->rec(394); } - goto n129;} + goto n117;} $o2 = $this->p; if (!($this->ids[$this->p] === 57)) { @@ -18213,18 +17650,18 @@ private function s190(): bool $this->rec(94); } - goto f130;} + goto f118;} $this->p++; if (!$this->s391()) { - goto f130;} - goto k130; - f130: + goto f118;} + goto k118; + f118: $this->p = $o2; - goto n129; - k130: - goto a111; - n129: + goto n117; + k118: + goto a99; + n117: break; case 58: // s443 @@ -18233,7 +17670,7 @@ private function s190(): bool $this->rec(443); } - goto n131;} + goto n119;} $o2 = $this->p; if (!($this->ids[$this->p] === 58)) { @@ -18241,7 +17678,7 @@ private function s190(): bool $this->rec(105); } - goto f132;} + goto f120;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -18249,7 +17686,7 @@ private function s190(): bool $this->rec(144); } - goto f132;} + goto f120;} $this->p++; if (!($this->ids[$this->p] === 10)) { @@ -18257,7 +17694,7 @@ private function s190(): bool $this->rec(26); } - goto f132;} + goto f120;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -18265,18 +17702,18 @@ private function s190(): bool $this->rec(144); } - goto f132;} + goto f120;} $this->p++; if (!$this->s444()) { - goto f132;} - goto k132; - f132: + goto f120;} + goto k120; + f120: $this->p = $o2; - goto n131; - k132: - goto a111; - n131: + goto n119; + k120: + goto a99; + n119: break; case 59: // s446 @@ -18285,7 +17722,7 @@ private function s190(): bool $this->rec(446); } - goto n133;} + goto n121;} $o2 = $this->p; if (!($this->ids[$this->p] === 59)) { @@ -18293,7 +17730,7 @@ private function s190(): bool $this->rec(106); } - goto f134;} + goto f122;} $this->p++; if (($this->ids[$this->p] === 31)) { @@ -18307,26 +17744,26 @@ private function s190(): bool $this->rec(69); } if (!$this->s199()) { - goto f134;} + goto f122;} if (!isset(self::T29c7f960[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(448); } - goto f134;} + goto f122;} $this->p++; if (!$this->s449()) { - goto f134;} + goto f122;} if (!$this->s125()) { - goto f134;} - goto k134; - f134: + goto f122;} + goto k122; + f122: $this->p = $o2; - goto n133; - k134: - goto a111; - n133: + goto n121; + k122: + goto a99; + n121: break; case 60: // s397 @@ -18335,7 +17772,7 @@ private function s190(): bool $this->rec(397); } - goto n135;} + goto n123;} $o2 = $this->p; if (!($this->ids[$this->p] === 60)) { @@ -18343,18 +17780,18 @@ private function s190(): bool $this->rec(107); } - goto f136;} + goto f124;} $this->p++; if (!$this->s391()) { - goto f136;} - goto k136; - f136: + goto f124;} + goto k124; + f124: $this->p = $o2; - goto n135; - k136: - goto a111; - n135: + goto n123; + k124: + goto a99; + n123: break; case 61: // s396 @@ -18363,7 +17800,7 @@ private function s190(): bool $this->rec(396); } - goto n137;} + goto n125;} $o2 = $this->p; if (!($this->ids[$this->p] === 61)) { @@ -18371,24 +17808,24 @@ private function s190(): bool $this->rec(96); } - goto f138;} + goto f126;} $this->p++; if (!$this->s391()) { - goto f138;} - goto k138; - f138: + goto f126;} + goto k126; + f126: $this->p = $o2; - goto n137; - k138: - goto a111; - n137: + goto n125; + k126: + goto a99; + n125: break; case 62: if (!$this->s436()) { - goto n139;} - goto a111; - n139: + goto n127;} + goto a99; + n127: break; case 63: // s398 @@ -18397,7 +17834,7 @@ private function s190(): bool $this->rec(398); } - goto n140;} + goto n128;} $o2 = $this->p; if (!($this->ids[$this->p] === 63)) { @@ -18405,7 +17842,7 @@ private function s190(): bool $this->rec(98); } - goto f141;} + goto f129;} $this->p++; // s399 @@ -18414,33 +17851,33 @@ private function s190(): bool $this->rec(399); } - goto f141;} + goto f129;} $o3 = $this->p; if (!$this->s199()) { - goto f142;} + goto f130;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f142;} + goto f130;} $this->p++; if (!$this->s125()) { - goto f142;} - goto k142; - f142: + goto f130;} + goto k130; + f130: $this->p = $o3; - goto f141; - k142: - goto k141; - f141: + goto f129; + k130: + goto k129; + f129: $this->p = $o2; - goto n140; - k141: - goto a111; - n140: + goto n128; + k129: + goto a99; + n128: break; case 64: // s439 @@ -18449,7 +17886,7 @@ private function s190(): bool $this->rec(439); } - goto n143;} + goto n131;} $o2 = $this->p; if (!($this->ids[$this->p] === 64)) { @@ -18457,18 +17894,18 @@ private function s190(): bool $this->rec(102); } - goto f144;} + goto f132;} $this->p++; if (!$this->s438()) { - goto f144;} - goto k144; - f144: + goto f132;} + goto k132; + f132: $this->p = $o2; - goto n143; - k144: - goto a111; - n143: + goto n131; + k132: + goto a99; + n131: break; case 65: // s407 @@ -18477,7 +17914,7 @@ private function s190(): bool $this->rec(407); } - goto n145;} + goto n133;} $o2 = $this->p; if (!($this->ids[$this->p] === 65)) { @@ -18485,18 +17922,18 @@ private function s190(): bool $this->rec(97); } - goto f146;} + goto f134;} $this->p++; if (!$this->s125()) { - goto f146;} - goto k146; - f146: + goto f134;} + goto k134; + f134: $this->p = $o2; - goto n145; - k146: - goto a111; - n145: + goto n133; + k134: + goto a99; + n133: break; case 66: // s441 @@ -18505,7 +17942,7 @@ private function s190(): bool $this->rec(441); } - goto n147;} + goto n135;} $o2 = $this->p; if (!($this->ids[$this->p] === 66)) { @@ -18513,7 +17950,7 @@ private function s190(): bool $this->rec(104); } - goto f148;} + goto f136;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -18521,7 +17958,7 @@ private function s190(): bool $this->rec(144); } - goto f148;} + goto f136;} $this->p++; if (($this->ids[$this->p] === 46)) { @@ -18530,27 +17967,27 @@ private function s190(): bool $this->rec(69); } if (!$this->s199()) { - goto f148;} + goto f136;} if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } - goto f148;} - goto k148; - f148: + goto f136;} + goto k136; + f136: $this->p = $o2; - goto n147; - k148: - goto a111; - n147: + goto n135; + k136: + goto a99; + n135: // s442 if (!($this->ids[$this->p] === 66)) { if ($this->p > $this->f) { $this->rec(442); } - goto n149;} + goto n137;} $o2 = $this->p; if (!($this->ids[$this->p] === 66)) { @@ -18558,7 +17995,7 @@ private function s190(): bool $this->rec(104); } - goto f150;} + goto f138;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -18566,7 +18003,7 @@ private function s190(): bool $this->rec(144); } - goto f150;} + goto f138;} $this->p++; if (($this->ids[$this->p] === 46)) { @@ -18575,14 +18012,14 @@ private function s190(): bool $this->rec(69); } if (!$this->s125()) { - goto f150;} - goto k150; - f150: + goto f138;} + goto k138; + f138: $this->p = $o2; - goto n149; - k150: - goto a111; - n149: + goto n137; + k138: + goto a99; + n137: break; case 67: // s400 @@ -18591,7 +18028,7 @@ private function s190(): bool $this->rec(400); } - goto n151;} + goto n139;} $o2 = $this->p; if (!($this->ids[$this->p] === 67)) { @@ -18599,7 +18036,7 @@ private function s190(): bool $this->rec(108); } - goto f152;} + goto f140;} $this->p++; // s399 @@ -18608,33 +18045,33 @@ private function s190(): bool $this->rec(399); } - goto f152;} + goto f140;} $o3 = $this->p; if (!$this->s199()) { - goto f153;} + goto f141;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f153;} + goto f141;} $this->p++; if (!$this->s125()) { - goto f153;} - goto k153; - f153: + goto f141;} + goto k141; + f141: $this->p = $o3; - goto f152; - k153: - goto k152; - f152: + goto f140; + k141: + goto k140; + f140: $this->p = $o2; - goto n151; - k152: - goto a111; - n151: + goto n139; + k140: + goto a99; + n139: break; case 68: // s437 @@ -18643,7 +18080,7 @@ private function s190(): bool $this->rec(437); } - goto n154;} + goto n142;} $o2 = $this->p; if (!($this->ids[$this->p] === 68)) { @@ -18651,18 +18088,18 @@ private function s190(): bool $this->rec(101); } - goto f155;} + goto f143;} $this->p++; if (!$this->s438()) { - goto f155;} - goto k155; - f155: + goto f143;} + goto k143; + f143: $this->p = $o2; - goto n154; - k155: - goto a111; - n154: + goto n142; + k143: + goto a99; + n142: break; case 69: // s408 @@ -18671,7 +18108,7 @@ private function s190(): bool $this->rec(408); } - goto n156;} + goto n144;} $o2 = $this->p; if (!($this->ids[$this->p] === 69)) { @@ -18679,18 +18116,18 @@ private function s190(): bool $this->rec(99); } - goto f157;} + goto f145;} $this->p++; if (!$this->s409()) { - goto f157;} - goto k157; - f157: + goto f145;} + goto k145; + f145: $this->p = $o2; - goto n156; - k157: - goto a111; - n156: + goto n144; + k145: + goto a99; + n144: break; case 70: // s390 @@ -18699,7 +18136,7 @@ private function s190(): bool $this->rec(390); } - goto n158;} + goto n146;} $o2 = $this->p; if (!($this->ids[$this->p] === 70)) { @@ -18707,18 +18144,18 @@ private function s190(): bool $this->rec(91); } - goto f159;} + goto f147;} $this->p++; if (!$this->s391()) { - goto f159;} - goto k159; - f159: + goto f147;} + goto k147; + f147: $this->p = $o2; - goto n158; - k159: - goto a111; - n158: + goto n146; + k147: + goto a99; + n146: break; case 71: // s392 @@ -18727,7 +18164,7 @@ private function s190(): bool $this->rec(392); } - goto n160;} + goto n148;} $o2 = $this->p; if (!($this->ids[$this->p] === 71)) { @@ -18735,18 +18172,18 @@ private function s190(): bool $this->rec(92); } - goto f161;} + goto f149;} $this->p++; if (!$this->s391()) { - goto f161;} - goto k161; - f161: + goto f149;} + goto k149; + f149: $this->p = $o2; - goto n160; - k161: - goto a111; - n160: + goto n148; + k149: + goto a99; + n148: break; case 72: // s191 @@ -18755,7 +18192,7 @@ private function s190(): bool $this->rec(191); } - goto n162;} + goto n150;} $o2 = $this->p; if (!($this->ids[$this->p] === 72)) { @@ -18763,18 +18200,18 @@ private function s190(): bool $this->rec(84); } - goto f163;} + goto f151;} $this->p++; if (!$this->s192()) { - goto f163;} - goto k163; - f163: + goto f151;} + goto k151; + f151: $this->p = $o2; - goto n162; - k163: - goto a111; - n162: + goto n150; + k151: + goto a99; + n150: break; case 73: // s393 @@ -18783,7 +18220,7 @@ private function s190(): bool $this->rec(393); } - goto n164;} + goto n152;} $o2 = $this->p; if (!($this->ids[$this->p] === 73)) { @@ -18791,18 +18228,18 @@ private function s190(): bool $this->rec(93); } - goto f165;} + goto f153;} $this->p++; if (!$this->s391()) { - goto f165;} - goto k165; - f165: + goto f153;} + goto k153; + f153: $this->p = $o2; - goto n164; - k165: - goto a111; - n164: + goto n152; + k153: + goto a99; + n152: break; case 74: // s440 @@ -18811,7 +18248,7 @@ private function s190(): bool $this->rec(440); } - goto n166;} + goto n154;} $o2 = $this->p; if (!($this->ids[$this->p] === 74)) { @@ -18819,18 +18256,18 @@ private function s190(): bool $this->rec(103); } - goto f167;} + goto f155;} $this->p++; if (!$this->s438()) { - goto f167;} - goto k167; - f167: + goto f155;} + goto k155; + f155: $this->p = $o2; - goto n166; - k167: - goto a111; - n166: + goto n154; + k155: + goto a99; + n154: break; case 75: // s384 @@ -18839,7 +18276,7 @@ private function s190(): bool $this->rec(384); } - goto n168;} + goto n156;} $o2 = $this->p; if (!($this->ids[$this->p] === 75)) { @@ -18847,20 +18284,20 @@ private function s190(): bool $this->rec(90); } - goto f169;} + goto f157;} $this->p++; if (!$this->s199()) { - goto f169;} + goto f157;} if (!$this->s385()) { - goto f169;} - goto k169; - f169: + goto f157;} + goto k157; + f157: $this->p = $o2; - goto n168; - k169: - goto a111; - n168: + goto n156; + k157: + goto a99; + n156: break; } @@ -18868,13 +18305,13 @@ private function s190(): bool $this->rec(190); } - goto f110; - a111: - goto k110; - f110: + goto f98; + a99: + goto k98; + f98: $this->p = $o1; return false; - k110: + k98: return true; } @@ -18925,11 +18362,11 @@ private function s192(): bool $this->rec(198); } - goto n354;} + goto n328;} $o2 = $this->p; if (!$this->s199()) { - goto f355;} + goto f329;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -18945,18 +18382,18 @@ private function s192(): bool $this->rec(47); } - goto f355;} + goto f329;} $this->p++; if (!$this->s125()) { - goto f355;} - goto k355; - f355: + goto f329;} + goto k329; + f329: $this->p = $o2; - goto n354; - k355: - goto a353; - n354: + goto n328; + k329: + goto a327; + n328: break; case 26: case 27: @@ -18967,7 +18404,7 @@ private function s192(): bool $this->rec(193); } - goto n356;} + goto n330;} $o2 = $this->p; if (!isset(self::T553dc07b[$this->ids[$this->p]])) { @@ -18975,7 +18412,7 @@ private function s192(): bool $this->rec(195); } - goto f357;} + goto f331;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -18991,18 +18428,18 @@ private function s192(): bool $this->rec(47); } - goto f357;} + goto f331;} $this->p++; if (!$this->s125()) { - goto f357;} - goto k357; - f357: + goto f331;} + goto k331; + f331: $this->p = $o2; - goto n356; - k357: - goto a353; - n356: + goto n330; + k331: + goto a327; + n330: break; } @@ -19010,13 +18447,13 @@ private function s192(): bool $this->rec(192); } - goto f352; - a353: - goto k352; - f352: + goto f326; + a327: + goto k326; + f326: $this->p = $o1; return false; - k352: + k326: return true; } @@ -19066,20 +18503,20 @@ private function s199(): bool $this->rec(367); } - goto n178;} + goto n166;} $o2 = $this->p; if (!$this->s201()) { - goto f179;} + goto f167;} if (!$this->s368()) { - goto f179;} - goto k179; - f179: + goto f167;} + goto k167; + f167: $this->p = $o2; - goto n178; - k179: - goto a177; - n178: + goto n166; + k167: + goto a165; + n166: break; case 30: // s200 @@ -19088,7 +18525,7 @@ private function s199(): bool $this->rec(200); } - goto n180;} + goto n168;} $o2 = $this->p; if (!($this->ids[$this->p] === 30)) { @@ -19096,18 +18533,18 @@ private function s199(): bool $this->rec(51); } - goto f181;} + goto f169;} $this->p++; if (!$this->s201()) { - goto f181;} - goto k181; - f181: + goto f169;} + goto k169; + f169: $this->p = $o2; - goto n180; - k181: - goto a177; - n180: + goto n168; + k169: + goto a165; + n168: break; } @@ -19115,13 +18552,13 @@ private function s199(): bool $this->rec(199); } - goto f176; - a177: - goto k176; - f176: + goto f164; + a165: + goto k164; + f164: $this->p = $o1; return false; - k176: + k164: return true; } @@ -19159,7 +18596,7 @@ private function s201(): bool $this->rec(366); } - goto n408;} + goto n382;} $o2 = $this->p; if (!isset(self::T1921405e[$this->ids[$this->p]])) { @@ -19167,7 +18604,7 @@ private function s201(): bool $this->rec(332); } - goto f409;} + goto f383;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -19176,24 +18613,24 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f409;} + goto f383;} } if (!$this->s281()) { - goto f409;} - goto k409; - f409: + goto f383;} + goto k383; + f383: $this->p = $o2; - goto n408; - k409: - goto a407; - n408: + goto n382; + k383: + goto a381; + n382: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n410;} + goto n384;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -19209,17 +18646,17 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f411;} + goto f385;} } if (!$this->s335()) { - goto f411;} - goto k411; - f411: + goto f385;} + goto k385; + f385: $this->p = $o2; - goto n410; - k411: - goto a407; - n410: + goto n384; + k385: + goto a381; + n384: break; case 19: case 20: @@ -19231,7 +18668,7 @@ private function s201(): bool $this->rec(333); } - goto n413;} + goto n387;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -19247,32 +18684,32 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f414;} + goto f388;} } if (!$this->s335()) { - goto f414;} - goto k414; - f414: + goto f388;} + goto k388; + f388: $this->p = $o2; - goto n413; - k414: - goto a407; - n413: + goto n387; + k388: + goto a381; + n387: break; case 3: case 4: case 8: if (!$this->s255()) { - goto n416;} - goto a407; - n416: + goto n390;} + goto a381; + n390: // s278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n417;} + goto n391;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -19280,7 +18717,7 @@ private function s201(): bool $this->rec(279); } - goto f418;} + goto f392;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -19289,7 +18726,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f418;} + goto f392;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -19297,24 +18734,24 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f418;} + goto f392;} } if (!$this->s281()) { - goto f418;} - goto k418; - f418: + goto f392;} + goto k392; + f392: $this->p = $o2; - goto n417; - k418: - goto a407; - n417: + goto n391; + k392: + goto a381; + n391: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n419;} + goto n393;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -19330,37 +18767,37 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f420;} + goto f394;} } if (!$this->s335()) { - goto f420;} - goto k420; - f420: + goto f394;} + goto k394; + f394: $this->p = $o2; - goto n419; - k420: - goto a407; - n419: + goto n393; + k394: + goto a381; + n393: break; case 32: case 82: if (!$this->s202()) { - goto n422;} - goto a407; - n422: + goto n396;} + goto a381; + n396: break; case 6: if (!$this->s267()) { - goto n423;} - goto a407; - n423: + goto n397;} + goto a381; + n397: // s278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n424;} + goto n398;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -19368,7 +18805,7 @@ private function s201(): bool $this->rec(279); } - goto f425;} + goto f399;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -19377,7 +18814,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f425;} + goto f399;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -19385,24 +18822,24 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f425;} + goto f399;} } if (!$this->s281()) { - goto f425;} - goto k425; - f425: + goto f399;} + goto k399; + f399: $this->p = $o2; - goto n424; - k425: - goto a407; - n424: + goto n398; + k399: + goto a381; + n398: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n426;} + goto n400;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -19418,30 +18855,30 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f427;} + goto f401;} } if (!$this->s335()) { - goto f427;} - goto k427; - f427: + goto f401;} + goto k401; + f401: $this->p = $o2; - goto n426; - k427: - goto a407; - n426: + goto n400; + k401: + goto a381; + n400: break; case 7: if (!$this->s230()) { - goto n429;} - goto a407; - n429: + goto n403;} + goto a381; + n403: // s278 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(278); } - goto n430;} + goto n404;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -19449,7 +18886,7 @@ private function s201(): bool $this->rec(279); } - goto f431;} + goto f405;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -19458,7 +18895,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f431;} + goto f405;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -19466,24 +18903,24 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f431;} + goto f405;} } if (!$this->s281()) { - goto f431;} - goto k431; - f431: + goto f405;} + goto k405; + f405: $this->p = $o2; - goto n430; - k431: - goto a407; - n430: + goto n404; + k405: + goto a381; + n404: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n432;} + goto n406;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -19499,23 +18936,23 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f433;} + goto f407;} } if (!$this->s335()) { - goto f433;} - goto k433; - f433: + goto f407;} + goto k407; + f407: $this->p = $o2; - goto n432; - k433: - goto a407; - n432: + goto n406; + k407: + goto a381; + n406: break; case 25: if (!$this->s229()) { - goto n435;} - goto a407; - n435: + goto n409;} + goto a381; + n409: break; } @@ -19523,13 +18960,13 @@ private function s201(): bool $this->rec(201); } - goto f406; - a407: - goto k406; - f406: + goto f380; + a381: + goto k380; + f380: $this->p = $o1; return false; - k406: + k380: return true; } @@ -19549,7 +18986,7 @@ private function s202(): bool $this->rec(16); } - goto f677;} + goto f661;} $this->p++; // s203 @@ -19561,14 +18998,14 @@ private function s202(): bool $this->rec(204); } - goto e679; + goto e663; } $this->p++; } - e679: + e663: if (!$this->s205()) { - goto f677;} + goto f661;} // s203 $o2 = $this->p; while (true) { @@ -19578,18 +19015,18 @@ private function s202(): bool $this->rec(204); } - goto e681; + goto e665; } $this->p++; } - e681: + e665: if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f677;} + goto f661;} $this->p++; if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -19599,7 +19036,7 @@ private function s202(): bool $this->rec(223); } - goto n682;} + goto n666;} $o2 = $this->p; $k2 = 0; @@ -19610,37 +19047,37 @@ private function s202(): bool $this->rec(224); } - goto e684; + goto e668; } if (!$this->s224()) { - goto e684;} + goto e668;} if ($this->p === $b2) { $k2 = 1; - goto e684; + goto e668; } $k2++; } - e684: + e668: if ($k2 < 1) { - goto f683; + goto f667; } - goto k683; - f683: + goto k667; + f667: $this->p = $o2; - goto n682; - k683: - n682: + goto n666; + k667: + n666: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k677; - f677: + goto k661; + f661: $this->p = $o1; return false; - k677: + k661: return true; } @@ -19690,26 +19127,26 @@ private function s205(): bool $this->rec(208); } - goto n913;} + goto n908;} $o2 = $this->p; if (!$this->s201()) { - goto f914;} + goto f909;} if (!$this->s209()) { - goto f914;} - goto k914; - f914: + goto f909;} + goto k909; + f909: $this->p = $o2; - goto n913; - k914: - goto a912; - n913: + goto n908; + k909: + goto a907; + n908: break; case 26: if (!$this->s206()) { - goto n915;} - goto a912; - n915: + goto n910;} + goto a907; + n910: break; case 30: // s200 @@ -19718,7 +19155,7 @@ private function s205(): bool $this->rec(200); } - goto n916;} + goto n911;} $o2 = $this->p; if (!($this->ids[$this->p] === 30)) { @@ -19726,18 +19163,18 @@ private function s205(): bool $this->rec(51); } - goto f917;} + goto f912;} $this->p++; if (!$this->s201()) { - goto f917;} - goto k917; - f917: + goto f912;} + goto k912; + f912: $this->p = $o2; - goto n916; - k917: - goto a912; - n916: + goto n911; + k912: + goto a907; + n911: break; } @@ -19745,13 +19182,13 @@ private function s205(): bool $this->rec(205); } - goto f911; - a912: - goto k911; - f911: + goto f906; + a907: + goto k906; + f906: $this->p = $o1; return false; - k911: + k906: return true; } @@ -19771,7 +19208,7 @@ private function s206(): bool $this->rec(47); } - goto f1252;} + goto f1235;} $this->p++; if (!($this->ids[$this->p] === 12)) { @@ -19779,7 +19216,7 @@ private function s206(): bool $this->rec(23); } - goto f1252;} + goto f1235;} $this->p++; if (($this->ids[$this->p] === 11)) { @@ -19788,7 +19225,7 @@ private function s206(): bool $this->rec(24); } if (!$this->s199()) { - goto f1252;} + goto f1235;} // s203 $o2 = $this->p; while (true) { @@ -19798,18 +19235,18 @@ private function s206(): bool $this->rec(204); } - goto e1254; + goto e1237; } $this->p++; } - e1254: + e1237: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1252;} + goto f1235;} $this->p++; // s203 @@ -19821,14 +19258,14 @@ private function s206(): bool $this->rec(204); } - goto e1256; + goto e1239; } $this->p++; } - e1256: + e1239: if (!$this->s199()) { - goto f1252;} + goto f1235;} // s203 $o2 = $this->p; while (true) { @@ -19838,18 +19275,18 @@ private function s206(): bool $this->rec(204); } - goto e1258; + goto e1241; } $this->p++; } - e1258: + e1241: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1252;} + goto f1235;} $this->p++; // s203 @@ -19861,19 +19298,19 @@ private function s206(): bool $this->rec(204); } - goto e1260; + goto e1243; } $this->p++; } - e1260: + e1243: if (!$this->s205()) { - goto f1252;} - goto k1252; - f1252: + goto f1235;} + goto k1235; + f1235: $this->p = $o1; return false; - k1252: + k1235: return true; } @@ -19894,27 +19331,27 @@ private function s209(): bool $this->rec(204); } - goto e1244; + goto e1227; } $this->p++; } - e1244: + e1227: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->s213()) { - goto n1245;} - n1245: + goto n1228;} + n1228: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1240; - n1241: + goto a1223; + n1224: break; case 12: if (!$this->s210()) { - goto n1246;} - goto a1240; - n1246: + goto n1229;} + goto a1223; + n1229: // s211 $o2 = $this->p; // s203 @@ -19926,21 +19363,21 @@ private function s209(): bool $this->rec(204); } - goto e1250; + goto e1233; } $this->p++; } - e1250: + e1233: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->s213()) { - goto n1251;} - n1251: + goto n1234;} + n1234: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1240; - n1247: + goto a1223; + n1230: break; } @@ -19948,13 +19385,13 @@ private function s209(): bool $this->rec(209); } - goto f1239; - a1240: - goto k1239; - f1239: + goto f1222; + a1223: + goto k1222; + f1222: $this->p = $o1; return false; - k1239: + k1222: return true; } @@ -19974,7 +19411,7 @@ private function s210(): bool $this->rec(23); } - goto f1550;} + goto f1528;} $this->p++; if (($this->ids[$this->p] === 11)) { @@ -19983,7 +19420,7 @@ private function s210(): bool $this->rec(24); } if (!$this->s199()) { - goto f1550;} + goto f1528;} // s203 $o2 = $this->p; while (true) { @@ -19993,18 +19430,18 @@ private function s210(): bool $this->rec(204); } - goto e1552; + goto e1530; } $this->p++; } - e1552: + e1530: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1550;} + goto f1528;} $this->p++; // s203 @@ -20016,14 +19453,14 @@ private function s210(): bool $this->rec(204); } - goto e1554; + goto e1532; } $this->p++; } - e1554: + e1532: if (!$this->s199()) { - goto f1550;} + goto f1528;} // s203 $o2 = $this->p; while (true) { @@ -20033,18 +19470,18 @@ private function s210(): bool $this->rec(204); } - goto e1556; + goto e1534; } $this->p++; } - e1556: + e1534: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1550;} + goto f1528;} $this->p++; // s203 @@ -20056,19 +19493,19 @@ private function s210(): bool $this->rec(204); } - goto e1558; + goto e1536; } $this->p++; } - e1558: + e1536: if (!$this->s205()) { - goto f1550;} - goto k1550; - f1550: + goto f1528;} + goto k1528; + f1528: $this->p = $o1; return false; - k1550: + k1528: return true; } @@ -20093,26 +19530,26 @@ private function s213(): bool $this->rec(214); } - goto n1546;} + goto n1524;} $o2 = $this->p; if (!$this->s215()) { - goto f1547;} + goto f1525;} if (($this->ids[$this->p] === 28)) { if (($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1547;} + goto f1525;} } - goto k1547; - f1547: + goto k1525; + f1525: $this->p = $o2; - goto n1546; - k1547: - goto a1545; - n1546: + goto n1524; + k1525: + goto a1523; + n1524: break; case 29: // s218 @@ -20121,26 +19558,26 @@ private function s213(): bool $this->rec(218); } - goto n1548;} + goto n1526;} $o2 = $this->p; if (!$this->s219()) { - goto f1549;} + goto f1527;} if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1549;} + goto f1527;} } - goto k1549; - f1549: + goto k1527; + f1527: $this->p = $o2; - goto n1548; - k1549: - goto a1545; - n1548: + goto n1526; + k1527: + goto a1523; + n1526: break; } @@ -20148,13 +19585,13 @@ private function s213(): bool $this->rec(213); } - goto f1544; - a1545: - goto k1544; - f1544: + goto f1522; + a1523: + goto k1522; + f1522: $this->p = $o1; return false; - k1544: + k1522: return true; } @@ -20177,7 +19614,7 @@ private function s215(): bool $this->rec(216); } - goto e1711; + goto e1682; } // s216 @@ -20186,7 +19623,7 @@ private function s215(): bool $this->rec(216); } - goto e1711;} + goto e1682;} $o2 = $this->p; if (!($this->ids[$this->p] === 28)) { @@ -20194,7 +19631,7 @@ private function s215(): bool $this->rec(49); } - goto f1712;} + goto f1683;} $this->p++; // s203 @@ -20206,14 +19643,14 @@ private function s215(): bool $this->rec(204); } - goto e1714; + goto e1685; } $this->p++; } - e1714: + e1685: if (!$this->s201()) { - goto f1712;} + goto f1683;} // s203 $o3 = $this->p; while (true) { @@ -20223,34 +19660,34 @@ private function s215(): bool $this->rec(204); } - goto e1716; + goto e1687; } $this->p++; } - e1716: - goto k1712; - f1712: + e1687: + goto k1683; + f1683: $this->p = $o2; - goto e1711; - k1712: + goto e1682; + k1683: if ($this->p === $b1) { $k1 = 1; - goto e1711; + goto e1682; } $k1++; } - e1711: + e1682: if ($k1 < 1) { - goto f1710; + goto f1681; } - goto k1710; - f1710: + goto k1681; + f1681: $this->p = $o1; return false; - k1710: + k1681: return true; } @@ -20273,7 +19710,7 @@ private function s219(): bool $this->rec(220); } - goto e1718; + goto e1689; } // s220 @@ -20282,7 +19719,7 @@ private function s219(): bool $this->rec(220); } - goto e1718;} + goto e1689;} $o2 = $this->p; if (!($this->ids[$this->p] === 29)) { @@ -20290,7 +19727,7 @@ private function s219(): bool $this->rec(50); } - goto f1719;} + goto f1690;} $this->p++; // s203 @@ -20302,14 +19739,14 @@ private function s219(): bool $this->rec(204); } - goto e1721; + goto e1692; } $this->p++; } - e1721: + e1692: if (!$this->s201()) { - goto f1719;} + goto f1690;} // s203 $o3 = $this->p; while (true) { @@ -20319,34 +19756,34 @@ private function s219(): bool $this->rec(204); } - goto e1723; + goto e1694; } $this->p++; } - e1723: - goto k1719; - f1719: + e1694: + goto k1690; + f1690: $this->p = $o2; - goto e1718; - k1719: + goto e1689; + k1690: if ($this->p === $b1) { $k1 = 1; - goto e1718; + goto e1689; } $k1++; } - e1718: + e1689: if ($k1 < 1) { - goto f1717; + goto f1688; } - goto k1717; - f1717: + goto k1688; + f1688: $this->p = $o1; return false; - k1717: + k1688: return true; } @@ -20371,7 +19808,7 @@ private function s224(): bool $this->rec(225); } - goto n890;} + goto n885;} $o2 = $this->p; if (!($this->ids[$this->p] === 36)) { @@ -20379,7 +19816,7 @@ private function s224(): bool $this->rec(57); } - goto f891;} + goto f886;} $this->p++; if (($this->ids[$this->p] === 37)) { @@ -20388,32 +19825,32 @@ private function s224(): bool $this->f = $this->p; $this->er = []; } - goto f891;} + goto f886;} } if (!$this->s199()) { - goto f891;} + goto f886;} if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f891;} + goto f886;} $this->p++; - goto k891; - f891: + goto k886; + f886: $this->p = $o2; - goto n890; - k891: - goto a889; - n890: + goto n885; + k886: + goto a884; + n885: // s227 if (!isset(self::T885cd349[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(227); } - goto n892;} + goto n887;} $o2 = $this->p; if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20421,7 +19858,7 @@ private function s224(): bool $this->rec(228); } - goto f893;} + goto f888;} $this->p++; if (!($this->ids[$this->p] === 37)) { @@ -20429,16 +19866,16 @@ private function s224(): bool $this->rec(59); } - goto f893;} + goto f888;} $this->p++; - goto k893; - f893: + goto k888; + f888: $this->p = $o2; - goto n892; - k893: - goto a889; - n892: + goto n887; + k888: + goto a884; + n887: break; case 84: // s227 @@ -20447,7 +19884,7 @@ private function s224(): bool $this->rec(227); } - goto n894;} + goto n889;} $o2 = $this->p; if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20455,7 +19892,7 @@ private function s224(): bool $this->rec(228); } - goto f895;} + goto f890;} $this->p++; if (!($this->ids[$this->p] === 37)) { @@ -20463,16 +19900,16 @@ private function s224(): bool $this->rec(59); } - goto f895;} + goto f890;} $this->p++; - goto k895; - f895: + goto k890; + f890: $this->p = $o2; - goto n894; - k895: - goto a889; - n894: + goto n889; + k890: + goto a884; + n889: break; } @@ -20480,13 +19917,13 @@ private function s224(): bool $this->rec(224); } - goto f888; - a889: - goto k888; - f888: + goto f883; + a884: + goto k883; + f883: $this->p = $o1; return false; - k888: + k883: return true; } @@ -20506,7 +19943,7 @@ private function s229(): bool $this->rec(46); } - goto f697;} + goto f681;} $this->p++; if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20516,7 +19953,7 @@ private function s229(): bool $this->rec(223); } - goto n698;} + goto n682;} $o2 = $this->p; $k2 = 0; @@ -20527,37 +19964,37 @@ private function s229(): bool $this->rec(224); } - goto e700; + goto e684; } if (!$this->s224()) { - goto e700;} + goto e684;} if ($this->p === $b2) { $k2 = 1; - goto e700; + goto e684; } $k2++; } - e700: + e684: if ($k2 < 1) { - goto f699; + goto f683; } - goto k699; - f699: + goto k683; + f683: $this->p = $o2; - goto n698; - k699: - n698: + goto n682; + k683: + n682: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k697; - f697: + goto k681; + f681: $this->p = $o1; return false; - k697: + k681: return true; } @@ -20577,7 +20014,7 @@ private function s230(): bool $this->rec(32); } - goto f693;} + goto f677;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -20586,10 +20023,10 @@ private function s230(): bool $this->f = $this->p; $this->er = []; } - goto f693;} + goto f677;} } if (!$this->s231()) { - goto f693;} + goto f677;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20597,7 +20034,7 @@ private function s230(): bool $this->rec(223); } - goto n694;} + goto n678;} $o2 = $this->p; $k2 = 0; @@ -20608,37 +20045,37 @@ private function s230(): bool $this->rec(224); } - goto e696; + goto e680; } if (!$this->s224()) { - goto e696;} + goto e680;} if ($this->p === $b2) { $k2 = 1; - goto e696; + goto e680; } $k2++; } - e696: + e680: if ($k2 < 1) { - goto f695; + goto f679; } - goto k695; - f695: + goto k679; + f679: $this->p = $o2; - goto n694; - k695: - n694: + goto n678; + k679: + n678: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k693; - f693: + goto k677; + f677: $this->p = $o1; return false; - k693: + k677: return true; } @@ -20658,7 +20095,7 @@ private function s231(): bool $this->rec(60); } - goto f925;} + goto f920;} $this->p++; // s203 @@ -20670,12 +20107,12 @@ private function s231(): bool $this->rec(204); } - goto e927; + goto e922; } $this->p++; } - e927: + e922: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { // s233 if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { @@ -20683,7 +20120,7 @@ private function s231(): bool $this->rec(233); } - goto n928;} + goto n923;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -20717,15 +20154,15 @@ private function s231(): bool case 32: case 82: if (!$this->s243()) { - goto n931;} - goto a930; - n931: + goto n926;} + goto a925; + n926: break; case 42: if (!$this->s234()) { - goto n932;} - goto a930; - n932: + goto n927;} + goto a925; + n927: break; } @@ -20733,14 +20170,14 @@ private function s231(): bool $this->rec(233); } - goto f929; - a930: - goto k929; - f929: + goto f924; + a925: + goto k924; + f924: $this->p = $o2; - goto n928; - k929: - n928: + goto n923; + k924: + n923: } elseif ($this->p > $this->f) { $this->rec(233); } @@ -20753,25 +20190,25 @@ private function s231(): bool $this->rec(204); } - goto e934; + goto e929; } $this->p++; } - e934: + e929: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f925;} + goto f920;} $this->p++; - goto k925; - f925: + goto k920; + f920: $this->p = $o1; return false; - k925: + k920: return true; } @@ -20817,9 +20254,9 @@ private function s233(): bool case 32: case 82: if (!$this->s243()) { - goto n1565;} - goto a1564; - n1565: + goto n1543;} + goto a1542; + n1543: break; case 42: // s234 @@ -20828,7 +20265,7 @@ private function s233(): bool $this->rec(234); } - goto n1566;} + goto n1544;} $o2 = $this->p; if (!($this->ids[$this->p] === 42)) { @@ -20836,7 +20273,7 @@ private function s233(): bool $this->rec(65); } - goto f1567;} + goto f1545;} $this->p++; // s203 @@ -20848,26 +20285,26 @@ private function s233(): bool $this->rec(204); } - goto e1569; + goto e1547; } $this->p++; } - e1569: + e1547: if (!$this->s235()) { - goto f1567;} + goto f1545;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1567; - f1567: + goto k1545; + f1545: $this->p = $o2; - goto n1566; - k1567: - goto a1564; - n1566: + goto n1544; + k1545: + goto a1542; + n1544: break; } @@ -20875,13 +20312,13 @@ private function s233(): bool $this->rec(233); } - goto f1563; - a1564: - goto k1563; - f1563: + goto f1541; + a1542: + goto k1541; + f1541: $this->p = $o1; return false; - k1563: + k1541: return true; } @@ -20901,7 +20338,7 @@ private function s234(): bool $this->rec(65); } - goto f1283;} + goto f1266;} $this->p++; // s203 @@ -20913,24 +20350,24 @@ private function s234(): bool $this->rec(204); } - goto e1285; + goto e1268; } $this->p++; } - e1285: + e1268: if (!$this->s235()) { - goto f1283;} + goto f1266;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1283; - f1283: + goto k1266; + f1266: $this->p = $o1; return false; - k1283: + k1266: return true; } @@ -20945,9 +20382,9 @@ private function s235(): bool $this->f = $this->p; $this->er = []; } - goto n1572;} - goto a1571; - n1572: + goto n1550;} + goto a1549; + n1550: break; case 34: case 86: @@ -20957,11 +20394,11 @@ private function s235(): bool $this->rec(236); } - goto n1573;} + goto n1551;} $o2 = $this->p; if (!$this->s237()) { - goto f1574;} + goto f1552;} // s203 $o3 = $this->p; while (true) { @@ -20971,27 +20408,27 @@ private function s235(): bool $this->rec(204); } - goto e1576; + goto e1554; } $this->p++; } - e1576: - goto k1574; - f1574: + e1554: + goto k1552; + f1552: $this->p = $o2; - goto n1573; - k1574: - goto a1571; - n1573: + goto n1551; + k1552: + goto a1549; + n1551: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1577;} - goto a1571; - n1577: + goto n1555;} + goto a1549; + n1555: break; } @@ -20999,13 +20436,13 @@ private function s235(): bool $this->rec(235); } - goto f1570; - a1571: - goto k1570; - f1570: + goto f1548; + a1549: + goto k1548; + f1548: $this->p = $o1; return false; - k1570: + k1548: return true; } @@ -21025,7 +20462,7 @@ private function s237(): bool $this->rec(238); } - goto f1724;} + goto f1695;} $this->p++; // s203 @@ -21037,14 +20474,14 @@ private function s237(): bool $this->rec(204); } - goto e1726; + goto e1697; } $this->p++; } - e1726: + e1697: if (!$this->s199()) { - goto f1724;} + goto f1695;} // s203 $o2 = $this->p; while (true) { @@ -21054,12 +20491,12 @@ private function s237(): bool $this->rec(204); } - goto e1728; + goto e1699; } $this->p++; } - e1728: + e1699: if (($this->ids[$this->p] === 40)) { // s240 if (!($this->ids[$this->p] === 40)) { @@ -21067,7 +20504,7 @@ private function s237(): bool $this->rec(240); } - goto n1729;} + goto n1700;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -21075,7 +20512,7 @@ private function s237(): bool $this->rec(63); } - goto f1730;} + goto f1701;} $this->p++; // s203 @@ -21087,14 +20524,14 @@ private function s237(): bool $this->rec(204); } - goto e1732; + goto e1703; } $this->p++; } - e1732: + e1703: if (!$this->s199()) { - goto f1730;} + goto f1701;} // s203 $o3 = $this->p; while (true) { @@ -21104,18 +20541,18 @@ private function s237(): bool $this->rec(204); } - goto e1734; + goto e1705; } $this->p++; } - e1734: - goto k1730; - f1730: + e1705: + goto k1701; + f1701: $this->p = $o2; - goto n1729; - k1730: - n1729: + goto n1700; + k1701: + n1700: } elseif ($this->p > $this->f) { $this->rec(240); } @@ -21124,14 +20561,14 @@ private function s237(): bool $this->rec(56); } - goto f1724;} + goto f1695;} $this->p++; - goto k1724; - f1724: + goto k1695; + f1695: $this->p = $o1; return false; - k1724: + k1695: return true; } @@ -21152,7 +20589,7 @@ private function s243(): bool $this->rec(244); } - goto f1270;} + goto f1253;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -21181,13 +20618,13 @@ private function s243(): bool case 22: case 24: if (!$this->s245()) { - goto n1273;} - goto a1272; - n1273: + goto n1256;} + goto a1255; + n1256: if (!$this->s199()) { - goto n1274;} - goto a1272; - n1274: + goto n1257;} + goto a1255; + n1257: break; case 19: case 25: @@ -21195,9 +20632,9 @@ private function s243(): bool case 32: case 82: if (!$this->s199()) { - goto n1275;} - goto a1272; - n1275: + goto n1258;} + goto a1255; + n1258: break; } @@ -21205,13 +20642,13 @@ private function s243(): bool $this->rec(244); } - goto f1271; - a1272: - goto k1271; - f1271: + goto f1254; + a1255: + goto k1254; + f1254: $this->p = $o2; - goto f1270; - k1271: + goto f1253; + k1254: // s203 $o2 = $this->p; while (true) { @@ -21221,12 +20658,12 @@ private function s243(): bool $this->rec(204); } - goto e1277; + goto e1260; } $this->p++; } - e1277: + e1260: if (($this->ids[$this->p] === 40)) { // s252 if (!($this->ids[$this->p] === 40)) { @@ -21234,7 +20671,7 @@ private function s243(): bool $this->rec(252); } - goto n1278;} + goto n1261;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -21242,7 +20679,7 @@ private function s243(): bool $this->rec(63); } - goto f1279;} + goto f1262;} $this->p++; if (($this->ids[$this->p] === 41)) { @@ -21259,33 +20696,33 @@ private function s243(): bool $this->rec(204); } - goto e1281; + goto e1264; } $this->p++; } - e1281: + e1264: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->s233()) { - goto n1282;} - n1282: + goto n1265;} + n1265: } elseif ($this->p > $this->f) { $this->rec(233); } - goto k1279; - f1279: + goto k1262; + f1262: $this->p = $o2; - goto n1278; - k1279: - n1278: + goto n1261; + k1262: + n1261: } elseif ($this->p > $this->f) { $this->rec(252); } - goto k1270; - f1270: + goto k1253; + f1253: $this->p = $o1; return false; - k1270: + k1253: return true; } @@ -21306,7 +20743,7 @@ private function s245(): bool $this->rec(246); } - goto f1525;} + goto f1503;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -21332,21 +20769,21 @@ private function s245(): bool case 18: case 24: if (!$this->s247()) { - goto n1528;} - goto a1527; - n1528: + goto n1506;} + goto a1505; + n1506: break; case 20: $this->p++; - goto a1527; + goto a1505; break; case 21: $this->p++; - goto a1527; + goto a1505; break; case 22: $this->p++; - goto a1527; + goto a1505; break; } @@ -21354,13 +20791,13 @@ private function s245(): bool $this->rec(246); } - goto f1526; - a1527: - goto k1526; - f1526: + goto f1504; + a1505: + goto k1504; + f1504: $this->p = $o2; - goto f1525; - k1526: + goto f1503; + k1504: if (($this->ids[$this->p] === 30)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -21371,16 +20808,16 @@ private function s245(): bool $this->rec(70); } - goto f1525;} + goto f1503;} $this->p++; if (!$this->s199()) { - goto f1525;} - goto k1525; - f1525: + goto f1503;} + goto k1503; + f1503: $this->p = $o1; return false; - k1525: + k1503: return true; } @@ -21400,7 +20837,7 @@ private function s247(): bool $this->rec(144); } - goto f1702;} + goto f1673;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -21410,7 +20847,7 @@ private function s247(): bool $this->rec(249); } - goto n1703;} + goto n1674;} $o2 = $this->p; if (!($this->ids[$this->p] === 43)) { @@ -21418,7 +20855,7 @@ private function s247(): bool $this->rec(66); } - goto f1704;} + goto f1675;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -21426,23 +20863,23 @@ private function s247(): bool $this->rec(144); } - goto f1704;} + goto f1675;} $this->p++; - goto k1704; - f1704: + goto k1675; + f1675: $this->p = $o2; - goto n1703; - k1704: - n1703: + goto n1674; + k1675: + n1674: } elseif ($this->p > $this->f) { $this->rec(249); } - goto k1702; - f1702: + goto k1673; + f1673: $this->p = $o1; return false; - k1702: + k1673: return true; } @@ -21462,7 +20899,7 @@ private function s255(): bool $this->rec(256); } - goto f673;} + goto f657;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -21471,10 +20908,10 @@ private function s255(): bool $this->f = $this->p; $this->er = []; } - goto f673;} + goto f657;} } if (!$this->s257()) { - goto f673;} + goto f657;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -21482,7 +20919,7 @@ private function s255(): bool $this->rec(223); } - goto n674;} + goto n658;} $o2 = $this->p; $k2 = 0; @@ -21493,37 +20930,37 @@ private function s255(): bool $this->rec(224); } - goto e676; + goto e660; } if (!$this->s224()) { - goto e676;} + goto e660;} if ($this->p === $b2) { $k2 = 1; - goto e676; + goto e660; } $k2++; } - e676: + e660: if ($k2 < 1) { - goto f675; + goto f659; } - goto k675; - f675: + goto k659; + f659: $this->p = $o2; - goto n674; - k675: - n674: + goto n658; + k659: + n658: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k673; - f673: + goto k657; + f657: $this->p = $o1; return false; - k673: + k657: return true; } @@ -21543,7 +20980,7 @@ private function s257(): bool $this->rec(60); } - goto f901;} + goto f896;} $this->p++; // s203 @@ -21555,12 +20992,12 @@ private function s257(): bool $this->rec(204); } - goto e903; + goto e898; } $this->p++; } - e903: + e898: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { // s259 if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { @@ -21568,7 +21005,7 @@ private function s257(): bool $this->rec(259); } - goto n904;} + goto n899;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -21602,15 +21039,15 @@ private function s257(): bool case 32: case 82: if (!$this->s264()) { - goto n907;} - goto a906; - n907: + goto n902;} + goto a901; + n902: break; case 42: if (!$this->s260()) { - goto n908;} - goto a906; - n908: + goto n903;} + goto a901; + n903: break; } @@ -21618,14 +21055,14 @@ private function s257(): bool $this->rec(259); } - goto f905; - a906: - goto k905; - f905: + goto f900; + a901: + goto k900; + f900: $this->p = $o2; - goto n904; - k905: - n904: + goto n899; + k900: + n899: } elseif ($this->p > $this->f) { $this->rec(259); } @@ -21638,25 +21075,25 @@ private function s257(): bool $this->rec(204); } - goto e910; + goto e905; } $this->p++; } - e910: + e905: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f901;} + goto f896;} $this->p++; - goto k901; - f901: + goto k896; + f896: $this->p = $o1; return false; - k901: + k896: return true; } @@ -21702,9 +21139,9 @@ private function s259(): bool case 32: case 82: if (!$this->s264()) { - goto n1531;} - goto a1530; - n1531: + goto n1509;} + goto a1508; + n1509: break; case 42: // s260 @@ -21713,7 +21150,7 @@ private function s259(): bool $this->rec(260); } - goto n1532;} + goto n1510;} $o2 = $this->p; if (!($this->ids[$this->p] === 42)) { @@ -21721,7 +21158,7 @@ private function s259(): bool $this->rec(65); } - goto f1533;} + goto f1511;} $this->p++; // s203 @@ -21733,26 +21170,26 @@ private function s259(): bool $this->rec(204); } - goto e1535; + goto e1513; } $this->p++; } - e1535: + e1513: if (!$this->s261()) { - goto f1533;} + goto f1511;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1533; - f1533: + goto k1511; + f1511: $this->p = $o2; - goto n1532; - k1533: - goto a1530; - n1532: + goto n1510; + k1511: + goto a1508; + n1510: break; } @@ -21760,13 +21197,13 @@ private function s259(): bool $this->rec(259); } - goto f1529; - a1530: - goto k1529; - f1529: + goto f1507; + a1508: + goto k1507; + f1507: $this->p = $o1; return false; - k1529: + k1507: return true; } @@ -21786,7 +21223,7 @@ private function s260(): bool $this->rec(65); } - goto f1236;} + goto f1219;} $this->p++; // s203 @@ -21798,24 +21235,24 @@ private function s260(): bool $this->rec(204); } - goto e1238; + goto e1221; } $this->p++; } - e1238: + e1221: if (!$this->s261()) { - goto f1236;} + goto f1219;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1236; - f1236: + goto k1219; + f1219: $this->p = $o1; return false; - k1236: + k1219: return true; } @@ -21830,9 +21267,9 @@ private function s261(): bool $this->f = $this->p; $this->er = []; } - goto n1538;} - goto a1537; - n1538: + goto n1516;} + goto a1515; + n1516: break; case 34: case 86: @@ -21842,11 +21279,11 @@ private function s261(): bool $this->rec(262); } - goto n1539;} + goto n1517;} $o2 = $this->p; if (!$this->s263()) { - goto f1540;} + goto f1518;} // s203 $o3 = $this->p; while (true) { @@ -21856,27 +21293,27 @@ private function s261(): bool $this->rec(204); } - goto e1542; + goto e1520; } $this->p++; } - e1542: - goto k1540; - f1540: + e1520: + goto k1518; + f1518: $this->p = $o2; - goto n1539; - k1540: - goto a1537; - n1539: + goto n1517; + k1518: + goto a1515; + n1517: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1543;} - goto a1537; - n1543: + goto n1521;} + goto a1515; + n1521: break; } @@ -21884,13 +21321,13 @@ private function s261(): bool $this->rec(261); } - goto f1536; - a1537: - goto k1536; - f1536: + goto f1514; + a1515: + goto k1514; + f1514: $this->p = $o1; return false; - k1536: + k1514: return true; } @@ -21910,7 +21347,7 @@ private function s263(): bool $this->rec(238); } - goto f1705;} + goto f1676;} $this->p++; // s203 @@ -21922,14 +21359,14 @@ private function s263(): bool $this->rec(204); } - goto e1707; + goto e1678; } $this->p++; } - e1707: + e1678: if (!$this->s199()) { - goto f1705;} + goto f1676;} // s203 $o2 = $this->p; while (true) { @@ -21939,25 +21376,25 @@ private function s263(): bool $this->rec(204); } - goto e1709; + goto e1680; } $this->p++; } - e1709: + e1680: if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { $this->rec(56); } - goto f1705;} + goto f1676;} $this->p++; - goto k1705; - f1705: + goto k1676; + f1676: $this->p = $o1; return false; - k1705: + k1676: return true; } @@ -21978,7 +21415,7 @@ private function s264(): bool $this->rec(244); } - goto f1223;} + goto f1206;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -22007,13 +21444,13 @@ private function s264(): bool case 22: case 24: if (!$this->s245()) { - goto n1226;} - goto a1225; - n1226: + goto n1209;} + goto a1208; + n1209: if (!$this->s199()) { - goto n1227;} - goto a1225; - n1227: + goto n1210;} + goto a1208; + n1210: break; case 19: case 25: @@ -22021,9 +21458,9 @@ private function s264(): bool case 32: case 82: if (!$this->s199()) { - goto n1228;} - goto a1225; - n1228: + goto n1211;} + goto a1208; + n1211: break; } @@ -22031,13 +21468,13 @@ private function s264(): bool $this->rec(244); } - goto f1224; - a1225: - goto k1224; - f1224: + goto f1207; + a1208: + goto k1207; + f1207: $this->p = $o2; - goto f1223; - k1224: + goto f1206; + k1207: // s203 $o2 = $this->p; while (true) { @@ -22047,12 +21484,12 @@ private function s264(): bool $this->rec(204); } - goto e1230; + goto e1213; } $this->p++; } - e1230: + e1213: if (($this->ids[$this->p] === 40)) { // s266 if (!($this->ids[$this->p] === 40)) { @@ -22060,7 +21497,7 @@ private function s264(): bool $this->rec(266); } - goto n1231;} + goto n1214;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -22068,7 +21505,7 @@ private function s264(): bool $this->rec(63); } - goto f1232;} + goto f1215;} $this->p++; if (($this->ids[$this->p] === 41)) { @@ -22085,33 +21522,33 @@ private function s264(): bool $this->rec(204); } - goto e1234; + goto e1217; } $this->p++; } - e1234: + e1217: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->s259()) { - goto n1235;} - n1235: + goto n1218;} + n1218: } elseif ($this->p > $this->f) { $this->rec(259); } - goto k1232; - f1232: + goto k1215; + f1215: $this->p = $o2; - goto n1231; - k1232: - n1231: + goto n1214; + k1215: + n1214: } elseif ($this->p > $this->f) { $this->rec(266); } - goto k1223; - f1223: + goto k1206; + f1206: $this->p = $o1; return false; - k1223: + k1206: return true; } @@ -22131,7 +21568,7 @@ private function s267(): bool $this->rec(37); } - goto f685;} + goto f669;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -22140,7 +21577,7 @@ private function s267(): bool $this->f = $this->p; $this->er = []; } - goto f685;} + goto f669;} } // s268 if (!($this->ids[$this->p] === 38)) { @@ -22148,7 +21585,7 @@ private function s267(): bool $this->rec(268); } - goto f685;} + goto f669;} $o2 = $this->p; if (!($this->ids[$this->p] === 38)) { @@ -22156,7 +21593,7 @@ private function s267(): bool $this->rec(60); } - goto f686;} + goto f670;} $this->p++; // s203 @@ -22168,16 +21605,16 @@ private function s267(): bool $this->rec(204); } - goto e688; + goto e672; } $this->p++; } - e688: + e672: if (isset(self::Td8017923[$this->ids[$this->p]])) { if (!$this->s270()) { - goto n689;} - n689: + goto n673;} + n673: } elseif ($this->p > $this->f) { $this->rec(270); } @@ -22186,14 +21623,14 @@ private function s267(): bool $this->rec(62); } - goto f686;} + goto f670;} $this->p++; - goto k686; - f686: + goto k670; + f670: $this->p = $o2; - goto f685; - k686: + goto f669; + k670: if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -22201,7 +21638,7 @@ private function s267(): bool $this->rec(223); } - goto n690;} + goto n674;} $o2 = $this->p; $k2 = 0; @@ -22212,37 +21649,37 @@ private function s267(): bool $this->rec(224); } - goto e692; + goto e676; } if (!$this->s224()) { - goto e692;} + goto e676;} if ($this->p === $b2) { $k2 = 1; - goto e692; + goto e676; } $k2++; } - e692: + e676: if ($k2 < 1) { - goto f691; + goto f675; } - goto k691; - f691: + goto k675; + f675: $this->p = $o2; - goto n690; - k691: - n690: + goto n674; + k675: + n674: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k685; - f685: + goto k669; + f669: $this->p = $o1; return false; - k685: + k669: return true; } @@ -22263,11 +21700,11 @@ private function s270(): bool $this->rec(271); } - goto f918;} + goto f913;} $o2 = $this->p; if (!$this->s272()) { - goto f919;} + goto f914;} if (($this->ids[$this->p] === 30)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -22278,16 +21715,16 @@ private function s270(): bool $this->rec(70); } - goto f919;} + goto f914;} $this->p++; if (!$this->s199()) { - goto f919;} - goto k919; - f919: + goto f914;} + goto k914; + f914: $this->p = $o2; - goto f918; - k919: + goto f913; + k914: // s203 $o2 = $this->p; while (true) { @@ -22297,12 +21734,12 @@ private function s270(): bool $this->rec(204); } - goto e921; + goto e916; } $this->p++; } - e921: + e916: if (($this->ids[$this->p] === 40)) { // s274 if (!($this->ids[$this->p] === 40)) { @@ -22310,7 +21747,7 @@ private function s270(): bool $this->rec(274); } - goto n922;} + goto n917;} $o2 = $this->p; $k2 = 0; @@ -22321,37 +21758,37 @@ private function s270(): bool $this->rec(275); } - goto e924; + goto e919; } if (!$this->s275()) { - goto e924;} + goto e919;} if ($this->p === $b2) { $k2 = 1; - goto e924; + goto e919; } $k2++; } - e924: + e919: if ($k2 < 1) { - goto f923; + goto f918; } - goto k923; - f923: + goto k918; + f918: $this->p = $o2; - goto n922; - k923: - n922: + goto n917; + k918: + n917: } elseif ($this->p > $this->f) { $this->rec(274); } - goto k918; - f918: + goto k913; + f913: $this->p = $o1; return false; - k918: + k913: return true; } @@ -22371,87 +21808,87 @@ private function s272(): bool break; case 1: $this->p++; - goto a1262; + goto a1245; break; case 2: $this->p++; - goto a1262; + goto a1245; break; case 3: $this->p++; - goto a1262; + goto a1245; break; case 4: $this->p++; - goto a1262; + goto a1245; break; case 5: $this->p++; - goto a1262; + goto a1245; break; case 6: $this->p++; - goto a1262; + goto a1245; break; case 7: $this->p++; - goto a1262; + goto a1245; break; case 8: $this->p++; - goto a1262; + goto a1245; break; case 9: $this->p++; - goto a1262; + goto a1245; break; case 10: $this->p++; - goto a1262; + goto a1245; break; case 11: $this->p++; - goto a1262; + goto a1245; break; case 12: $this->p++; - goto a1262; + goto a1245; break; case 13: $this->p++; - goto a1262; + goto a1245; break; case 14: $this->p++; - goto a1262; + goto a1245; break; case 15: $this->p++; - goto a1262; + goto a1245; break; case 16: $this->p++; - goto a1262; + goto a1245; break; case 17: $this->p++; - goto a1262; + goto a1245; break; case 18: $this->p++; - goto a1262; + goto a1245; break; case 21: $this->p++; - goto a1262; + goto a1245; break; case 22: $this->p++; - goto a1262; + goto a1245; break; case 24: $this->p++; - goto a1262; + goto a1245; break; } @@ -22459,13 +21896,13 @@ private function s272(): bool $this->rec(272); } - goto f1261; - a1262: - goto k1261; - f1261: + goto f1244; + a1245: + goto k1244; + f1244: $this->p = $o1; return false; - k1261: + k1244: return true; } @@ -22485,7 +21922,7 @@ private function s275(): bool $this->rec(63); } - goto f1263;} + goto f1246;} $this->p++; // s203 @@ -22497,12 +21934,12 @@ private function s275(): bool $this->rec(204); } - goto e1265; + goto e1248; } $this->p++; } - e1265: + e1248: // s276 $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -22530,9 +21967,9 @@ private function s275(): bool case 22: case 24: if (!$this->s277()) { - goto n1268;} - goto a1267; - n1268: + goto n1251;} + goto a1250; + n1251: break; case 39: if (!($this->ids[$this->p] === 39)) { @@ -22540,9 +21977,9 @@ private function s275(): bool $this->rec(62); } - goto n1269;} - goto a1267; - n1269: + goto n1252;} + goto a1250; + n1252: break; } @@ -22550,18 +21987,18 @@ private function s275(): bool $this->rec(276); } - goto f1266; - a1267: - goto k1266; - f1266: + goto f1249; + a1250: + goto k1249; + f1249: $this->p = $o2; - goto f1263; - k1266: - goto k1263; - f1263: + goto f1246; + k1249: + goto k1246; + f1246: $this->p = $o1; return false; - k1263: + k1246: return true; } @@ -22582,11 +22019,11 @@ private function s277(): bool $this->rec(271); } - goto f1559;} + goto f1537;} $o2 = $this->p; if (!$this->s272()) { - goto f1560;} + goto f1538;} if (($this->ids[$this->p] === 30)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -22597,16 +22034,16 @@ private function s277(): bool $this->rec(70); } - goto f1560;} + goto f1538;} $this->p++; if (!$this->s199()) { - goto f1560;} - goto k1560; - f1560: + goto f1538;} + goto k1538; + f1538: $this->p = $o2; - goto f1559; - k1560: + goto f1537; + k1538: // s203 $o2 = $this->p; while (true) { @@ -22616,17 +22053,17 @@ private function s277(): bool $this->rec(204); } - goto e1562; + goto e1540; } $this->p++; } - e1562: - goto k1559; - f1559: + e1540: + goto k1537; + f1537: $this->p = $o1; return false; - k1559: + k1537: return true; } @@ -22641,24 +22078,24 @@ private function s281(): bool $this->f = $this->p; $this->er = []; } - goto n659;} - goto a658; - n659: + goto n643;} + goto a642; + n643: break; case 32: case 82: if (!$this->s364()) { - goto n660;} - goto a658; - n660: + goto n644;} + goto a642; + n644: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n661;} - goto a658; - n661: + goto n645;} + goto a642; + n645: break; case 36: case 84: @@ -22668,7 +22105,7 @@ private function s281(): bool $this->rec(223); } - goto n662;} + goto n646;} $o2 = $this->p; $k2 = 0; @@ -22679,52 +22116,52 @@ private function s281(): bool $this->rec(224); } - goto e664; + goto e648; } if (!$this->s224()) { - goto e664;} + goto e648;} if ($this->p === $b2) { $k2 = 1; - goto e664; + goto e648; } $k2++; } - e664: + e648: if ($k2 < 1) { - goto f663; + goto f647; } - goto k663; - f663: + goto k647; + f647: $this->p = $o2; - goto n662; - k663: - goto a658; - n662: + goto n646; + k647: + goto a642; + n646: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n665;} - goto a658; - n665: + goto n649;} + goto a642; + n649: break; case 34: if (!$this->s282()) { - goto n666;} - goto a658; - n666: + goto n650;} + goto a642; + n650: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n667;} - goto a658; - n667: + goto n651;} + goto a642; + n651: break; } @@ -22732,13 +22169,13 @@ private function s281(): bool $this->rec(281); } - goto f657; - a658: - goto k657; - f657: + goto f641; + a642: + goto k641; + f641: $this->p = $o1; return false; - k657: + k641: return true; } @@ -22758,14 +22195,14 @@ private function s282(): bool $this->rec(54); } - goto f896;} + goto f891;} // s284 if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->rec(284); } - goto f896;} + goto f891;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -22773,13 +22210,13 @@ private function s282(): bool break; case 34: if (!$this->s285()) { - goto n899;} - goto a898; - n899: + goto n894;} + goto a893; + n894: if (!$this->s362()) { - goto n900;} - goto a898; - n900: + goto n895;} + goto a893; + n895: break; } @@ -22787,18 +22224,18 @@ private function s282(): bool $this->rec(284); } - goto f897; - a898: - goto k897; - f897: + goto f892; + a893: + goto k892; + f892: $this->p = $o2; - goto f896; - k897: - goto k896; - f896: + goto f891; + k892: + goto k891; + f891: $this->p = $o1; return false; - k896: + k891: return true; } @@ -22818,7 +22255,7 @@ private function s285(): bool $this->rec(54); } - goto f1207;} + goto f1190;} $this->p++; // s203 @@ -22830,19 +22267,19 @@ private function s285(): bool $this->rec(204); } - goto e1209; + goto e1192; } $this->p++; } - e1209: + e1192: // s286 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(286); } - goto f1207;} + goto f1190;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -22850,20 +22287,20 @@ private function s285(): bool $this->rec(144); } - goto f1210;} + goto f1193;} $this->p++; if (!$this->s287()) { - goto f1210;} + goto f1193;} if (!$this->s293()) { - goto f1210;} + goto f1193;} if (!$this->s296()) { - goto f1210;} - goto k1210; - f1210: + goto f1193;} + goto k1193; + f1193: $this->p = $o2; - goto f1207; - k1210: + goto f1190; + k1193: // s203 $o2 = $this->p; while (true) { @@ -22873,12 +22310,12 @@ private function s285(): bool $this->rec(204); } - goto e1212; + goto e1195; } $this->p++; } - e1212: + e1195: if (($this->ids[$this->p] === 40)) { // s300 if (!($this->ids[$this->p] === 40)) { @@ -22886,7 +22323,7 @@ private function s285(): bool $this->rec(300); } - goto n1213;} + goto n1196;} $o2 = $this->p; $k2 = 0; @@ -22897,29 +22334,29 @@ private function s285(): bool $this->rec(301); } - goto e1215; + goto e1198; } if (!$this->s301()) { - goto e1215;} + goto e1198;} if ($this->p === $b2) { $k2 = 1; - goto e1215; + goto e1198; } $k2++; } - e1215: + e1198: if ($k2 < 1) { - goto f1214; + goto f1197; } - goto k1214; - f1214: + goto k1197; + f1197: $this->p = $o2; - goto n1213; - k1214: - n1213: + goto n1196; + k1197: + n1196: } elseif ($this->p > $this->f) { $this->rec(300); } @@ -22928,7 +22365,7 @@ private function s285(): bool $this->rec(56); } - goto f1207;} + goto f1190;} $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -22936,7 +22373,7 @@ private function s285(): bool $this->rec(16); } - goto f1207;} + goto f1190;} $this->p++; // s203 @@ -22948,16 +22385,16 @@ private function s285(): bool $this->rec(204); } - goto e1217; + goto e1200; } $this->p++; } - e1217: + e1200: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { if (!$this->s306()) { - goto n1218;} - n1218: + goto n1201;} + n1201: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -22966,7 +22403,7 @@ private function s285(): bool $this->rec(53); } - goto f1207;} + goto f1190;} $this->p++; if (!($this->ids[$this->p] === 47)) { @@ -22974,16 +22411,16 @@ private function s285(): bool $this->rec(70); } - goto f1207;} + goto f1190;} $this->p++; if (!$this->s315()) { - goto f1207;} - goto k1207; - f1207: + goto f1190;} + goto k1190; + f1190: $this->p = $o1; return false; - k1207: + k1190: return true; } @@ -23003,20 +22440,20 @@ private function s286(): bool $this->rec(144); } - goto f1645;} + goto f1613;} $this->p++; if (!$this->s287()) { - goto f1645;} + goto f1613;} if (!$this->s293()) { - goto f1645;} + goto f1613;} if (!$this->s296()) { - goto f1645;} - goto k1645; - f1645: + goto f1613;} + goto k1613; + f1613: $this->p = $o1; return false; - k1645: + k1613: return true; } @@ -23034,7 +22471,7 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f577;} + goto f562;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -23042,15 +22479,15 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f577;} + goto f562;} } - goto k577; - f577: + goto k562; + f562: $this->p = $o2; - goto n576; - k577: - goto a575; - n576: + goto n561; + k562: + goto a560; + n561: break; case 13: // s288 @@ -23059,7 +22496,7 @@ private function s287(): bool $this->rec(288); } - goto n578;} + goto n563;} $o2 = $this->p; if (!($this->ids[$this->p] === 13)) { @@ -23067,18 +22504,18 @@ private function s287(): bool $this->rec(27); } - goto f579;} + goto f564;} $this->p++; if (!$this->s199()) { - goto f579;} - goto k579; - f579: + goto f564;} + goto k564; + f564: $this->p = $o2; - goto n578; - k579: - goto a575; - n578: + goto n563; + k564: + goto a560; + n563: // s290 $o2 = $this->p; if (($this->ids[$this->p] === 13)) { @@ -23087,7 +22524,7 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f581;} + goto f566;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -23095,15 +22532,15 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f581;} + goto f566;} } - goto k581; - f581: + goto k566; + f566: $this->p = $o2; - goto n580; - k581: - goto a575; - n580: + goto n565; + k566: + goto a560; + n565: break; case 14: // s289 @@ -23112,7 +22549,7 @@ private function s287(): bool $this->rec(289); } - goto n582;} + goto n567;} $o2 = $this->p; if (!($this->ids[$this->p] === 14)) { @@ -23120,18 +22557,18 @@ private function s287(): bool $this->rec(28); } - goto f583;} + goto f568;} $this->p++; if (!$this->s199()) { - goto f583;} - goto k583; - f583: + goto f568;} + goto k568; + f568: $this->p = $o2; - goto n582; - k583: - goto a575; - n582: + goto n567; + k568: + goto a560; + n567: // s290 $o2 = $this->p; if (($this->ids[$this->p] === 13)) { @@ -23140,7 +22577,7 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f585;} + goto f570;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -23148,15 +22585,15 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f585;} + goto f570;} } - goto k585; - f585: + goto k570; + f570: $this->p = $o2; - goto n584; - k585: - goto a575; - n584: + goto n569; + k570: + goto a560; + n569: break; } @@ -23164,13 +22601,13 @@ private function s287(): bool $this->rec(287); } - goto f574; - a575: - goto k574; - f574: + goto f559; + a560: + goto k559; + f559: $this->p = $o1; return false; - k574: + k559: return true; } @@ -23185,9 +22622,9 @@ private function s293(): bool $this->f = $this->p; $this->er = []; } - goto n588;} - goto a587; - n588: + goto n573;} + goto a572; + n573: break; case 5: // s294 @@ -23196,7 +22633,7 @@ private function s293(): bool $this->rec(294); } - goto n589;} + goto n574;} $o2 = $this->p; if (!($this->ids[$this->p] === 5)) { @@ -23204,26 +22641,26 @@ private function s293(): bool $this->rec(29); } - goto f590;} + goto f575;} $this->p++; if (!$this->s199()) { - goto f590;} - goto k590; - f590: + goto f575;} + goto k575; + f575: $this->p = $o2; - goto n589; - k590: - goto a587; - n589: + goto n574; + k575: + goto a572; + n574: if (($this->ids[$this->p] === 5)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n591;} - goto a587; - n591: + goto n576;} + goto a572; + n576: break; } @@ -23231,13 +22668,13 @@ private function s293(): bool $this->rec(293); } - goto f586; - a587: - goto k586; - f586: + goto f571; + a572: + goto k571; + f571: $this->p = $o1; return false; - k586: + k571: return true; } @@ -23252,9 +22689,9 @@ private function s296(): bool $this->f = $this->p; $this->er = []; } - goto n594;} - goto a593; - n594: + goto n579;} + goto a578; + n579: break; case 46: // s297 @@ -23263,7 +22700,7 @@ private function s296(): bool $this->rec(297); } - goto n595;} + goto n580;} $o2 = $this->p; if (!($this->ids[$this->p] === 46)) { @@ -23271,26 +22708,26 @@ private function s296(): bool $this->rec(69); } - goto f596;} + goto f581;} $this->p++; if (!$this->s199()) { - goto f596;} - goto k596; - f596: + goto f581;} + goto k581; + f581: $this->p = $o2; - goto n595; - k596: - goto a593; - n595: + goto n580; + k581: + goto a578; + n580: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n597;} - goto a593; - n597: + goto n582;} + goto a578; + n582: break; } @@ -23298,13 +22735,13 @@ private function s296(): bool $this->rec(296); } - goto f592; - a593: - goto k592; - f592: + goto f577; + a578: + goto k577; + f577: $this->p = $o1; return false; - k592: + k577: return true; } @@ -23324,7 +22761,7 @@ private function s301(): bool $this->rec(63); } - goto f1512;} + goto f1490;} $this->p++; // s203 @@ -23336,12 +22773,12 @@ private function s301(): bool $this->rec(204); } - goto e1514; + goto e1492; } $this->p++; } - e1514: + e1492: // s302 $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -23367,9 +22804,9 @@ private function s301(): bool case 18: case 24: if (!$this->s304()) { - goto n1517;} - goto a1516; - n1517: + goto n1495;} + goto a1494; + n1495: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -23377,9 +22814,9 @@ private function s301(): bool $this->rec(56); } - goto n1518;} - goto a1516; - n1518: + goto n1496;} + goto a1494; + n1496: break; } @@ -23387,18 +22824,18 @@ private function s301(): bool $this->rec(302); } - goto f1515; - a1516: - goto k1515; - f1515: + goto f1493; + a1494: + goto k1493; + f1493: $this->p = $o2; - goto f1512; - k1515: - goto k1512; - f1512: + goto f1490; + k1493: + goto k1490; + f1490: $this->p = $o1; return false; - k1512: + k1490: return true; } @@ -23419,7 +22856,7 @@ private function s304(): bool $this->rec(286); } - goto f1693;} + goto f1664;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -23427,20 +22864,20 @@ private function s304(): bool $this->rec(144); } - goto f1694;} + goto f1665;} $this->p++; if (!$this->s287()) { - goto f1694;} + goto f1665;} if (!$this->s293()) { - goto f1694;} + goto f1665;} if (!$this->s296()) { - goto f1694;} - goto k1694; - f1694: + goto f1665;} + goto k1665; + f1665: $this->p = $o2; - goto f1693; - k1694: + goto f1664; + k1665: // s203 $o2 = $this->p; while (true) { @@ -23450,17 +22887,17 @@ private function s304(): bool $this->rec(204); } - goto e1696; + goto e1667; } $this->p++; } - e1696: - goto k1693; - f1693: + e1667: + goto k1664; + f1664: $this->p = $o1; return false; - k1693: + k1664: return true; } @@ -23481,11 +22918,11 @@ private function s306(): bool $this->rec(307); } - goto f1168;} + goto f1151;} $o2 = $this->p; if (!$this->s199()) { - goto f1169;} + goto f1152;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -23506,11 +22943,11 @@ private function s306(): bool } elseif ($this->p >= $this->f) { $this->rec(69); } - goto k1169; - f1169: + goto k1152; + f1152: $this->p = $o2; - goto f1168; - k1169: + goto f1151; + k1152: // s203 $o2 = $this->p; while (true) { @@ -23520,12 +22957,12 @@ private function s306(): bool $this->rec(204); } - goto e1171; + goto e1154; } $this->p++; } - e1171: + e1154: if (($this->ids[$this->p] === 40)) { // s311 if (!($this->ids[$this->p] === 40)) { @@ -23533,7 +22970,7 @@ private function s306(): bool $this->rec(311); } - goto n1172;} + goto n1155;} $o2 = $this->p; $k2 = 0; @@ -23544,37 +22981,37 @@ private function s306(): bool $this->rec(312); } - goto e1174; + goto e1157; } if (!$this->s312()) { - goto e1174;} + goto e1157;} if ($this->p === $b2) { $k2 = 1; - goto e1174; + goto e1157; } $k2++; } - e1174: + e1157: if ($k2 < 1) { - goto f1173; + goto f1156; } - goto k1173; - f1173: + goto k1156; + f1156: $this->p = $o2; - goto n1172; - k1173: - n1172: + goto n1155; + k1156: + n1155: } elseif ($this->p > $this->f) { $this->rec(311); } - goto k1168; - f1168: + goto k1151; + f1151: $this->p = $o1; return false; - k1168: + k1151: return true; } @@ -23594,7 +23031,7 @@ private function s312(): bool $this->rec(63); } - goto f1492;} + goto f1470;} $this->p++; // s203 @@ -23606,12 +23043,12 @@ private function s312(): bool $this->rec(204); } - goto e1494; + goto e1472; } $this->p++; } - e1494: + e1472: // s313 $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -23645,9 +23082,9 @@ private function s312(): bool case 32: case 82: if (!$this->s314()) { - goto n1497;} - goto a1496; - n1497: + goto n1475;} + goto a1474; + n1475: break; case 33: if (!($this->ids[$this->p] === 33)) { @@ -23655,9 +23092,9 @@ private function s312(): bool $this->rec(53); } - goto n1498;} - goto a1496; - n1498: + goto n1476;} + goto a1474; + n1476: break; } @@ -23665,18 +23102,18 @@ private function s312(): bool $this->rec(313); } - goto f1495; - a1496: - goto k1495; - f1495: + goto f1473; + a1474: + goto k1473; + f1473: $this->p = $o2; - goto f1492; - k1495: - goto k1492; - f1492: + goto f1470; + k1473: + goto k1470; + f1470: $this->p = $o1; return false; - k1492: + k1470: return true; } @@ -23697,11 +23134,11 @@ private function s314(): bool $this->rec(307); } - goto f1685;} + goto f1656;} $o2 = $this->p; if (!$this->s199()) { - goto f1686;} + goto f1657;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -23722,11 +23159,11 @@ private function s314(): bool } elseif ($this->p >= $this->f) { $this->rec(69); } - goto k1686; - f1686: + goto k1657; + f1657: $this->p = $o2; - goto f1685; - k1686: + goto f1656; + k1657: // s203 $o2 = $this->p; while (true) { @@ -23736,17 +23173,17 @@ private function s314(): bool $this->rec(204); } - goto e1688; + goto e1659; } $this->p++; } - e1688: - goto k1685; - f1685: + e1659: + goto k1656; + f1656: $this->p = $o1; return false; - k1685: + k1656: return true; } @@ -23784,7 +23221,7 @@ private function s315(): bool $this->rec(331); } - goto n1177;} + goto n1160;} $o2 = $this->p; if (!isset(self::T1921405e[$this->ids[$this->p]])) { @@ -23792,7 +23229,7 @@ private function s315(): bool $this->rec(332); } - goto f1178;} + goto f1161;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -23801,24 +23238,24 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1178;} + goto f1161;} } if (!$this->s318()) { - goto f1178;} - goto k1178; - f1178: + goto f1161;} + goto k1161; + f1161: $this->p = $o2; - goto n1177; - k1178: - goto a1176; - n1177: + goto n1160; + k1161: + goto a1159; + n1160: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1179;} + goto n1162;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -23834,17 +23271,17 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1180;} + goto f1163;} } if (!$this->s335()) { - goto f1180;} - goto k1180; - f1180: + goto f1163;} + goto k1163; + f1163: $this->p = $o2; - goto n1179; - k1180: - goto a1176; - n1179: + goto n1162; + k1163: + goto a1159; + n1162: break; case 19: case 20: @@ -23856,7 +23293,7 @@ private function s315(): bool $this->rec(333); } - goto n1182;} + goto n1165;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -23872,32 +23309,32 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1183;} + goto f1166;} } if (!$this->s335()) { - goto f1183;} - goto k1183; - f1183: + goto f1166;} + goto k1166; + f1166: $this->p = $o2; - goto n1182; - k1183: - goto a1176; - n1182: + goto n1165; + k1166: + goto a1159; + n1165: break; case 3: case 4: case 8: if (!$this->s255()) { - goto n1185;} - goto a1176; - n1185: + goto n1168;} + goto a1159; + n1168: // s317 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(317); } - goto n1186;} + goto n1169;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -23905,7 +23342,7 @@ private function s315(): bool $this->rec(279); } - goto f1187;} + goto f1170;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -23914,7 +23351,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1187;} + goto f1170;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -23922,24 +23359,24 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1187;} + goto f1170;} } if (!$this->s318()) { - goto f1187;} - goto k1187; - f1187: + goto f1170;} + goto k1170; + f1170: $this->p = $o2; - goto n1186; - k1187: - goto a1176; - n1186: + goto n1169; + k1170: + goto a1159; + n1169: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1188;} + goto n1171;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -23955,37 +23392,37 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1189;} + goto f1172;} } - if (!$this->s335()) { - goto f1189;} - goto k1189; - f1189: - $this->p = $o2; - goto n1188; - k1189: - goto a1176; - n1188: + if (!$this->s335()) { + goto f1172;} + goto k1172; + f1172: + $this->p = $o2; + goto n1171; + k1172: + goto a1159; + n1171: break; case 32: case 82: if (!$this->s316()) { - goto n1191;} - goto a1176; - n1191: + goto n1174;} + goto a1159; + n1174: break; case 6: if (!$this->s267()) { - goto n1192;} - goto a1176; - n1192: + goto n1175;} + goto a1159; + n1175: // s317 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(317); } - goto n1193;} + goto n1176;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -23993,7 +23430,7 @@ private function s315(): bool $this->rec(279); } - goto f1194;} + goto f1177;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -24002,7 +23439,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1194;} + goto f1177;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -24010,24 +23447,24 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1194;} + goto f1177;} } if (!$this->s318()) { - goto f1194;} - goto k1194; - f1194: + goto f1177;} + goto k1177; + f1177: $this->p = $o2; - goto n1193; - k1194: - goto a1176; - n1193: + goto n1176; + k1177: + goto a1159; + n1176: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1195;} + goto n1178;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -24043,30 +23480,30 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1196;} + goto f1179;} } if (!$this->s335()) { - goto f1196;} - goto k1196; - f1196: + goto f1179;} + goto k1179; + f1179: $this->p = $o2; - goto n1195; - k1196: - goto a1176; - n1195: + goto n1178; + k1179: + goto a1159; + n1178: break; case 7: if (!$this->s230()) { - goto n1198;} - goto a1176; - n1198: + goto n1181;} + goto a1159; + n1181: // s317 if (!isset(self::T4020d016[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(317); } - goto n1199;} + goto n1182;} $o2 = $this->p; if (!isset(self::T4020d016[$this->ids[$this->p]])) { @@ -24074,7 +23511,7 @@ private function s315(): bool $this->rec(279); } - goto f1200;} + goto f1183;} $this->p++; if (($this->ids[$this->p] === 43)) { @@ -24083,7 +23520,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1200;} + goto f1183;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -24091,24 +23528,24 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1200;} + goto f1183;} } if (!$this->s318()) { - goto f1200;} - goto k1200; - f1200: + goto f1183;} + goto k1183; + f1183: $this->p = $o2; - goto n1199; - k1200: - goto a1176; - n1199: + goto n1182; + k1183: + goto a1159; + n1182: // s333 if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(333); } - goto n1201;} + goto n1184;} $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { @@ -24124,23 +23561,23 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1202;} + goto f1185;} } if (!$this->s335()) { - goto f1202;} - goto k1202; - f1202: + goto f1185;} + goto k1185; + f1185: $this->p = $o2; - goto n1201; - k1202: - goto a1176; - n1201: + goto n1184; + k1185: + goto a1159; + n1184: break; case 25: if (!$this->s229()) { - goto n1204;} - goto a1176; - n1204: + goto n1187;} + goto a1159; + n1187: break; case 30: // s200 @@ -24149,7 +23586,7 @@ private function s315(): bool $this->rec(200); } - goto n1205;} + goto n1188;} $o2 = $this->p; if (!($this->ids[$this->p] === 30)) { @@ -24157,18 +23594,18 @@ private function s315(): bool $this->rec(51); } - goto f1206;} + goto f1189;} $this->p++; if (!$this->s201()) { - goto f1206;} - goto k1206; - f1206: + goto f1189;} + goto k1189; + f1189: $this->p = $o2; - goto n1205; - k1206: - goto a1176; - n1205: + goto n1188; + k1189: + goto a1159; + n1188: break; } @@ -24176,13 +23613,13 @@ private function s315(): bool $this->rec(315); } - goto f1175; - a1176: - goto k1175; - f1175: + goto f1158; + a1159: + goto k1158; + f1158: $this->p = $o1; return false; - k1175: + k1158: return true; } @@ -24202,17 +23639,17 @@ private function s316(): bool $this->rec(16); } - goto f1508;} + goto f1486;} $this->p++; if (!$this->s205()) { - goto f1508;} + goto f1486;} if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f1508;} + goto f1486;} $this->p++; if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -24222,7 +23659,7 @@ private function s316(): bool $this->rec(223); } - goto n1509;} + goto n1487;} $o2 = $this->p; $k2 = 0; @@ -24233,37 +23670,37 @@ private function s316(): bool $this->rec(224); } - goto e1511; + goto e1489; } if (!$this->s224()) { - goto e1511;} + goto e1489;} if ($this->p === $b2) { $k2 = 1; - goto e1511; + goto e1489; } $k2++; } - e1511: + e1489: if ($k2 < 1) { - goto f1510; + goto f1488; } - goto k1510; - f1510: + goto k1488; + f1488: $this->p = $o2; - goto n1509; - k1510: - n1509: + goto n1487; + k1488: + n1487: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1508; - f1508: + goto k1486; + f1486: $this->p = $o1; return false; - k1508: + k1486: return true; } @@ -24278,24 +23715,24 @@ private function s318(): bool $this->f = $this->p; $this->er = []; } - goto n1501;} - goto a1500; - n1501: + goto n1479;} + goto a1478; + n1479: break; case 34: case 86: if (!$this->s319()) { - goto n1502;} - goto a1500; - n1502: + goto n1480;} + goto a1478; + n1480: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1503;} - goto a1500; - n1503: + goto n1481;} + goto a1478; + n1481: break; case 36: case 84: @@ -24305,7 +23742,7 @@ private function s318(): bool $this->rec(223); } - goto n1504;} + goto n1482;} $o2 = $this->p; $k2 = 0; @@ -24316,38 +23753,38 @@ private function s318(): bool $this->rec(224); } - goto e1506; + goto e1484; } if (!$this->s224()) { - goto e1506;} + goto e1484;} if ($this->p === $b2) { $k2 = 1; - goto e1506; + goto e1484; } $k2++; } - e1506: + e1484: if ($k2 < 1) { - goto f1505; + goto f1483; } - goto k1505; - f1505: + goto k1483; + f1483: $this->p = $o2; - goto n1504; - k1505: - goto a1500; - n1504: + goto n1482; + k1483: + goto a1478; + n1482: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1507;} - goto a1500; - n1507: + goto n1485;} + goto a1478; + n1485: break; } @@ -24355,13 +23792,13 @@ private function s318(): bool $this->rec(318); } - goto f1499; - a1500: - goto k1499; - f1499: + goto f1477; + a1478: + goto k1477; + f1477: $this->p = $o1; return false; - k1499: + k1477: return true; } @@ -24377,7 +23814,7 @@ private function s319(): bool $o1 = $this->p; if (!$this->s320()) { - goto f1689;} + goto f1660;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -24385,7 +23822,7 @@ private function s319(): bool $this->rec(223); } - goto n1690;} + goto n1661;} $o2 = $this->p; $k2 = 0; @@ -24396,37 +23833,37 @@ private function s319(): bool $this->rec(224); } - goto e1692; + goto e1663; } if (!$this->s224()) { - goto e1692;} + goto e1663;} if ($this->p === $b2) { $k2 = 1; - goto e1692; + goto e1663; } $k2++; } - e1692: + e1663: if ($k2 < 1) { - goto f1691; + goto f1662; } - goto k1691; - f1691: + goto k1662; + f1662: $this->p = $o2; - goto n1690; - k1691: - n1690: + goto n1661; + k1662: + n1661: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1689; - f1689: + goto k1660; + f1660: $this->p = $o1; return false; - k1689: + k1660: return true; } @@ -24446,7 +23883,7 @@ private function s320(): bool $this->rec(238); } - goto f598;} + goto f583;} $this->p++; // s203 @@ -24458,14 +23895,14 @@ private function s320(): bool $this->rec(204); } - goto e600; + goto e585; } $this->p++; } - e600: + e585: if (!$this->s321()) { - goto f598;} + goto f583;} // s203 $o2 = $this->p; while (true) { @@ -24475,12 +23912,12 @@ private function s320(): bool $this->rec(204); } - goto e602; + goto e587; } $this->p++; } - e602: + e587: if (($this->ids[$this->p] === 40)) { // s327 if (!($this->ids[$this->p] === 40)) { @@ -24488,7 +23925,7 @@ private function s320(): bool $this->rec(327); } - goto n603;} + goto n588;} $o2 = $this->p; $k2 = 0; @@ -24499,29 +23936,29 @@ private function s320(): bool $this->rec(328); } - goto e605; + goto e590; } if (!$this->s328()) { - goto e605;} + goto e590;} if ($this->p === $b2) { $k2 = 1; - goto e605; + goto e590; } $k2++; } - e605: + e590: if ($k2 < 1) { - goto f604; + goto f589; } - goto k604; - f604: + goto k589; + f589: $this->p = $o2; - goto n603; - k604: - n603: + goto n588; + k589: + n588: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -24530,14 +23967,14 @@ private function s320(): bool $this->rec(56); } - goto f598;} + goto f583;} $this->p++; - goto k598; - f598: + goto k583; + f583: $this->p = $o1; return false; - k598: + k583: return true; } @@ -24586,7 +24023,7 @@ private function s321(): bool $this->rec(324); } - goto n805;} + goto n799;} $o2 = $this->p; if (isset(self::T05cf281c[$this->ids[$this->p]])) { @@ -24595,17 +24032,17 @@ private function s321(): bool $this->f = $this->p; $this->er = []; } - goto f806;} + goto f800;} } if (!$this->s199()) { - goto f806;} - goto k806; - f806: + goto f800;} + goto k800; + f800: $this->p = $o2; - goto n805; - k806: - goto a804; - n805: + goto n799; + k800: + goto a798; + n799: break; case 1: case 2: @@ -24615,7 +24052,7 @@ private function s321(): bool $this->rec(322); } - goto n807;} + goto n801;} $o2 = $this->p; if (!isset(self::T05cf281c[$this->ids[$this->p]])) { @@ -24623,26 +24060,26 @@ private function s321(): bool $this->rec(323); } - goto f808;} + goto f802;} $this->p++; if (!$this->s199()) { - goto f808;} - goto k808; - f808: + goto f802;} + goto k802; + f802: $this->p = $o2; - goto n807; - k808: - goto a804; - n807: + goto n801; + k802: + goto a798; + n801: break; case 50: $this->p++; - goto a804; + goto a798; break; case 85: $this->p++; - goto a804; + goto a798; break; } @@ -24650,13 +24087,13 @@ private function s321(): bool $this->rec(321); } - goto f803; - a804: - goto k803; - f803: + goto f797; + a798: + goto k797; + f797: $this->p = $o1; return false; - k803: + k797: return true; } @@ -24679,7 +24116,7 @@ private function s327(): bool $this->rec(328); } - goto e1698; + goto e1669; } // s328 @@ -24688,7 +24125,7 @@ private function s327(): bool $this->rec(328); } - goto e1698;} + goto e1669;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -24696,7 +24133,7 @@ private function s327(): bool $this->rec(63); } - goto f1699;} + goto f1670;} $this->p++; // s203 @@ -24708,36 +24145,36 @@ private function s327(): bool $this->rec(204); } - goto e1701; + goto e1672; } $this->p++; } - e1701: + e1672: if (!$this->s329()) { - goto f1699;} - goto k1699; - f1699: + goto f1670;} + goto k1670; + f1670: $this->p = $o2; - goto e1698; - k1699: + goto e1669; + k1670: if ($this->p === $b1) { $k1 = 1; - goto e1698; + goto e1669; } $k1++; } - e1698: + e1669: if ($k1 < 1) { - goto f1697; + goto f1668; } - goto k1697; - f1697: + goto k1668; + f1668: $this->p = $o1; return false; - k1697: + k1668: return true; } @@ -24757,7 +24194,7 @@ private function s328(): bool $this->rec(63); } - goto f809;} + goto f803;} $this->p++; // s203 @@ -24769,12 +24206,12 @@ private function s328(): bool $this->rec(204); } - goto e811; + goto e805; } $this->p++; } - e811: + e805: // s329 $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -24810,9 +24247,9 @@ private function s328(): bool case 82: case 85: if (!$this->s330()) { - goto n814;} - goto a813; - n814: + goto n808;} + goto a807; + n808: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -24820,9 +24257,9 @@ private function s328(): bool $this->rec(56); } - goto n815;} - goto a813; - n815: + goto n809;} + goto a807; + n809: break; } @@ -24830,18 +24267,18 @@ private function s328(): bool $this->rec(329); } - goto f812; - a813: - goto k812; - f812: + goto f806; + a807: + goto k806; + f806: $this->p = $o2; - goto f809; - k812: - goto k809; - f809: + goto f803; + k806: + goto k803; + f803: $this->p = $o1; return false; - k809: + k803: return true; } @@ -24887,11 +24324,11 @@ private function s329(): bool $this->rec(330); } - goto n1773;} + goto n1744;} $o2 = $this->p; if (!$this->s321()) { - goto f1774;} + goto f1745;} // s203 $o3 = $this->p; while (true) { @@ -24901,19 +24338,19 @@ private function s329(): bool $this->rec(204); } - goto e1776; + goto e1747; } $this->p++; } - e1776: - goto k1774; - f1774: + e1747: + goto k1745; + f1745: $this->p = $o2; - goto n1773; - k1774: - goto a1772; - n1773: + goto n1744; + k1745: + goto a1743; + n1744: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -24921,9 +24358,9 @@ private function s329(): bool $this->rec(56); } - goto n1777;} - goto a1772; - n1777: + goto n1748;} + goto a1743; + n1748: break; } @@ -24931,13 +24368,13 @@ private function s329(): bool $this->rec(329); } - goto f1771; - a1772: - goto k1771; - f1771: + goto f1742; + a1743: + goto k1742; + f1742: $this->p = $o1; return false; - k1771: + k1742: return true; } @@ -24953,7 +24390,7 @@ private function s330(): bool $o1 = $this->p; if (!$this->s321()) { - goto f1049;} + goto f1035;} // s203 $o2 = $this->p; while (true) { @@ -24963,17 +24400,17 @@ private function s330(): bool $this->rec(204); } - goto e1051; + goto e1037; } $this->p++; } - e1051: - goto k1049; - f1049: + e1037: + goto k1035; + f1035: $this->p = $o1; return false; - k1049: + k1035: return true; } @@ -25001,10 +24438,10 @@ private function s335(): bool $this->f = $this->p; $this->er = []; } - goto f668;} + goto f652;} } if (!$this->s340()) { - goto f668;} + goto f652;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -25012,7 +24449,7 @@ private function s335(): bool $this->rec(223); } - goto n670;} + goto n654;} $o2 = $this->p; $k2 = 0; @@ -25023,37 +24460,37 @@ private function s335(): bool $this->rec(224); } - goto e672; + goto e656; } if (!$this->s224()) { - goto e672;} + goto e656;} if ($this->p === $b2) { $k2 = 1; - goto e672; + goto e656; } $k2++; } - e672: + e656: if ($k2 < 1) { - goto f671; + goto f655; } - goto k671; - f671: + goto k655; + f655: $this->p = $o2; - goto n670; - k671: - n670: + goto n654; + k655: + n654: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k668; - f668: + goto k652; + f652: $this->p = $o1; return false; - k668: + k652: return true; } @@ -25079,7 +24516,7 @@ private function s337(): bool $this->rec(338); } - goto n849;} + goto n844;} $o2 = $this->p; if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { @@ -25087,7 +24524,7 @@ private function s337(): bool $this->rec(339); } - goto f850;} + goto f845;} $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -25095,24 +24532,24 @@ private function s337(): bool $this->rec(16); } - goto f850;} + goto f845;} $this->p++; - goto k850; - f850: + goto k845; + f845: $this->p = $o2; - goto n849; - k850: - goto a848; - n849: + goto n844; + k845: + goto a843; + n844: break; case 36: $this->p++; - goto a848; + goto a843; break; case 84: $this->p++; - goto a848; + goto a843; break; } @@ -25120,13 +24557,13 @@ private function s337(): bool $this->rec(337); } - goto f847; - a848: - goto k847; - f847: + goto f842; + a843: + goto k842; + f842: $this->p = $o1; return false; - k847: + k842: return true; } @@ -25164,7 +24601,7 @@ private function s340(): bool $this->rec(357); } - goto n192;} + goto n178;} $o2 = $this->p; if (isset(self::T1ad6c327[$this->ids[$this->p]])) { @@ -25173,37 +24610,37 @@ private function s340(): bool $this->f = $this->p; $this->er = []; } - goto f193;} + goto f179;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f193;} + goto f179;} $this->p++; if (($this->ids[$this->p] === 43)) { if (!$this->s360()) { - goto n194;} - n194: + goto n180;} + n180: } elseif ($this->p > $this->f) { $this->rec(360); } - goto k193; - f193: + goto k179; + f179: $this->p = $o2; - goto n192; - k193: - goto a191; - n192: + goto n178; + k179: + goto a177; + n178: break; case 7: case 18: if (!$this->s347()) { - goto n195;} - goto a191; - n195: + goto n181;} + goto a177; + n181: break; case 21: case 22: @@ -25213,7 +24650,7 @@ private function s340(): bool $this->rec(343); } - goto n196;} + goto n182;} $o2 = $this->p; switch ($this->ids[$this->p]) { @@ -25221,11 +24658,11 @@ private function s340(): bool break; case 21: $this->p++; - goto a198; + goto a184; break; case 22: $this->p++; - goto a198; + goto a184; break; } @@ -25233,42 +24670,42 @@ private function s340(): bool $this->rec(343); } - goto f197; - a198: - goto k197; - f197: + goto f183; + a184: + goto k183; + f183: $this->p = $o2; - goto n196; - k197: - goto a191; - n196: + goto n182; + k183: + goto a177; + n182: break; case 36: case 84: if (!$this->s361()) { - goto n199;} - goto a191; - n199: + goto n185;} + goto a177; + n185: break; case 15: $this->p++; - goto a191; + goto a177; break; case 16: $this->p++; - goto a191; + goto a177; break; case 17: $this->p++; - goto a191; + goto a177; break; case 19: $this->p++; - goto a191; + goto a177; break; case 20: $this->p++; - goto a191; + goto a177; break; } @@ -25276,13 +24713,13 @@ private function s340(): bool $this->rec(340); } - goto f190; - a191: - goto k190; - f190: + goto f176; + a177: + goto k176; + f176: $this->p = $o1; return false; - k190: + k176: return true; } @@ -25302,7 +24739,7 @@ private function s347(): bool $this->rec(339); } - goto f454;} + goto f430;} $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -25310,13 +24747,13 @@ private function s347(): bool $this->rec(16); } - goto f454;} + goto f430;} $this->p++; if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { if (!$this->s349()) { - goto n455;} - n455: + goto n431;} + n431: } elseif ($this->p > $this->f) { $this->rec(349); } @@ -25325,14 +24762,14 @@ private function s347(): bool $this->rec(53); } - goto f454;} + goto f430;} $this->p++; - goto k454; - f454: + goto k430; + f430: $this->p = $o1; return false; - k454: + k430: return true; } @@ -25353,22 +24790,22 @@ private function s349(): bool $this->rec(350); } - goto f728;} + goto f712;} $o2 = $this->p; if (!$this->s340()) { - goto f729;} + goto f713;} if (!$this->s351()) { - goto f729;} - goto k729; - f729: + goto f713;} + goto k713; + f713: $this->p = $o2; - goto f728; - k729: + goto f712; + k713: if (($this->ids[$this->p] === 40)) { if (!$this->s355()) { - goto n730;} - n730: + goto n714;} + n714: } elseif ($this->p > $this->f) { $this->rec(355); } @@ -25377,11 +24814,11 @@ private function s349(): bool } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k728; - f728: + goto k712; + f712: $this->p = $o1; return false; - k728: + k712: return true; } @@ -25396,9 +24833,9 @@ private function s351(): bool $this->f = $this->p; $this->er = []; } - goto n969;} - goto a968; - n969: + goto n964;} + goto a963; + n964: break; case 44: // s352 @@ -25407,7 +24844,7 @@ private function s351(): bool $this->rec(352); } - goto n970;} + goto n965;} $o2 = $this->p; if (!($this->ids[$this->p] === 44)) { @@ -25415,26 +24852,26 @@ private function s351(): bool $this->rec(67); } - goto f971;} + goto f966;} $this->p++; if (!$this->s340()) { - goto f971;} - goto k971; - f971: + goto f966;} + goto k966; + f966: $this->p = $o2; - goto n970; - k971: - goto a968; - n970: + goto n965; + k966: + goto a963; + n965: if (($this->ids[$this->p] === 44)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n972;} - goto a968; - n972: + goto n967;} + goto a963; + n967: break; } @@ -25442,13 +24879,13 @@ private function s351(): bool $this->rec(351); } - goto f967; - a968: - goto k967; - f967: + goto f962; + a963: + goto k962; + f962: $this->p = $o1; return false; - k967: + k962: return true; } @@ -25471,7 +24908,7 @@ private function s355(): bool $this->rec(356); } - goto e974; + goto e969; } // s356 @@ -25480,7 +24917,7 @@ private function s355(): bool $this->rec(356); } - goto e974;} + goto e969;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -25488,7 +24925,7 @@ private function s355(): bool $this->rec(63); } - goto f975;} + goto f970;} $this->p++; // s350 @@ -25497,40 +24934,40 @@ private function s355(): bool $this->rec(350); } - goto f975;} + goto f970;} $o3 = $this->p; if (!$this->s340()) { - goto f976;} + goto f971;} if (!$this->s351()) { - goto f976;} - goto k976; - f976: + goto f971;} + goto k971; + f971: $this->p = $o3; - goto f975; - k976: - goto k975; - f975: + goto f970; + k971: + goto k970; + f970: $this->p = $o2; - goto e974; - k975: + goto e969; + k970: if ($this->p === $b1) { $k1 = 1; - goto e974; + goto e969; } $k1++; } - e974: + e969: if ($k1 < 1) { - goto f973; + goto f968; } - goto k973; - f973: + goto k968; + f968: $this->p = $o1; return false; - k973: + k968: return true; } @@ -25550,16 +24987,16 @@ private function s360(): bool $this->rec(66); } - goto f453;} + goto f429;} $this->p++; if (!$this->s163()) { - goto f453;} - goto k453; - f453: + goto f429;} + goto k429; + f429: $this->p = $o1; return false; - k453: + k429: return true; } @@ -25579,13 +25016,13 @@ private function s361(): bool $this->rec(228); } - goto f456;} + goto f432;} $this->p++; if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { if (!$this->s349()) { - goto n457;} - n457: + goto n433;} + n433: } elseif ($this->p > $this->f) { $this->rec(349); } @@ -25594,14 +25031,14 @@ private function s361(): bool $this->rec(59); } - goto f456;} + goto f432;} $this->p++; - goto k456; - f456: + goto k432; + f432: $this->p = $o1; return false; - k456: + k432: return true; } @@ -25617,7 +25054,7 @@ private function s362(): bool $o1 = $this->p; if (!$this->s363()) { - goto f1219;} + goto f1202;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -25625,7 +25062,7 @@ private function s362(): bool $this->rec(223); } - goto n1220;} + goto n1203;} $o2 = $this->p; $k2 = 0; @@ -25636,37 +25073,37 @@ private function s362(): bool $this->rec(224); } - goto e1222; + goto e1205; } if (!$this->s224()) { - goto e1222;} + goto e1205;} if ($this->p === $b2) { $k2 = 1; - goto e1222; + goto e1205; } $k2++; } - e1222: + e1205: if ($k2 < 1) { - goto f1221; + goto f1204; } - goto k1221; - f1221: + goto k1204; + f1204: $this->p = $o2; - goto n1220; - k1221: - n1220: + goto n1203; + k1204: + n1203: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1219; - f1219: + goto k1202; + f1202: $this->p = $o1; return false; - k1219: + k1202: return true; } @@ -25686,7 +25123,7 @@ private function s363(): bool $this->rec(54); } - goto f1519;} + goto f1497;} $this->p++; // s203 @@ -25698,14 +25135,14 @@ private function s363(): bool $this->rec(204); } - goto e1521; + goto e1499; } $this->p++; } - e1521: + e1499: if (!$this->s321()) { - goto f1519;} + goto f1497;} // s203 $o2 = $this->p; while (true) { @@ -25715,16 +25152,16 @@ private function s363(): bool $this->rec(204); } - goto e1523; + goto e1501; } $this->p++; } - e1523: + e1501: if (($this->ids[$this->p] === 40)) { if (!$this->s327()) { - goto n1524;} - n1524: + goto n1502;} + n1502: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -25733,14 +25170,14 @@ private function s363(): bool $this->rec(56); } - goto f1519;} + goto f1497;} $this->p++; - goto k1519; - f1519: + goto k1497; + f1497: $this->p = $o1; return false; - k1519: + k1497: return true; } @@ -25760,7 +25197,7 @@ private function s364(): bool $this->rec(16); } - goto f884;} + goto f879;} $this->p++; // s203 @@ -25772,16 +25209,16 @@ private function s364(): bool $this->rec(204); } - goto e886; + goto e881; } $this->p++; } - e886: + e881: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { if (!$this->s306()) { - goto n887;} - n887: + goto n882;} + n882: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -25790,7 +25227,7 @@ private function s364(): bool $this->rec(53); } - goto f884;} + goto f879;} $this->p++; if (!($this->ids[$this->p] === 47)) { @@ -25798,16 +25235,16 @@ private function s364(): bool $this->rec(70); } - goto f884;} + goto f879;} $this->p++; if (!$this->s315()) { - goto f884;} - goto k884; - f884: + goto f879;} + goto k879; + f879: $this->p = $o1; return false; - k884: + k879: return true; } @@ -25825,7 +25262,7 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f439;} + goto f413;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25833,15 +25270,15 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f439;} + goto f413;} } - goto k439; - f439: + goto k413; + f413: $this->p = $o2; - goto n438; - k439: - goto a437; - n438: + goto n412; + k413: + goto a411; + n412: break; case 28: case 29: @@ -25853,7 +25290,7 @@ private function s368(): bool $this->rec(369); } - goto n440;} + goto n414;} $o2 = $this->p; // s203 @@ -25865,21 +25302,21 @@ private function s368(): bool $this->rec(204); } - goto e443; + goto e417; } $this->p++; } - e443: + e417: if (!$this->s370()) { - goto f441;} - goto k441; - f441: + goto f415;} + goto k415; + f415: $this->p = $o2; - goto n440; - k441: - goto a437; - n440: + goto n414; + k415: + goto a411; + n414: // s383 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -25888,7 +25325,7 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f445;} + goto f419;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25896,15 +25333,15 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f445;} + goto f419;} } - goto k445; - f445: + goto k419; + f419: $this->p = $o2; - goto n444; - k445: - goto a437; - n444: + goto n418; + k419: + goto a411; + n418: break; } @@ -25912,13 +25349,13 @@ private function s368(): bool $this->rec(368); } - goto f436; - a437: - goto k436; - f436: + goto f410; + a411: + goto k410; + f410: $this->p = $o1; return false; - k436: + k410: return true; } @@ -25943,26 +25380,26 @@ private function s370(): bool $this->rec(371); } - goto n703;} + goto n687;} $o2 = $this->p; if (!$this->s372()) { - goto f704;} + goto f688;} if (($this->ids[$this->p] === 28)) { if (($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f704;} + goto f688;} } - goto k704; - f704: + goto k688; + f688: $this->p = $o2; - goto n703; - k704: - goto a702; - n703: + goto n687; + k688: + goto a686; + n687: break; case 29: // s377 @@ -25971,26 +25408,26 @@ private function s370(): bool $this->rec(377); } - goto n705;} + goto n689;} $o2 = $this->p; if (!$this->s378()) { - goto f706;} + goto f690;} if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f706;} + goto f690;} } - goto k706; - f706: + goto k690; + f690: $this->p = $o2; - goto n705; - k706: - goto a702; - n705: + goto n689; + k690: + goto a686; + n689: break; } @@ -25998,13 +25435,13 @@ private function s370(): bool $this->rec(370); } - goto f701; - a702: - goto k701; - f701: + goto f685; + a686: + goto k685; + f685: $this->p = $o1; return false; - k701: + k685: return true; } @@ -26027,7 +25464,7 @@ private function s372(): bool $this->rec(373); } - goto e936; + goto e931; } // s373 @@ -26036,7 +25473,7 @@ private function s372(): bool $this->rec(373); } - goto e936;} + goto e931;} $o2 = $this->p; if (!($this->ids[$this->p] === 28)) { @@ -26044,11 +25481,11 @@ private function s372(): bool $this->rec(49); } - goto f937;} + goto f932;} $this->p++; if (!$this->s201()) { - goto f937;} + goto f932;} // s375 $o3 = $this->p; // s203 @@ -26060,46 +25497,46 @@ private function s372(): bool $this->rec(204); } - goto e941; + goto e936; } $this->p++; } - e941: + e936: if (!($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->rec(49); } - goto f939;} - goto k939; - f939: + goto f934;} + goto k934; + f934: $this->p = $o3; - goto n938; - k939: - n938: - goto k937; - f937: + goto n933; + k934: + n933: + goto k932; + f932: $this->p = $o2; - goto e936; - k937: + goto e931; + k932: if ($this->p === $b1) { $k1 = 1; - goto e936; + goto e931; } $k1++; } - e936: + e931: if ($k1 < 1) { - goto f935; + goto f930; } - goto k935; - f935: + goto k930; + f930: $this->p = $o1; return false; - k935: + k930: return true; } @@ -26122,7 +25559,7 @@ private function s378(): bool $this->rec(379); } - goto e943; + goto e938; } // s379 @@ -26131,7 +25568,7 @@ private function s378(): bool $this->rec(379); } - goto e943;} + goto e938;} $o2 = $this->p; if (!($this->ids[$this->p] === 29)) { @@ -26139,11 +25576,11 @@ private function s378(): bool $this->rec(50); } - goto f944;} + goto f939;} $this->p++; if (!$this->s201()) { - goto f944;} + goto f939;} // s381 $o3 = $this->p; // s203 @@ -26155,46 +25592,46 @@ private function s378(): bool $this->rec(204); } - goto e948; + goto e943; } $this->p++; } - e948: + e943: if (!($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->rec(50); } - goto f946;} - goto k946; - f946: + goto f941;} + goto k941; + f941: $this->p = $o3; - goto n945; - k946: - n945: - goto k944; - f944: + goto n940; + k941: + n940: + goto k939; + f939: $this->p = $o2; - goto e943; - k944: + goto e938; + k939: if ($this->p === $b1) { $k1 = 1; - goto e943; + goto e938; } $k1++; } - e943: + e938: if ($k1 < 1) { - goto f942; + goto f937; } - goto k942; - f942: + goto k937; + f937: $this->p = $o1; return false; - k942: + k937: return true; } @@ -26212,7 +25649,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f361;} + goto f335;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -26220,7 +25657,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f361;} + goto f335;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -26228,17 +25665,17 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f361;} + goto f335;} } if (!$this->s125()) { - goto f361;} - goto k361; - f361: + goto f335;} + goto k335; + f335: $this->p = $o2; - goto n360; - k361: - goto a359; - n360: + goto n334; + k335: + goto a333; + n334: break; case 25: case 26: @@ -26248,7 +25685,7 @@ private function s385(): bool $this->rec(386); } - goto n362;} + goto n336;} $o2 = $this->p; if (!isset(self::T29c7f960[$this->ids[$this->p]])) { @@ -26256,18 +25693,18 @@ private function s385(): bool $this->rec(387); } - goto f363;} + goto f337;} $this->p++; if (!$this->s125()) { - goto f363;} - goto k363; - f363: + goto f337;} + goto k337; + f337: $this->p = $o2; - goto n362; - k363: - goto a359; - n362: + goto n336; + k337: + goto a333; + n336: // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -26276,7 +25713,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f365;} + goto f339;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -26284,7 +25721,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f365;} + goto f339;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -26292,17 +25729,17 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f365;} + goto f339;} } if (!$this->s125()) { - goto f365;} - goto k365; - f365: + goto f339;} + goto k339; + f339: $this->p = $o2; - goto n364; - k365: - goto a359; - n364: + goto n338; + k339: + goto a333; + n338: break; } @@ -26310,13 +25747,13 @@ private function s385(): bool $this->rec(385); } - goto f358; - a359: - goto k358; - f358: + goto f332; + a333: + goto k332; + f332: $this->p = $o1; return false; - k358: + k332: return true; } @@ -26332,7 +25769,7 @@ private function s391(): bool $o1 = $this->p; if (!$this->s199()) { - goto f325;} + goto f299;} // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -26341,7 +25778,7 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f326;} + goto f300;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -26349,7 +25786,7 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f326;} + goto f300;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -26357,20 +25794,20 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f326;} + goto f300;} } if (!$this->s125()) { - goto f326;} - goto k326; - f326: + goto f300;} + goto k300; + f300: $this->p = $o2; - goto f325; - k326: - goto k325; - f325: + goto f299; + k300: + goto k299; + f299: $this->p = $o1; return false; - k325: + k299: return true; } @@ -26420,20 +25857,20 @@ private function s409(): bool $this->rec(435); } - goto n345;} + goto n319;} $o2 = $this->p; if (!$this->s199()) { - goto f346;} + goto f320;} if (!$this->s415()) { - goto f346;} - goto k346; - f346: + goto f320;} + goto k320; + f320: $this->p = $o2; - goto n345; - k346: - goto a344; - n345: + goto n319; + k320: + goto a318; + n319: break; case 9: // s410 @@ -26442,7 +25879,7 @@ private function s409(): bool $this->rec(410); } - goto n347;} + goto n321;} $o2 = $this->p; if (!($this->ids[$this->p] === 9)) { @@ -26450,7 +25887,7 @@ private function s409(): bool $this->rec(25); } - goto f348;} + goto f322;} $this->p++; if (isset(self::T648acf56[$this->ids[$this->p]])) { @@ -26466,39 +25903,39 @@ private function s409(): bool $this->f = $this->p; $this->er = []; } - goto f348;} + goto f322;} } if (!$this->s199()) { - goto f348;} + goto f322;} if (!$this->s415()) { - goto f348;} - goto k348; - f348: + goto f322;} + goto k322; + f322: $this->p = $o2; - goto n347; - k348: - goto a344; - n347: + goto n321; + k322: + goto a318; + n321: // s435 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(435); } - goto n350;} + goto n324;} $o2 = $this->p; if (!$this->s199()) { - goto f351;} + goto f325;} if (!$this->s415()) { - goto f351;} - goto k351; - f351: + goto f325;} + goto k325; + f325: $this->p = $o2; - goto n350; - k351: - goto a344; - n350: + goto n324; + k325: + goto a318; + n324: break; } @@ -26506,13 +25943,13 @@ private function s409(): bool $this->rec(409); } - goto f343; - a344: - goto k343; - f343: + goto f317; + a318: + goto k317; + f317: $this->p = $o1; return false; - k343: + k317: return true; } @@ -26540,7 +25977,7 @@ private function s412(): bool $this->rec(413); } - goto n560;} + goto n538;} $o2 = $this->p; // s203 @@ -26552,51 +25989,51 @@ private function s412(): bool $this->rec(204); } - goto e563; + goto e541; } $this->p++; } - e563: + e541: if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(414); } - goto f561;} + goto f539;} $this->p++; - goto k561; - f561: + goto k539; + f539: $this->p = $o2; - goto n560; - k561: - goto a559; - n560: + goto n538; + k539: + goto a537; + n538: break; case 32: $this->p++; - goto a559; + goto a537; break; case 34: $this->p++; - goto a559; + goto a537; break; case 36: $this->p++; - goto a559; + goto a537; break; case 43: $this->p++; - goto a559; + goto a537; break; case 82: $this->p++; - goto a559; + goto a537; break; case 84: $this->p++; - goto a559; + goto a537; break; } @@ -26604,13 +26041,13 @@ private function s412(): bool $this->rec(412); } - goto f558; - a559: - goto k558; - f558: + goto f536; + a537: + goto k536; + f536: $this->p = $o1; return false; - k558: + k536: return true; } @@ -26653,7 +26090,7 @@ private function s415(): bool $this->rec(416); } - goto n608;} + goto n593;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -26661,27 +26098,27 @@ private function s415(): bool $this->rec(144); } - goto f609;} + goto f594;} $this->p++; if (!$this->s417()) { - goto f609;} - goto k609; - f609: + goto f594;} + goto k594; + f594: $this->p = $o2; - goto n608; - k609: - goto a607; - n608: + goto n593; + k594: + goto a592; + n593: break; case 32: case 34: case 82: case 86: if (!$this->s417()) { - goto n610;} - goto a607; - n610: + goto n595;} + goto a592; + n595: break; } @@ -26689,13 +26126,13 @@ private function s415(): bool $this->rec(415); } - goto f606; - a607: - goto k606; - f606: + goto f591; + a592: + goto k591; + f591: $this->p = $o1; return false; - k606: + k591: return true; } @@ -26719,24 +26156,24 @@ private function s417(): bool $this->f = $this->p; $this->er = []; } - goto n819;} - goto a818; - n819: + goto n813;} + goto a812; + n813: break; case 34: case 86: if (!$this->s419()) { - goto n820;} - goto a818; - n820: + goto n814;} + goto a812; + n814: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n821;} - goto a818; - n821: + goto n815;} + goto a812; + n815: break; } @@ -26744,25 +26181,25 @@ private function s417(): bool $this->rec(418); } - goto f817; - a818: - goto k817; - f817: + goto f811; + a812: + goto k811; + f811: $this->p = $o2; - goto f816; - k817: + goto f810; + k811: if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(16); } - goto f816;} + goto f810;} $this->p++; if (isset(self::T9373805c[$this->ids[$this->p]])) { if (!$this->s424()) { - goto n822;} - n822: + goto n816;} + n816: } elseif ($this->p > $this->f) { $this->rec(424); } @@ -26771,7 +26208,7 @@ private function s417(): bool $this->rec(53); } - goto f816;} + goto f810;} $this->p++; // s125 @@ -26785,24 +26222,24 @@ private function s417(): bool $this->rec(116); } - goto e825; + goto e819; } $this->p++; } - e825: + e819: if (($this->ids[$this->p] === 80)) { if (!$this->s128()) { - goto n826;} - n826: + goto n820;} + n820: } elseif ($this->p > $this->f) { $this->rec(128); } - goto k816; - f816: + goto k810; + f810: $this->p = $o1; return false; - k816: + k810: return true; } @@ -26822,7 +26259,7 @@ private function s419(): bool $this->rec(238); } - goto f1052;} + goto f1038;} $this->p++; // s286 @@ -26831,7 +26268,7 @@ private function s419(): bool $this->rec(286); } - goto f1052;} + goto f1038;} $o2 = $this->p; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -26839,24 +26276,24 @@ private function s419(): bool $this->rec(144); } - goto f1053;} + goto f1039;} $this->p++; if (!$this->s287()) { - goto f1053;} + goto f1039;} if (!$this->s293()) { - goto f1053;} + goto f1039;} if (!$this->s296()) { - goto f1053;} - goto k1053; - f1053: + goto f1039;} + goto k1039; + f1039: $this->p = $o2; - goto f1052; - k1053: + goto f1038; + k1039: if (($this->ids[$this->p] === 40)) { if (!$this->s421()) { - goto n1054;} - n1054: + goto n1040;} + n1040: } elseif ($this->p > $this->f) { $this->rec(421); } @@ -26865,14 +26302,14 @@ private function s419(): bool $this->rec(56); } - goto f1052;} + goto f1038;} $this->p++; - goto k1052; - f1052: + goto k1038; + f1038: $this->p = $o1; return false; - k1052: + k1038: return true; } @@ -26895,7 +26332,7 @@ private function s421(): bool $this->rec(422); } - goto e1407; + goto e1387; } // s422 @@ -26904,7 +26341,7 @@ private function s421(): bool $this->rec(422); } - goto e1407;} + goto e1387;} $o2 = $this->p; if (!($this->ids[$this->p] === 40)) { @@ -26912,33 +26349,33 @@ private function s421(): bool $this->rec(63); } - goto f1408;} + goto f1388;} $this->p++; if (!$this->s286()) { - goto f1408;} - goto k1408; - f1408: + goto f1388;} + goto k1388; + f1388: $this->p = $o2; - goto e1407; - k1408: + goto e1387; + k1388: if ($this->p === $b1) { $k1 = 1; - goto e1407; + goto e1387; } $k1++; } - e1407: + e1387: if ($k1 < 1) { - goto f1406; + goto f1386; } - goto k1406; - f1406: + goto k1386; + f1386: $this->p = $o1; return false; - k1406: + k1386: return true; } @@ -26954,7 +26391,7 @@ private function s424(): bool $o1 = $this->p; if (!$this->s425()) { - goto f1055;} + goto f1041;} if (($this->ids[$this->p] === 40)) { // s433 if (!($this->ids[$this->p] === 40)) { @@ -26962,7 +26399,7 @@ private function s424(): bool $this->rec(433); } - goto n1056;} + goto n1042;} $o2 = $this->p; $k2 = 0; @@ -26973,37 +26410,37 @@ private function s424(): bool $this->rec(434); } - goto e1058; + goto e1044; } if (!$this->s434()) { - goto e1058;} + goto e1044;} if ($this->p === $b2) { $k2 = 1; - goto e1058; + goto e1044; } $k2++; } - e1058: + e1044: if ($k2 < 1) { - goto f1057; + goto f1043; } - goto k1057; - f1057: + goto k1043; + f1043: $this->p = $o2; - goto n1056; - k1057: - n1056: + goto n1042; + k1043: + n1042: } elseif ($this->p > $this->f) { $this->rec(433); } - goto k1055; - f1055: + goto k1041; + f1041: $this->p = $o1; return false; - k1055: + k1041: return true; } @@ -27049,7 +26486,7 @@ private function s425(): bool $this->rec(426); } - goto n1411;} + goto n1391;} $o2 = $this->p; if (!isset(self::T34c34eee[$this->ids[$this->p]])) { @@ -27057,9 +26494,9 @@ private function s425(): bool $this->rec(428); } - goto f1412;} + goto f1392;} if (!$this->s199()) { - goto f1412;} + goto f1392;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -27075,18 +26512,18 @@ private function s425(): bool $this->rec(47); } - goto f1412;} + goto f1392;} $this->p++; if (!$this->s429()) { - goto f1412;} - goto k1412; - f1412: + goto f1392;} + goto k1392; + f1392: $this->p = $o2; - goto n1411; - k1412: - goto a1410; - n1411: + goto n1391; + k1392: + goto a1390; + n1391: break; case 26: case 27: @@ -27097,7 +26534,7 @@ private function s425(): bool $this->rec(431); } - goto n1413;} + goto n1393;} $o2 = $this->p; if (($this->ids[$this->p] === 27)) { @@ -27115,18 +26552,18 @@ private function s425(): bool $this->rec(47); } - goto f1414;} + goto f1394;} $this->p++; if (!$this->s429()) { - goto f1414;} - goto k1414; - f1414: + goto f1394;} + goto k1394; + f1394: $this->p = $o2; - goto n1413; - k1414: - goto a1410; - n1413: + goto n1393; + k1394: + goto a1390; + n1393: break; } @@ -27134,13 +26571,13 @@ private function s425(): bool $this->rec(425); } - goto f1409; - a1410: - goto k1409; - f1409: + goto f1389; + a1390: + goto k1389; + f1389: $this->p = $o1; return false; - k1409: + k1389: return true; } @@ -27155,9 +26592,9 @@ private function s429(): bool $this->f = $this->p; $this->er = []; } - goto n1648;} - goto a1647; - n1648: + goto n1616;} + goto a1615; + n1616: break; case 46: // s430 @@ -27166,7 +26603,7 @@ private function s429(): bool $this->rec(430); } - goto n1649;} + goto n1617;} $o2 = $this->p; if (!($this->ids[$this->p] === 46)) { @@ -27174,26 +26611,26 @@ private function s429(): bool $this->rec(69); } - goto f1650;} + goto f1618;} $this->p++; if (!$this->s340()) { - goto f1650;} - goto k1650; - f1650: + goto f1618;} + goto k1618; + f1618: $this->p = $o2; - goto n1649; - k1650: - goto a1647; - n1649: + goto n1617; + k1618: + goto a1615; + n1617: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1651;} - goto a1647; - n1651: + goto n1619;} + goto a1615; + n1619: break; } @@ -27201,13 +26638,13 @@ private function s429(): bool $this->rec(429); } - goto f1646; - a1647: - goto k1646; - f1646: + goto f1614; + a1615: + goto k1614; + f1614: $this->p = $o1; return false; - k1646: + k1614: return true; } @@ -27227,16 +26664,16 @@ private function s434(): bool $this->rec(63); } - goto f1415;} + goto f1395;} $this->p++; if (!$this->s425()) { - goto f1415;} - goto k1415; - f1415: + goto f1395;} + goto k1395; + f1395: $this->p = $o1; return false; - k1415: + k1395: return true; } @@ -27256,7 +26693,7 @@ private function s436(): bool $this->rec(100); } - goto f339;} + goto f313;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -27264,15 +26701,15 @@ private function s436(): bool $this->rec(144); } - goto f339;} + goto f313;} $this->p++; if (!$this->s287()) { - goto f339;} + goto f313;} if (!$this->s293()) { - goto f339;} + goto f313;} if (!$this->s296()) { - goto f339;} + goto f313;} // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -27281,7 +26718,7 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f340;} + goto f314;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -27289,7 +26726,7 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f340;} + goto f314;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -27297,20 +26734,20 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f340;} + goto f314;} } if (!$this->s125()) { - goto f340;} - goto k340; - f340: + goto f314;} + goto k314; + f314: $this->p = $o2; - goto f339; - k340: - goto k339; - f339: + goto f313; + k314: + goto k313; + f313: $this->p = $o1; return false; - k339: + k313: return true; } @@ -27330,11 +26767,11 @@ private function s438(): bool $this->rec(144); } - goto f341;} + goto f315;} $this->p++; if (!$this->s320()) { - goto f341;} + goto f315;} // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -27343,7 +26780,7 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f342;} + goto f316;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -27351,7 +26788,7 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f342;} + goto f316;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -27359,20 +26796,20 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f342;} + goto f316;} } if (!$this->s125()) { - goto f342;} - goto k342; - f342: + goto f316;} + goto k316; + f316: $this->p = $o2; - goto f341; - k342: - goto k341; - f341: + goto f315; + k316: + goto k315; + f315: $this->p = $o1; return false; - k341: + k315: return true; } @@ -27387,9 +26824,9 @@ private function s444(): bool $this->f = $this->p; $this->er = []; } - goto n329;} - goto a328; - n329: + goto n303;} + goto a302; + n303: break; case 14: // s445 @@ -27398,7 +26835,7 @@ private function s444(): bool $this->rec(445); } - goto n330;} + goto n304;} $o2 = $this->p; if (!($this->ids[$this->p] === 14)) { @@ -27406,7 +26843,7 @@ private function s444(): bool $this->rec(28); } - goto f331;} + goto f305;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -27414,24 +26851,24 @@ private function s444(): bool $this->rec(144); } - goto f331;} + goto f305;} $this->p++; - goto k331; - f331: + goto k305; + f305: $this->p = $o2; - goto n330; - k331: - goto a328; - n330: + goto n304; + k305: + goto a302; + n304: if (($this->ids[$this->p] === 14)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n332;} - goto a328; - n332: + goto n306;} + goto a302; + n306: break; } @@ -27439,13 +26876,13 @@ private function s444(): bool $this->rec(444); } - goto f327; - a328: - goto k327; - f327: + goto f301; + a302: + goto k301; + f301: $this->p = $o1; return false; - k327: + k301: return true; } @@ -27460,9 +26897,9 @@ private function s449(): bool $this->f = $this->p; $this->er = []; } - goto n335;} - goto a334; - n335: + goto n309;} + goto a308; + n309: break; case 45: // s450 @@ -27471,7 +26908,7 @@ private function s449(): bool $this->rec(450); } - goto n336;} + goto n310;} $o2 = $this->p; if (!($this->ids[$this->p] === 45)) { @@ -27479,7 +26916,7 @@ private function s449(): bool $this->rec(68); } - goto f337;} + goto f311;} $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { @@ -27487,26 +26924,26 @@ private function s449(): bool $this->rec(144); } - goto f337;} + goto f311;} $this->p++; if (!$this->s451()) { - goto f337;} - goto k337; - f337: + goto f311;} + goto k311; + f311: $this->p = $o2; - goto n336; - k337: - goto a334; - n336: + goto n310; + k311: + goto a308; + n310: if (($this->ids[$this->p] === 45)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n338;} - goto a334; - n338: + goto n312;} + goto a308; + n312: break; } @@ -27514,13 +26951,13 @@ private function s449(): bool $this->rec(449); } - goto f333; - a334: - goto k333; - f333: + goto f307; + a308: + goto k307; + f307: $this->p = $o1; return false; - k333: + k307: return true; } @@ -27535,9 +26972,9 @@ private function s451(): bool $this->f = $this->p; $this->er = []; } - goto n570;} - goto a569; - n570: + goto n555;} + goto a554; + n555: break; case 32: case 82: @@ -27547,7 +26984,7 @@ private function s451(): bool $this->rec(452); } - goto n571;} + goto n556;} $o2 = $this->p; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -27555,7 +26992,7 @@ private function s451(): bool $this->rec(16); } - goto f572;} + goto f557;} $this->p++; if (!($this->ids[$this->p] === 33)) { @@ -27563,24 +27000,24 @@ private function s451(): bool $this->rec(53); } - goto f572;} + goto f557;} $this->p++; - goto k572; - f572: + goto k557; + f557: $this->p = $o2; - goto n571; - k572: - goto a569; - n571: + goto n556; + k557: + goto a554; + n556: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n573;} - goto a569; - n573: + goto n558;} + goto a554; + n558: break; } @@ -27588,13 +27025,13 @@ private function s451(): bool $this->rec(451); } - goto f568; - a569: - goto k568; - f568: + goto f553; + a554: + goto k553; + f553: $this->p = $o1; return false; - k568: + k553: return true; } @@ -27614,7 +27051,7 @@ private function s454(): bool $this->rec(119); } - goto f261;} + goto f247;} $this->p++; // s125 @@ -27628,24 +27065,24 @@ private function s454(): bool $this->rec(116); } - goto e264; + goto e250; } $this->p++; } - e264: + e250: if (($this->ids[$this->p] === 80)) { if (!$this->s128()) { - goto n265;} - n265: + goto n251;} + n251: } elseif ($this->p > $this->f) { $this->rec(128); } - goto k261; - f261: + goto k247; + f247: $this->p = $o1; return false; - k261: + k247: return true; } diff --git a/tools/phplrt/GeneratedParser.template.php b/tools/phplrt/GeneratedParser.template.php index 22077b31..2cdf63e2 100644 --- a/tools/phplrt/GeneratedParser.template.php +++ b/tools/phplrt/GeneratedParser.template.php @@ -4,7 +4,6 @@ use PHPStan\PhpDocParser\Ast\Comment; use PHPStan\PhpDocParser\Parser\Phplrt\Token; -use Phplrt\Parser\Context; use function array_keys; use function is_array; use function ksort; @@ -18,7 +17,8 @@ * phplrt would, and building its value along: a method named "b" followed by * the identifier of a rule reads the rule and pushes its value, one named "s" * only reads it. The values are built by the reducers of the class extending - * this one. + * this one, which are given the index of the first and of the last token of + * the lexer the rule has read. * * @internal */ @@ -45,6 +45,9 @@ abstract class GeneratedParser /** @var array the identifier of the token at each position, the last one being -1 */ protected array $ids = []; + /** @var array the index of the token of the lexer at each position */ + protected array $indexes = []; + /** the position the reading is at */ protected int $p = 0; @@ -65,11 +68,6 @@ abstract class GeneratedParser abstract protected function token(int $position): Token; - /** - * The context of whatever has been read from the given position up to the - * given one, or up to the position the reading is at. - */ - abstract protected function context(int $from, ?int $to = null): Context; /*REDUCERS*/ diff --git a/tools/phplrt/ParserGenerator.php b/tools/phplrt/ParserGenerator.php index e4a8ee45..7ea8899a 100644 --- a/tools/phplrt/ParserGenerator.php +++ b/tools/phplrt/ParserGenerator.php @@ -255,7 +255,7 @@ private function body(int $id, bool $build, string $fail): string if ($kept && !$reducer[1]) { return "\$o{$d} = \$this->p;\n" . $this->match($id, false, $fail) - . sprintf("\$this->v[\$this->n++] = \$this->%s(\$this->context(\$o%d));\n", $reducer[0], $d); + . sprintf("\$this->v[\$this->n++] = \$this->%s(%s);\n", $reducer[0], self::span("\$o{$d}")); } $code = ''; @@ -300,9 +300,10 @@ private function body(int $id, bool $build, string $fail): string if ($kept) { $code .= sprintf( - "\$this->v[\$m%1\$d] = \$this->%2\$s(\$this->context(\$o%1\$d), \$this->n === \$m%1\$d + 1 && !\\is_array(\$this->v[\$m%1\$d]) ? [\$this->v[\$m%1\$d]] : \$this->merge(\$m%1\$d));\n\$this->n = \$m%1\$d + 1;\n", + "\$this->v[\$m%1\$d] = \$this->%2\$s(%3\$s, \$this->n === \$m%1\$d + 1 && !\\is_array(\$this->v[\$m%1\$d]) ? [\$this->v[\$m%1\$d]] : \$this->merge(\$m%1\$d));\n\$this->n = \$m%1\$d + 1;\n", $d, $reducer[0], + self::span("\$o{$d}"), ); } @@ -659,7 +660,7 @@ private function push(int $lexeme, bool $build): string $reducer = $this->reducers[$lexeme] ?? null; if ($reducer !== null) { return sprintf( - "\$this->v[\$this->n++] = \$this->%s(\$this->context(\$this->p, \$this->p + 1)%s);\n\$this->p++;\n", + "\$this->v[\$this->n++] = \$this->%s(\$this->indexes[\$this->p], \$this->indexes[\$this->p]%s);\n\$this->p++;\n", $reducer[0], $reducer[1] ? ', [$this->token($this->p)]' : '', ); @@ -684,6 +685,20 @@ private function in(array $tokens): string return sprintf('isset(self::%s[$this->ids[$this->p]])', $name); } + /** + * The index of the first and of the last token of the lexer a rule + * entered at the given position has read up to the position the reading + * is at. A rule that has read nothing ends right before it begins, right + * after what has been read before it. + */ + private static function span(string $origin): string + { + return strtr( + '(O < $this->p ? $this->indexes[O] : (O > 0 ? $this->indexes[O - 1] + 1 : 0)), (O < $this->p ? $this->indexes[$this->p - 1] : (O > 0 ? $this->indexes[O - 1] : -1))', + ['O' => $origin], + ); + } + private static function indent(string $code, int $levels): string { $prefix = str_repeat("\t", $levels); diff --git a/tools/phplrt/build.php b/tools/phplrt/build.php index 1fc20be1..a0f01403 100644 --- a/tools/phplrt/build.php +++ b/tools/phplrt/build.php @@ -60,7 +60,7 @@ $reducers = []; preg_match_all('/function (reduce(\w+))\(([^)]*)\)/', file_get_contents(__DIR__ . '/../../src/Parser/AstBuilder.php'), $matches, PREG_SET_ORDER); foreach ($matches as [, $method, $rule, $parameters]) { - $reducers[$rule] = [$method, substr_count($parameters, '$') > 1]; + $reducers[$rule] = [$method, strpos($parameters, '$children') !== false]; } /** @var array $entrypoints */ @@ -301,8 +301,8 @@ function export($value): string $id = $parser->constants[$name]; $reducerIds[$id] = $reducer; $abstracts[] = $reducer[1] - ? sprintf("\t/**\n\t * @param list \$children\n\t * @return mixed\n\t */\n\tabstract protected function %s(Context \$context, \$children);\n", $reducer[0]) - : sprintf("\t/**\n\t * @return mixed\n\t */\n\tabstract protected function %s(Context \$context);\n", $reducer[0]); + ? sprintf("\t/**\n\t * @param list \$children\n\t * @return mixed\n\t */\n\tabstract protected function %s(int \$begin, int \$end, \$children);\n", $reducer[0]) + : sprintf("\t/**\n\t * @return mixed\n\t */\n\tabstract protected function %s(int \$begin, int \$end);\n", $reducer[0]); } // The tokens no reducer reads: they are only what the other tokens are From 83fdf2fa5739a28e5e1013982511bb60fd0ff828 Mon Sep 17 00:00:00 2001 From: "ondrej@mirtes.cz" Date: Mon, 26 Oct 2026 17:11:34 +0000 Subject: [PATCH 4/4] Generate leaner rule code The generator leaves out token checks the surrounding code already guarantees, and builds children with array_slice() now that no reducer pushes a list onto the value stack. Amp-Thread-ID: https://ampcode.com/threads/T-01a17820-94d1-75c8-9206-2e802d9c0556 --- src/Parser/AstBuilder.php | 6 +- src/Parser/Generated/GeneratedParser.php | 22377 ++++++++------------ tools/phplrt/GeneratedParser.template.php | 24 - tools/phplrt/ParserGenerator.php | 96 +- tools/phplrt/build.php | 15 +- 5 files changed, 9393 insertions(+), 13125 deletions(-) diff --git a/src/Parser/AstBuilder.php b/src/Parser/AstBuilder.php index 051eb3be..07974c5f 100644 --- a/src/Parser/AstBuilder.php +++ b/src/Parser/AstBuilder.php @@ -1057,14 +1057,10 @@ protected function reduceObjectShapeKey(int $begin, int $end, $children): Node /** * A comment read right after the comma separating the items of a shape is * thrown away. - * - * @return list */ - protected function reduceDiscardedComment(int $begin, int $end): array + protected function reduceDiscardedComment(int $begin, int $end): void { unset($this->comments[$begin]); - - return []; } // ------------------------------------------------------------------------- diff --git a/src/Parser/Generated/GeneratedParser.php b/src/Parser/Generated/GeneratedParser.php index c297d8f5..ba820105 100644 --- a/src/Parser/Generated/GeneratedParser.php +++ b/src/Parser/Generated/GeneratedParser.php @@ -5,7 +5,6 @@ use PHPStan\PhpDocParser\Ast\Comment; use PHPStan\PhpDocParser\Parser\Phplrt\Token; use function array_keys; -use function is_array; use function ksort; /** @@ -50,7 +49,6 @@ abstract class GeneratedParser private const T3bf4df75 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; private const T4d756b3a = [50=>true,85=>true]; private const T7dfbf2bf = [22=>true,23=>true]; - private const T24d0f25b = [21=>true,22=>true]; private const T29c7f960 = [25=>true,26=>true]; private const T34c34eee = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,30=>true,32=>true,82=>true]; private const T46ee5f48 = [78=>true,79=>true]; @@ -65,7 +63,6 @@ abstract class GeneratedParser private const T885cd349 = [36=>true,84=>true]; private const T977f027a = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,32=>true,82=>true]; private const T1490fe7f = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,23=>true,24=>true,38=>true,51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true,83=>true]; - private const T4020d016 = [3=>true,4=>true,6=>true,7=>true,8=>true]; private const T4546fd6c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true]; private const T5448ab4c = [41=>true,80=>true]; private const T7680fe2e = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,82=>true]; @@ -73,7 +70,6 @@ abstract class GeneratedParser private const T8458d590 = [28=>true,29=>true,41=>true,80=>true]; private const T34048a70 = [38=>true,83=>true]; private const T942497bd = [76=>true,77=>true,78=>true,79=>true]; - private const T1921405e = [1=>true,2=>true,5=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true]; private const T9373805c = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,24=>true,26=>true,27=>true,30=>true,32=>true,42=>true,82=>true]; private const T96867045 = [1=>true,2=>true,3=>true,4=>true,5=>true,6=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,24=>true]; private const Ta8d79561 = [3=>true,4=>true,8=>true]; @@ -92,7 +88,6 @@ abstract class GeneratedParser private const Tf4b693bf = [51=>true,52=>true,53=>true,54=>true,55=>true,56=>true,57=>true,58=>true,59=>true,60=>true,61=>true,62=>true,63=>true,64=>true,65=>true,66=>true,67=>true,68=>true,69=>true,70=>true,71=>true,72=>true,73=>true,74=>true,75=>true,76=>true,77=>true,78=>true,79=>true]; private const Tf6aec6a4 = [76=>true,77=>true]; private const Tf86de613 = [32=>true,34=>true,82=>true,86=>true]; - private const Tfc0ac6dd = [3=>true,4=>true,5=>true,6=>true,7=>true,8=>true,9=>true,10=>true,11=>true,12=>true,13=>true,14=>true,15=>true,16=>true,17=>true,18=>true,19=>true,20=>true,21=>true,22=>true,24=>true,25=>true,30=>true,32=>true,82=>true]; /** the tokens each rule is expected to begin with */ private const EXPECTED = [0=>[48],1=>[48],3=>[80],7=>[49],8=>[76,77,78,79],9=>[76,77,78,79],10=>[76,77,78,79],11=>[76,77],12=>[76,77],13=>[77],14=>[76],16=>[32,82],17=>[32],18=>[82],21=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,81,82,83,84,85,86],22=>[24],23=>[12],24=>[11],25=>[9],26=>[10],27=>[13],28=>[14],29=>[5],30=>[2],31=>[1],32=>[7],33=>[18],34=>[8],35=>[3],36=>[4],37=>[6],38=>[16],39=>[15],40=>[17],41=>[19],42=>[20],43=>[21],44=>[22],45=>[23],46=>[25],47=>[26],48=>[27],49=>[28],50=>[29],51=>[30],52=>[31],53=>[33],54=>[34],55=>[86],56=>[35],57=>[36],58=>[84],59=>[37],60=>[38],61=>[83],62=>[39],63=>[40],64=>[41],65=>[42],66=>[43],67=>[44],68=>[45],69=>[46],70=>[47],71=>[50],72=>[85],73=>[81],74=>[76,78],76=>[49,80],77=>[49,80],78=>[80],79=>[80],81=>[49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],82=>[79],83=>[78],84=>[72],85=>[51],86=>[54],87=>[55],88=>[52],89=>[53],90=>[75],91=>[70],92=>[71],93=>[73],94=>[57],95=>[56],96=>[61],97=>[65],98=>[63],99=>[69],100=>[62],101=>[68],102=>[64],103=>[74],104=>[66],105=>[58],106=>[59],107=>[60],108=>[67],109=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,81,82,83,84,85,86],110=>[80],111=>[80],113=>[80],114=>[80],115=>[80],116=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],118=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],119=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],121=>[76,78],123=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],124=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],128=>[80],129=>[80],130=>[80],131=>[80],132=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,85,86],133=>[76,78],134=>[76,77,78,79],135=>[78,79],136=>[78,79],137=>[32,82],138=>[32,82],141=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],142=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],143=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],144=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],145=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],146=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],148=>[38,83],149=>[38,83],151=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],152=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],153=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],154=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24],155=>[22,23],156=>[22],158=>[22,23],159=>[22,23],160=>[1,2,3,4,5,6,8,9,10,11,12,13,14,24],162=>[7,15,16,17,18],163=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,50,85],164=>[50],166=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],168=>[50,85],169=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],171=>[46,47],172=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],173=>[19],174=>[20],176=>[40],177=>[40],178=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,39,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],179=>[39],180=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],182=>[40],183=>[40],184=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,33,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],185=>[33],186=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,83],187=>[76,77],189=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],190=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],191=>[72],192=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,30,32,42,82],193=>[26,27,42],194=>[26,27,42],195=>[26,27,42],198=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],199=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],200=>[30],201=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],202=>[32,82],204=>[41,80],205=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,30,32,82],206=>[26],208=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],209=>[12],210=>[12],213=>[28,29],214=>[28],215=>[28],216=>[28],218=>[29],219=>[29],220=>[29],223=>[36,84],224=>[36,84],225=>[36],227=>[36,84],228=>[36,84],229=>[25],230=>[7],231=>[38],233=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],234=>[42],235=>[34,86],236=>[34,86],237=>[34,86],238=>[34,86],240=>[40],243=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],244=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],245=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],246=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,24],247=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],249=>[43],252=>[40],254=>[41],255=>[3,4,8],256=>[3,4,8],257=>[38],259=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,42,82],260=>[42],261=>[34,86],262=>[34,86],263=>[34,86],264=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],266=>[40],267=>[6],268=>[38],270=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],271=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],272=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],274=>[40],275=>[40],276=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,39],277=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24],278=>[3,4,6,7,8],279=>[3,4,6,7,8],281=>[32,34,36,82,84],282=>[34],283=>[34],284=>[34],285=>[34],286=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],287=>[13,14],288=>[13],289=>[14],293=>[5],294=>[5],296=>[46],297=>[46],300=>[40],301=>[40],302=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,35],303=>[35],304=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],306=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],307=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],311=>[40],312=>[40],313=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,33,82],314=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],315=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],316=>[32,82],317=>[3,4,6,7,8],318=>[34,36,84,86],319=>[34,86],320=>[34,86],321=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,50,82,85],322=>[1,2],323=>[1,2],324=>[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],327=>[40],328=>[40],329=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,35,50,82,85],330=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,50,82,85],331=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],332=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],333=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],335=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],337=>[7,18,36,84],338=>[7,18],339=>[7,18],340=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],341=>[19],342=>[20],343=>[21,22],344=>[16],345=>[15],346=>[17],347=>[7,18],349=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],350=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,36,84],351=>[44],352=>[44],355=>[40],356=>[40],357=>[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,24],360=>[43],361=>[36,84],362=>[34],363=>[34],364=>[32,82],366=>[1,2,5,9,10,11,12,13,14,15,16,17,18,24],367=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,32,82],368=>[28,29,41,80],369=>[28,29,41,80],370=>[28,29],371=>[28],372=>[28],373=>[28],376=>[28],377=>[29],378=>[29],379=>[29],382=>[29],384=>[75],385=>[25,26],386=>[25,26],387=>[25,26],390=>[70],391=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],392=>[71],393=>[73],394=>[57],395=>[56],396=>[61],397=>[60],398=>[63],399=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],400=>[67],401=>[55],402=>[51],403=>[26],404=>[54],405=>[52],406=>[53],407=>[65],408=>[69],409=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],410=>[9],412=>[28,29,32,34,36,41,43,80,82,84],413=>[28,29,41,80],414=>[28,29],415=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,32,34,82,86],416=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],417=>[32,34,82,86],418=>[34,86],419=>[34,86],421=>[40],422=>[40],424=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],425=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,26,27,30,32,42,82],426=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],427=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],428=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,30,32,82],429=>[46],430=>[46],431=>[26,27,42],433=>[40],434=>[40],435=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,32,82],436=>[62],437=>[68],438=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24],439=>[64],440=>[74],441=>[66],442=>[66],443=>[58],444=>[14],445=>[14],446=>[59],448=>[25,26],449=>[45],450=>[45],451=>[32,82],452=>[32,82],454=>[51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],458=>[49,80],459=>[49]]; @@ -256,10 +251,7 @@ abstract protected function reduceObjectShapeItem(int $begin, int $end, $childre */ abstract protected function reduceObjectShapeKey(int $begin, int $end, $children); - /** - * @return mixed - */ - abstract protected function reduceDiscardedComment(int $begin, int $end); + abstract protected function reduceDiscardedComment(int $begin, int $end): void; /** * @param list $children @@ -494,29 +486,6 @@ private function rec(int $rule): void $this->er[] = $rule; } - /** - * The values pushed since the given size, the lists among them flattened. - * - * @return list - */ - private function merge(int $from): array - { - $result = []; - for ($i = $from, $n = $this->n; $i < $n; $i++) { - $value = $this->v[$i]; - if (!is_array($value)) { - $result[] = $value; - continue; - } - - foreach ($value as $nested) { - $result[] = $nested; - } - } - - return $result; - } - /** * Reads the given rule from the given position. * @@ -558,13 +527,6 @@ private function b0(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 48)) { - if ($this->p >= $this->f) { - $this->rec(1); - } - - goto f1;} - $this->p++; if (($this->ids[$this->p] === 80)) { $this->p++; @@ -589,7 +551,7 @@ private function b0(): bool $this->comments = $cs1; return false; k1: - $this->v[$m1] = $this->reducePhpDoc(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + $this->v[$m1] = $this->reducePhpDoc(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -606,10 +568,10 @@ private function b5(): bool $this->f = $this->p; $this->er = []; } - goto f186;} + goto f218;} } if (!$this->b8()) { - goto f186;} + goto f218;} // b460 $o2 = $this->p; $m2 = $this->n; @@ -626,29 +588,29 @@ private function b5(): bool $this->f = $this->p; $this->er = []; } - goto f189;} + goto f221;} } if (!$this->b8()) { - goto f189;} - goto k189; - f189: + goto f221;} + goto k221; + f221: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto e188; - k189: + goto e220; + k221: if ($this->p === $b2) { - goto e188; + goto e220; } } - e188: - goto k186; - f186: + e220: + goto k218; + f218: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k186: + k218: return true; } @@ -665,7 +627,7 @@ private function b8(): bool $m2 = $this->n; $cs2 = $this->comments; if (!$this->b189()) { - goto f437;} + goto f504;} // b458 $o3 = $this->p; $m3 = $this->n; @@ -679,13 +641,13 @@ private function b8(): bool $this->rec(7); } - goto n440;} - goto a439; - n440: + goto n507;} + goto a506; + n507: break; case 80: $this->p++; - goto a439; + goto a506; break; } @@ -693,39 +655,55 @@ private function b8(): bool $this->rec(458); } - goto f438; - a439: - goto k438; - f438: + goto f505; + a506: + goto k505; + f505: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f437; - k438: - goto k437; - f437: + goto f504; + k505: + goto k504; + f504: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n436; - k437: - goto a435; - n436: + goto n503; + k504: + goto a502; + n503: break; case 76: case 77: case 78: case 79: - if (!$this->b9()) { - goto n441;} - goto a435; - n441: + // b9 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b10()) { + goto f509;} + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + goto k509; + f509: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n508; + k509: + goto a502; + n508: // b188 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b189()) { - goto f443;} + goto f511;} // b458 $o3 = $this->p; $m3 = $this->n; @@ -739,13 +717,13 @@ private function b8(): bool $this->rec(7); } - goto n446;} - goto a445; - n446: + goto n514;} + goto a513; + n514: break; case 80: $this->p++; - goto a445; + goto a513; break; } @@ -753,24 +731,24 @@ private function b8(): bool $this->rec(458); } - goto f444; - a445: - goto k444; - f444: + goto f512; + a513: + goto k512; + f512: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f443; - k444: - goto k443; - f443: + goto f511; + k512: + goto k511; + f511: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n442; - k443: - goto a435; - n442: + goto n510; + k511: + goto a502; + n510: break; } @@ -778,90 +756,15 @@ private function b8(): bool $this->rec(8); } - goto f434; - a435: - goto k434; - f434: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k434: - - return true; - } - - private function b9(): bool - { - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(9); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - // b10 - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(10); - } - - goto f715;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 76: - case 77: - if (!$this->b11()) { - goto n718;} - goto a717; - n718: - if (!$this->b134()) { - goto n719;} - goto a717; - n719: - break; - case 78: - case 79: - if (!$this->b134()) { - goto n720;} - goto a717; - n720: - break; - } - - if ($this->p > $this->f) { - $this->rec(10); - } - - goto f716; - a717: - goto k716; - f716: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f715; - k716: - if (($this->ids[$this->p] === 80)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(3); - } - goto k715; - f715: + goto f501; + a502: + goto k501; + f501: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k715: + k501: return true; } @@ -930,13 +833,6 @@ private function b11(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(12); - } - - goto f204;} - $this->v[$this->n++] = $this->token($this->p++); if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -944,7 +840,7 @@ private function b11(): bool $this->f = $this->p; $this->er = []; } - goto f204;} + goto f235;} } // b19 $o2 = $this->p; @@ -959,33 +855,43 @@ private function b11(): bool $this->rec(21); } - goto e208; + goto e239; } $this->p++; } - e208: + e239: if (!$this->s74()) { - goto f206;} - goto k206; - f206: + goto f237;} + goto k237; + f237: $this->p = $o3; - goto f204; - k206: + goto f235; + k237: $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k204; - f204: + goto k235; + f235: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k204: - $this->v[$m1] = $this->reduceGenericTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k235: + $this->v[$m1] = $this->reduceGenericTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } + private function b125(): bool + { + $o1 = $this->p; + if (!$this->s125()) { + return false;} + $this->v[$this->n++] = $this->reduceText(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1))); + + return true; + } + private function b134(): bool { if (!isset(self::T942497bd[$this->ids[$this->p]])) { @@ -1003,17 +909,95 @@ private function b134(): bool break; case 76: case 77: - if (!$this->b187()) { - goto n211;} - goto a210; - n211: + // b187 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b138()) { + goto f243;} + // b19 + $o3 = $this->p; + // s19 + $o4 = $this->p; + // s20 + $o5 = $this->p; + while (true) { + $b5 = $this->p; + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($b5 > $this->f) { + $this->rec(21); + } + + goto e247; + } + + $this->p++; + } + e247: + if (!$this->s74()) { + goto f245;} + goto k245; + f245: + $this->p = $o4; + goto f243; + k245: + $this->v[$this->n++] = $this->reduceDoctrineText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k243; + f243: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n242; + k243: + goto a241; + n242: break; case 78: case 79: - if (!$this->b135()) { - goto n212;} - goto a210; - n212: + // b135 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b137()) { + goto f249;} + // b19 + $o3 = $this->p; + // s19 + $o4 = $this->p; + // s20 + $o5 = $this->p; + while (true) { + $b5 = $this->p; + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($b5 > $this->f) { + $this->rec(21); + } + + goto e253; + } + + $this->p++; + } + e253: + if (!$this->s74()) { + goto f251;} + goto k251; + f251: + $this->p = $o4; + goto f249; + k251: + $this->v[$this->n++] = $this->reduceDoctrineText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k249; + f249: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n248; + k249: + goto a241; + n248: break; } @@ -1021,45 +1005,26 @@ private function b134(): bool $this->rec(134); } - goto f209; - a210: - goto k209; - f209: + goto f240; + a241: + goto k240; + f240: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k209: - $this->v[$m1] = $this->reduceDoctrineTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k240: + $this->v[$m1] = $this->reduceDoctrineTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } - private function b135(): bool + private function b137(): bool { - if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(135); - } - - return false;} - $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(136); - } - - goto f452;} - - $this->v[$this->n++] = $this->token($this->p++); - // b137 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; switch ($this->ids[$this->p]) { default: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -1067,24 +1032,24 @@ private function b135(): bool $this->f = $this->p; $this->er = []; } - goto n455;} - goto a454; - n455: + goto n526;} + goto a525; + n526: break; case 32: case 82: if (!$this->b138()) { - goto n456;} - goto a454; - n456: + goto n527;} + goto a525; + n527: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n457;} - goto a454; - n457: + goto n528;} + goto a525; + n528: break; } @@ -1092,49 +1057,15 @@ private function b135(): bool $this->rec(137); } - goto f453; - a454: - goto k453; - f453: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f452; - k453: - // b19 - $o2 = $this->p; - // s19 - $o3 = $this->p; - // s20 - $o4 = $this->p; - while (true) { - $b4 = $this->p; - if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { - if ($b4 > $this->f) { - $this->rec(21); - } - - goto e461; - } - - $this->p++; - } - e461: - if (!$this->s74()) { - goto f459;} - goto k459; - f459: - $this->p = $o3; - goto f452; - k459: - $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k452; - f452: + goto f524; + a525: + goto k524; + f524: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k452: + k524: return true; } @@ -1151,13 +1082,6 @@ private function b138(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f721;} - $this->v[$this->n++] = $this->token($this->p++); // b139 $o2 = $this->p; @@ -1170,12 +1094,12 @@ private function b138(): bool $this->rec(3); } - goto e723; + goto e518; } $this->p++; } - e723: + e518: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { // b141 if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { @@ -1183,13 +1107,13 @@ private function b138(): bool $this->rec(141); } - goto n724;} + goto n519;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b142()) { - goto f725;} + goto f520;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -1201,27 +1125,27 @@ private function b138(): bool $this->rec(3); } - goto e727; + goto e522; } $this->p++; } - e727: + e522: if (($this->ids[$this->p] === 40)) { if (!$this->b182()) { - goto n728;} - n728: + goto n523;} + n523: } elseif ($this->p > $this->f) { $this->rec(182); } - goto k725; - f725: + goto k520; + f520: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n724; - k725: - n724: + goto n519; + k520: + n519: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -1230,16 +1154,16 @@ private function b138(): bool $this->rec(53); } - goto f721;} + goto f516;} $this->v[$this->n++] = $this->token($this->p++); - goto k721; - f721: + goto k516; + f516: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k721: + k516: return true; } @@ -1288,10 +1212,22 @@ private function b142(): bool case 77: case 78: case 79: - if (!$this->b146()) { - goto n974;} - goto a973; - n974: + // b146 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n787;} + n787: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a784; + n785: break; case 1: case 2: @@ -1308,17 +1244,37 @@ private function b142(): bool case 14: case 24: if (!$this->b143()) { - goto n975;} - goto a973; - n975: - if (!$this->b172()) { - goto n976;} - goto a973; - n976: + goto n788;} + goto a784; + n788: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f790;} + } + goto k790; + f790: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n789; + k790: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a784; + n789: if (!$this->b160()) { - goto n977;} - goto a973; - n977: + goto n791;} + goto a784; + n791: break; case 7: case 15: @@ -1326,37 +1282,57 @@ private function b142(): bool case 17: case 18: if (!$this->b143()) { - goto n978;} - goto a973; - n978: - if (!$this->b172()) { - goto n979;} - goto a973; - n979: - break; - case 22: + goto n792;} + goto a784; + n792: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f794;} + } + goto k794; + f794: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n793; + k794: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a784; + n793: + break; + case 22: case 23: if (!$this->b155()) { - goto n980;} - goto a973; - n980: + goto n795;} + goto a784; + n795: break; case 38: case 83: if (!$this->b148()) { - goto n981;} - goto a973; - n981: + goto n796;} + goto a784; + n796: break; case 19: $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a973; + goto a784; break; case 20: $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a973; + goto a784; break; } @@ -1364,16 +1340,16 @@ private function b142(): bool $this->rec(142); } - goto f972; - a973: - goto k972; - f972: + goto f783; + a784: + goto k783; + f783: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k972: - $this->v[$m1] = $this->reduceDoctrineArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k783: + $this->v[$m1] = $this->reduceDoctrineArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -1391,13 +1367,6 @@ private function b143(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1275;} - $this->v[$this->n++] = $this->token($this->p++); // b139 $o2 = $this->p; @@ -1410,18 +1379,18 @@ private function b143(): bool $this->rec(3); } - goto e1277; + goto e1055; } $this->p++; } - e1277: + e1055: if (!($this->ids[$this->p] === 46)) { if ($this->p >= $this->f) { $this->rec(69); } - goto f1275;} + goto f1053;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1435,21 +1404,21 @@ private function b143(): bool $this->rec(3); } - goto e1279; + goto e1057; } $this->p++; } - e1279: + e1057: if (!$this->b145()) { - goto f1275;} - goto k1275; - f1275: + goto f1053;} + goto k1053; + f1053: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1275: + k1053: return true; } @@ -1498,10 +1467,22 @@ private function b145(): bool case 77: case 78: case 79: - if (!$this->b146()) { - goto n1558;} - goto a1557; - n1558: + // b146 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n1337;} + n1337: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1334; + n1335: break; case 1: case 2: @@ -1517,48 +1498,88 @@ private function b145(): bool case 13: case 14: case 24: - if (!$this->b172()) { - goto n1559;} - goto a1557; - n1559: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1339;} + } + goto k1339; + f1339: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1338; + k1339: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1334; + n1338: if (!$this->b160()) { - goto n1560;} - goto a1557; - n1560: + goto n1340;} + goto a1334; + n1340: break; case 7: case 15: case 16: case 17: case 18: - if (!$this->b172()) { - goto n1561;} - goto a1557; - n1561: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1342;} + } + goto k1342; + f1342: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1341; + k1342: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1334; + n1341: break; case 22: case 23: if (!$this->b155()) { - goto n1562;} - goto a1557; - n1562: + goto n1343;} + goto a1334; + n1343: break; case 38: case 83: if (!$this->b148()) { - goto n1563;} - goto a1557; - n1563: + goto n1344;} + goto a1334; + n1344: break; case 19: $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1557; + goto a1334; break; case 20: $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1557; + goto a1334; break; } @@ -1566,55 +1587,15 @@ private function b145(): bool $this->rec(145); } - goto f1556; - a1557: - goto k1556; - f1556: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1556: - - return true; - } - - private function b146(): bool - { - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f1273;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->b138()) { - goto n1274;} - n1274: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k1273; - f1273: + goto f1333; + a1334: + goto k1333; + f1333: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1273: - $this->v[$m1] = $this->reduceDoctrineNestedAnnotation(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k1333: return true; } @@ -1631,13 +1612,6 @@ private function b148(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(149); - } - - goto f1285;} - $this->v[$this->n++] = $this->token($this->p++); // b139 $o2 = $this->p; @@ -1650,12 +1624,12 @@ private function b148(): bool $this->rec(3); } - goto e1287; + goto e1068; } $this->p++; } - e1287: + e1068: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { // b151 if (!isset(self::T1490fe7f[$this->ids[$this->p]])) { @@ -1663,13 +1637,13 @@ private function b148(): bool $this->rec(151); } - goto n1288;} + goto n1069;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b152()) { - goto f1289;} + goto f1070;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -1681,27 +1655,27 @@ private function b148(): bool $this->rec(3); } - goto e1291; + goto e1072; } $this->p++; } - e1291: + e1072: if (($this->ids[$this->p] === 40)) { if (!$this->b176()) { - goto n1292;} - n1292: + goto n1073;} + n1073: } elseif ($this->p > $this->f) { $this->rec(176); } - goto k1289; - f1289: + goto k1070; + f1070: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1288; - k1289: - n1288: + goto n1069; + k1070: + n1069: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -1710,17 +1684,17 @@ private function b148(): bool $this->rec(62); } - goto f1285;} + goto f1066;} $this->v[$this->n++] = $this->token($this->p++); - goto k1285; - f1285: + goto k1066; + f1066: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1285: - $this->v[$m1] = $this->reduceDoctrineArray(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1066: + $this->v[$m1] = $this->reduceDoctrineArray(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -1770,10 +1744,22 @@ private function b152(): bool case 77: case 78: case 79: - if (!$this->b146()) { - goto n1570;} - goto a1569; - n1570: + // b146 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!$this->b138()) { + goto n1349;} + n1349: + } elseif ($this->p > $this->f) { + $this->rec(138); + } + $this->v[$m2] = $this->reduceDoctrineNestedAnnotation(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1346; + n1347: break; case 1: case 2: @@ -1790,17 +1776,37 @@ private function b152(): bool case 14: case 24: if (!$this->b153()) { - goto n1571;} - goto a1569; - n1571: - if (!$this->b172()) { - goto n1572;} - goto a1569; - n1572: + goto n1350;} + goto a1346; + n1350: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1352;} + } + goto k1352; + f1352: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1351; + k1352: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1346; + n1351: if (!$this->b160()) { - goto n1573;} - goto a1569; - n1573: + goto n1353;} + goto a1346; + n1353: break; case 7: case 15: @@ -1808,51 +1814,71 @@ private function b152(): bool case 17: case 18: if (!$this->b153()) { - goto n1574;} - goto a1569; - n1574: - if (!$this->b172()) { - goto n1575;} - goto a1569; - n1575: + goto n1354;} + goto a1346; + n1354: + // b172 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1356;} + } + goto k1356; + f1356: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1355; + k1356: + $this->v[$m2] = $this->reduceDoctrineIdentifier(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a1346; + n1355: break; case 22: case 23: if (!$this->b153()) { - goto n1576;} - goto a1569; - n1576: + goto n1357;} + goto a1346; + n1357: if (!$this->b155()) { - goto n1577;} - goto a1569; - n1577: + goto n1358;} + goto a1346; + n1358: break; case 38: case 83: if (!$this->b148()) { - goto n1578;} - goto a1569; - n1578: + goto n1359;} + goto a1346; + n1359: break; case 19: $this->v[$this->n++] = $this->reduceDoctrineFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1569; + goto a1346; break; case 20: if (!$this->b153()) { - goto n1579;} - goto a1569; - n1579: + goto n1360;} + goto a1346; + n1360: $this->v[$this->n++] = $this->reduceDoctrineInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); $this->p++; - goto a1569; + goto a1346; break; case 21: if (!$this->b153()) { - goto n1580;} - goto a1569; - n1580: + goto n1361;} + goto a1346; + n1361: break; } @@ -1860,16 +1886,16 @@ private function b152(): bool $this->rec(152); } - goto f1568; - a1569: - goto k1568; - f1568: + goto f1345; + a1346: + goto k1345; + f1345: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1568: - $this->v[$m1] = $this->reduceDoctrineArrayItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1345: + $this->v[$m1] = $this->reduceDoctrineArrayItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -1888,7 +1914,7 @@ private function b153(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b154()) { - goto f1706;} + goto f1605;} // b139 $o2 = $this->p; $m2 = $this->n; @@ -1900,18 +1926,18 @@ private function b153(): bool $this->rec(3); } - goto e1708; + goto e1607; } $this->p++; } - e1708: + e1607: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1706;} + goto f1605;} $this->v[$this->n++] = $this->token($this->p++); // b139 @@ -1925,21 +1951,21 @@ private function b153(): bool $this->rec(3); } - goto e1710; + goto e1609; } $this->p++; } - e1710: + e1609: if (!$this->b145()) { - goto f1706;} - goto k1706; - f1706: + goto f1605;} + goto k1605; + f1605: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1706: + k1605: return true; } @@ -1974,27 +2000,13 @@ private function b154(): bool case 14: case 24: if (!$this->b160()) { - goto n1751;} - goto a1750; - n1751: + goto n1723;} + goto a1722; + n1723: // b169 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(169); - } - - goto n1752;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1753;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -2002,17 +2014,17 @@ private function b154(): bool $this->f = $this->p; $this->er = []; } - goto f1753;} + goto f1725;} } - goto k1753; - f1753: + goto k1725; + f1725: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1752; - k1753: - goto a1750; - n1752: + goto n1724; + k1725: + goto a1722; + n1724: break; case 7: case 15: @@ -2020,23 +2032,9 @@ private function b154(): bool case 17: case 18: // b169 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(169); - } - - goto n1754;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1755;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -2044,32 +2042,32 @@ private function b154(): bool $this->f = $this->p; $this->er = []; } - goto f1755;} + goto f1727;} } - goto k1755; - f1755: + goto k1727; + f1727: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1754; - k1755: - goto a1750; - n1754: + goto n1726; + k1727: + goto a1722; + n1726: break; case 22: case 23: if (!$this->b155()) { - goto n1756;} - goto a1750; - n1756: + goto n1728;} + goto a1722; + n1728: break; case 20: $this->v[$this->n++] = $this->token($this->p++); - goto a1750; + goto a1722; break; case 21: $this->v[$this->n++] = $this->token($this->p++); - goto a1750; + goto a1722; break; } @@ -2077,16 +2075,16 @@ private function b154(): bool $this->rec(154); } - goto f1749; - a1750: - goto k1749; - f1749: + goto f1721; + a1722: + goto k1721; + f1721: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1749: - $this->v[$m1] = $this->reduceDoctrineArrayKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1721: + $this->v[$m1] = $this->reduceDoctrineArrayKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -2108,106 +2106,78 @@ private function b155(): bool default: break; case 22: - if (!$this->b156()) { - goto n1284;} - goto a1283; - n1284: - break; - case 23: + // b156 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; $this->v[$this->n++] = $this->token($this->p++); - goto a1283; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f1282; - a1283: - goto k1282; - f1282: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1282: - $this->v[$m1] = $this->reduceDoctrineString(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b156(): bool - { - if (!($this->ids[$this->p] === 22)) { - if ($this->p > $this->f) { - $this->rec(156); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 22)) { - if ($this->p >= $this->f) { - $this->rec(44); - } + if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + // b158 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(158); + } - goto f1564;} + goto n1063;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(159); + } - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - // b158 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(158); - } + goto e1065; + } - goto n1565;} + $this->v[$this->n++] = $this->token($this->p++); - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(159); + $k3++; } + e1065: - goto e1567; + if ($k3 < 1) { + goto f1064; + } + goto k1064; + f1064: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto n1063; + k1064: + n1063: + } elseif ($this->p > $this->f) { + $this->rec(158); } - + goto a1060; + n1061: + break; + case 23: $this->v[$this->n++] = $this->token($this->p++); + goto a1060; + break; + } - $k2++; - } - e1567: - - if ($k2 < 1) { - goto f1566; - } - goto k1566; - f1566: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1565; - k1566: - n1565: - } elseif ($this->p > $this->f) { - $this->rec(158); + if ($this->p > $this->f) { + $this->rec(155); } - goto k1564; - f1564: + + goto f1059; + a1060: + goto k1059; + f1059: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1564: + k1059: + $this->v[$m1] = $this->reduceDoctrineString(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } @@ -2230,14 +2200,14 @@ private function b160(): bool $this->f = $this->p; $this->er = []; } - goto f1281;} + goto f1058;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1281;} + goto f1058;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 43)) { @@ -2245,19 +2215,19 @@ private function b160(): bool $this->rec(66); } - goto f1281;} + goto f1058;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b163()) { - goto f1281;} - goto k1281; - f1281: + goto f1058;} + goto k1058; + f1058: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1281: - $this->v[$m1] = $this->reduceDoctrineConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1058: + $this->v[$m1] = $this->reduceDoctrineConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -2297,82 +2267,30 @@ private function b163(): bool case 17: case 18: case 24: - // b166 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(166); - } - - goto n693;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f694;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T4d756b3a[$this->ids[$this->p]])) { - if (!$this->b168()) { - goto n695;} - n695: - } elseif ($this->p > $this->f) { - $this->rec(168); - } - goto k694; - f694: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n693; - k694: - goto a692; - n693: + if (!$this->b166()) { + goto n753;} + goto a752; + n753: break; case 50: // b164 - if (!($this->ids[$this->p] === 50)) { - if ($this->p > $this->f) { - $this->rec(164); - } - - goto n696;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 50)) { - if ($this->p >= $this->f) { - $this->rec(71); - } - - goto f697;} - $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T83e30518[$this->ids[$this->p]])) { if (!$this->b166()) { - goto n698;} - n698: + goto n756;} + n756: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k697; - f697: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n696; - k697: - goto a692; - n696: + goto a752; + n754: break; case 85: $this->v[$this->n++] = $this->token($this->p++); - goto a692; + goto a752; break; } @@ -2380,53 +2298,15 @@ private function b163(): bool $this->rec(163); } - goto f691; - a692: - goto k691; - f691: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k691: - - return true; - } - - private function b164(): bool - { - if (!($this->ids[$this->p] === 50)) { - if ($this->p > $this->f) { - $this->rec(164); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 50)) { - if ($this->p >= $this->f) { - $this->rec(71); - } - - goto f1269;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T83e30518[$this->ids[$this->p]])) { - if (!$this->b166()) { - goto n1270;} - n1270: - } elseif ($this->p > $this->f) { - $this->rec(166); - } - goto k1269; - f1269: + goto f751; + a752: + goto k751; + f751: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1269: + k751: return true; } @@ -2443,28 +2323,14 @@ private function b166(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f947;} - $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T4d756b3a[$this->ids[$this->p]])) { if (!$this->b168()) { - goto n948;} - n948: + goto n1044;} + n1044: } elseif ($this->p > $this->f) { $this->rec(168); } - goto k947; - f947: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k947: return true; } @@ -2485,14 +2351,41 @@ private function b168(): bool default: break; case 50: - if (!$this->b164()) { - goto n946;} - goto a945; - n946: + // b164 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T83e30518[$this->ids[$this->p]])) { + // b166 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + goto n1330;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { + if (!$this->b168()) { + goto n1332;} + n1332: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + n1330: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto a1327; + n1328: break; case 85: $this->v[$this->n++] = $this->token($this->p++); - goto a945; + goto a1327; break; } @@ -2500,56 +2393,15 @@ private function b168(): bool $this->rec(168); } - goto f944; - a945: - goto k944; - f944: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k944: - - return true; - } - - private function b172(): bool - { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1280;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1280;} - } - goto k1280; - f1280: + goto f1326; + a1327: + goto k1326; + f1326: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1280: - $this->v[$m1] = $this->reduceDoctrineIdentifier(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k1326: return true; } @@ -2574,7 +2426,7 @@ private function b176(): bool $this->rec(177); } - goto e1582; + goto e1363; } // b177 @@ -2583,18 +2435,11 @@ private function b176(): bool $this->rec(177); } - goto e1582;} + goto e1363;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1583;} - $this->v[$this->n++] = $this->token($this->p++); // b139 $o3 = $this->p; @@ -2607,40 +2452,40 @@ private function b176(): bool $this->rec(3); } - goto e1585; + goto e1366; } $this->p++; } - e1585: + e1366: if (!$this->b178()) { - goto f1583;} - goto k1583; - f1583: + goto f1364;} + goto k1364; + f1364: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1582; - k1583: + goto e1363; + k1364: if ($this->p === $b1) { $k1 = 1; - goto e1582; + goto e1363; } $k1++; } - e1582: + e1363: if ($k1 < 1) { - goto f1581; + goto f1362; } - goto k1581; - f1581: + goto k1362; + f1362: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1581: + k1362: return true; } @@ -2658,13 +2503,13 @@ private function b178(): bool $this->rec(180); } - goto n1713;} + goto n1612;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b152()) { - goto f1714;} + goto f1613;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -2676,21 +2521,21 @@ private function b178(): bool $this->rec(3); } - goto e1716; + goto e1615; } $this->p++; } - e1716: - goto k1714; - f1714: + e1615: + goto k1613; + f1613: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1713; - k1714: - goto a1712; - n1713: + goto n1612; + k1613: + goto a1611; + n1612: break; case 0: case 25: @@ -2731,9 +2576,9 @@ private function b178(): bool $this->rec(62); } - goto n1717;} - goto a1712; - n1717: + goto n1616;} + goto a1611; + n1616: break; } @@ -2741,15 +2586,15 @@ private function b178(): bool $this->rec(178); } - goto f1711; - a1712: - goto k1711; - f1711: + goto f1610; + a1611: + goto k1610; + f1610: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1711: + k1610: return true; } @@ -2774,7 +2619,7 @@ private function b182(): bool $this->rec(183); } - goto e983; + goto e798; } // b183 @@ -2783,18 +2628,11 @@ private function b182(): bool $this->rec(183); } - goto e983;} + goto e798;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f984;} - $this->v[$this->n++] = $this->token($this->p++); // b139 $o3 = $this->p; @@ -2807,40 +2645,40 @@ private function b182(): bool $this->rec(3); } - goto e986; + goto e801; } $this->p++; } - e986: + e801: if (!$this->b184()) { - goto f984;} - goto k984; - f984: + goto f799;} + goto k799; + f799: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e983; - k984: + goto e798; + k799: if ($this->p === $b1) { $k1 = 1; - goto e983; + goto e798; } $k1++; } - e983: + e798: if ($k1 < 1) { - goto f982; + goto f797; } - goto k982; - f982: + goto k797; + f797: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k982: + k797: return true; } @@ -2858,13 +2696,13 @@ private function b184(): bool $this->rec(186); } - goto n1295;} + goto n1076;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b142()) { - goto f1296;} + goto f1077;} // b139 $o3 = $this->p; $m3 = $this->n; @@ -2876,21 +2714,21 @@ private function b184(): bool $this->rec(3); } - goto e1298; + goto e1079; } $this->p++; } - e1298: - goto k1296; - f1296: + e1079: + goto k1077; + f1077: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1295; - k1296: - goto a1294; - n1295: + goto n1076; + k1077: + goto a1075; + n1076: break; case 0: case 21: @@ -2932,9 +2770,9 @@ private function b184(): bool $this->rec(53); } - goto n1299;} - goto a1294; - n1299: + goto n1080;} + goto a1075; + n1080: break; } @@ -2942,75 +2780,15 @@ private function b184(): bool $this->rec(184); } - goto f1293; - a1294: - goto k1293; - f1293: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1293: - - return true; - } - - private function b187(): bool - { - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(187); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(12); - } - - goto f447;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b138()) { - goto f447;} - // b19 - $o2 = $this->p; - // s19 - $o3 = $this->p; - // s20 - $o4 = $this->p; - while (true) { - $b4 = $this->p; - if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { - if ($b4 > $this->f) { - $this->rec(21); - } - - goto e451; - } - - $this->p++; - } - e451: - if (!$this->s74()) { - goto f449;} - goto k449; - f449: - $this->p = $o3; - goto f447; - k449: - $this->v[$this->n++] = $this->reduceDoctrineText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k447; - f447: + goto f1074; + a1075: + goto k1074; + f1074: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k447: + k1074: return true; } @@ -3056,27 +2834,61 @@ private function b189(): bool goto n34;} goto a32; n34: - if (!$this->b454()) { - goto n35;} + // b454 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f36;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k36; + f36: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n35; + k36: + $this->v[$m2] = $this->reduceInvalidTag(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; goto a32; n35: if (!$this->b455()) { - goto n36;} + goto n38;} goto a32; - n36: + n38: break; case 76: case 77: case 78: case 79: - if (!$this->b454()) { - goto n37;} + // b454 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f40;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k40; + f40: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n39; + k40: + $this->v[$m2] = $this->reduceInvalidTag(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; goto a32; - n37: + n39: if (!$this->b455()) { - goto n38;} + goto n42;} goto a32; - n38: + n42: break; } @@ -3113,175 +2925,126 @@ private function b190(): bool default: break; case 51: - if (!$this->b402()) { - goto n55;} - goto a54; - n55: - break; - case 52: - if (!$this->b405()) { - goto n56;} - goto a54; - n56: - break; - case 53: - if (!$this->b406()) { - goto n57;} - goto a54; - n57: - break; - case 54: - if (!$this->b404()) { - goto n58;} - goto a54; - n58: - break; - case 55: - if (!$this->b401()) { - goto n59;} - goto a54; - n59: - break; - case 56: - // b395 - if (!($this->ids[$this->p] === 56)) { - if ($this->p > $this->f) { - $this->rec(395); - } - - goto n60;} - + // b402 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 56)) { - if ($this->p >= $this->f) { - $this->rec(95); - } - - goto f61;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b403 + if (!($this->ids[$this->p] === 26)) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(403); } - goto f61;} + goto f60;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; - if (!$this->b199()) { - goto f62;} - if (!$this->b388()) { - goto f62;} - goto k62; - f62: + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { + goto f61;} + goto k61; + f61: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f61; - k62: - goto k61; - f61: + goto f60; + k61: + goto k60; + f60: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n60; - k61: - goto a54; - n60: + goto n59; + k60: + goto a58; + n59: break; - case 57: - // b394 - if (!($this->ids[$this->p] === 57)) { - if ($this->p > $this->f) { - $this->rec(394); - } - - goto n63;} - + case 52: + // b405 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 57)) { - if ($this->p >= $this->f) { - $this->rec(94); - } - - goto f64;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b403 + if (!($this->ids[$this->p] === 26)) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(403); } - goto f64;} + goto f63;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; - if (!$this->b199()) { - goto f65;} - if (!$this->b388()) { - goto f65;} - goto k65; - f65: + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { + goto f64;} + goto k64; + f64: $this->p = $o3; $this->n = $m3; $this->comments = $cs3; - goto f64; - k65: - goto k64; - f64: + goto f63; + k64: + goto k63; + f63: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n63; - k64: - goto a54; - n63: - break; - case 58: - if (!$this->b443()) { - goto n66;} - goto a54; - n66: - break; - case 59: - if (!$this->b446()) { - goto n67;} - goto a54; - n67: + goto n62; + k63: + goto a58; + n62: break; - case 60: - // b397 - if (!($this->ids[$this->p] === 60)) { + case 53: + // b406 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b403 + if (!($this->ids[$this->p] === 26)) { if ($this->p > $this->f) { - $this->rec(397); + $this->rec(403); } - goto n68;} + goto f66;} + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { + goto f67;} + goto k67; + f67: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f66; + k67: + goto k66; + f66: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n65; + k66: + goto a58; + n65: + break; + case 54: + // b404 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 60)) { - if ($this->p >= $this->f) { - $this->rec(107); - } - - goto f69;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b403 + if (!($this->ids[$this->p] === 26)) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(403); } goto f69;} @@ -3289,9 +3052,8 @@ private function b190(): bool $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; - if (!$this->b199()) { - goto f70;} - if (!$this->b388()) { + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { goto f70;} goto k70; f70: @@ -3307,33 +3069,19 @@ private function b190(): bool $this->comments = $cs2; goto n68; k69: - goto a54; + goto a58; n68: break; - case 61: - // b396 - if (!($this->ids[$this->p] === 61)) { - if ($this->p > $this->f) { - $this->rec(396); - } - - goto n71;} - + case 55: + // b401 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 61)) { - if ($this->p >= $this->f) { - $this->rec(96); - } - - goto f72;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 + // b399 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(399); } goto f72;} @@ -3343,7 +3091,15 @@ private function b190(): bool $cs3 = $this->comments; if (!$this->b199()) { goto f73;} - if (!$this->b388()) { + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f73;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { goto f73;} goto k73; f73: @@ -3359,52 +3115,75 @@ private function b190(): bool $this->comments = $cs2; goto n71; k72: - goto a54; + goto a58; n71: break; - case 62: - if (!$this->b436()) { - goto n74;} - goto a54; - n74: - break; - case 63: - if (!$this->b398()) { - goto n75;} - goto a54; - n75: - break; - case 64: - if (!$this->b439()) { - goto n76;} - goto a54; - n76: - break; - case 65: - // b407 - if (!($this->ids[$this->p] === 65)) { + case 56: + // b395 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(407); + $this->rec(391); } - goto n77;} + goto f75;} + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f76;} + if (!$this->b388()) { + goto f76;} + goto k76; + f76: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f75; + k76: + goto k75; + f75: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n74; + k75: + goto a58; + n74: + break; + case 57: + // b394 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 65)) { - if ($this->p >= $this->f) { - $this->rec(97); + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); } goto f78;} - $this->v[$this->n++] = $this->token($this->p++); - // b125 $o3 = $this->p; - if (!$this->s125()) { - goto f78;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f79;} + if (!$this->b388()) { + goto f79;} + goto k79; + f79: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f78; + k79: goto k78; f78: $this->p = $o2; @@ -3412,82 +3191,100 @@ private function b190(): bool $this->comments = $cs2; goto n77; k78: - goto a54; + goto a58; n77: break; - case 66: - if (!$this->b441()) { - goto n80;} - goto a54; + case 58: + // b443 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f81;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!($this->ids[$this->p] === 10)) { + if ($this->p >= $this->f) { + $this->rec(26); + } + + goto f81;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f81;} + + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b444()) { + goto f81;} + goto k81; + f81: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n80; + k81: + goto a58; n80: - if (!$this->b442()) { - goto n81;} - goto a54; - n81: break; - case 67: - if (!$this->b400()) { + case 59: + if (!$this->b446()) { goto n82;} - goto a54; + goto a58; n82: break; - case 68: - if (!$this->b437()) { - goto n83;} - goto a54; - n83: - break; - case 69: - // b408 - if (!($this->ids[$this->p] === 69)) { - if ($this->p > $this->f) { - $this->rec(408); - } - - goto n84;} - + case 60: + // b397 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 69)) { - if ($this->p >= $this->f) { - $this->rec(99); + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); } - goto f85;} + goto f84;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b409()) { + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f85;} + if (!$this->b388()) { goto f85;} goto k85; f85: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f84; + k85: + goto k84; + f84: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n84; - k85: - goto a54; - n84: + goto n83; + k84: + goto a58; + n83: break; - case 70: - // b390 - if (!($this->ids[$this->p] === 70)) { - if ($this->p > $this->f) { - $this->rec(390); - } - - goto n86;} - + case 61: + // b396 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 70)) { - if ($this->p >= $this->f) { - $this->rec(91); - } - - goto f87;} - $this->v[$this->n++] = $this->token($this->p++); // b391 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -3518,91 +3315,71 @@ private function b190(): bool $this->comments = $cs2; goto n86; k87: - goto a54; + goto a58; n86: break; - case 71: - // b392 - if (!($this->ids[$this->p] === 71)) { - if ($this->p > $this->f) { - $this->rec(392); - } - + case 62: + if (!$this->b436()) { goto n89;} - + goto a58; + n89: + break; + case 63: + // b398 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 71)) { - if ($this->p >= $this->f) { - $this->rec(92); - } - - goto f90;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 + // b399 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(399); } - goto f90;} + goto f91;} $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; if (!$this->b199()) { - goto f91;} - if (!$this->b388()) { - goto f91;} - goto k91; - f91: - $this->p = $o3; - $this->n = $m3; - $this->comments = $cs3; - goto f90; - k91: - goto k90; - f90: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n89; - k90: - goto a54; - n89: - break; - case 72: - if (!$this->b191()) { - goto n92;} - goto a54; - n92: - break; - case 73: - // b393 - if (!($this->ids[$this->p] === 73)) { - if ($this->p > $this->f) { - $this->rec(393); + goto f92;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); } - goto n93;} + goto f92;} + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b125()) { + goto f92;} + goto k92; + f92: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f91; + k92: + goto k91; + f91: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n90; + k91: + goto a58; + n90: + break; + case 64: + // b439 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 73)) { - if ($this->p >= $this->f) { - $this->rec(93); - } - - goto f94;} - $this->v[$this->n++] = $this->token($this->p++); - // b391 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b438 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(391); + $this->rec(438); } goto f94;} @@ -3610,7 +3387,8 @@ private function b190(): bool $o3 = $this->p; $m3 = $this->n; $cs3 = $this->comments; - if (!$this->b199()) { + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b320()) { goto f95;} if (!$this->b388()) { goto f95;} @@ -3628,101 +3406,372 @@ private function b190(): bool $this->comments = $cs2; goto n93; k94: - goto a54; + goto a58; n93: break; - case 74: - if (!$this->b440()) { - goto n96;} - goto a54; + case 65: + // b407 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f97;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k97; + f97: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n96; + k97: + goto a58; n96: break; - case 75: - if (!$this->b384()) { - goto n97;} - goto a54; - n97: - break; - } - - if ($this->p > $this->f) { - $this->rec(190); - } + case 66: + // b441 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } - goto f53; - a54: - goto k53; - f53: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k53: - $this->v[$m1] = $this->reduceKnownTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + goto f100;} - return true; - } + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 46)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + if (!$this->b199()) { + goto f100;} + if (!isset(self::T53b29bff[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(77); + } - private function b191(): bool - { - if (!($this->ids[$this->p] === 72)) { - if ($this->p > $this->f) { - $this->rec(191); - } + goto f100;} + goto k100; + f100: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n99; + k100: + goto a58; + n99: + if (!$this->b442()) { + goto n101;} + goto a58; + n101: + break; + case 67: + if (!$this->b400()) { + goto n102;} + goto a58; + n102: + break; + case 68: + // b437 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b438 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } - return false;} + goto f104;} - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 72)) { - if ($this->p >= $this->f) { - $this->rec(84); - } + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b320()) { + goto f105;} + if (!$this->b388()) { + goto f105;} + goto k105; + f105: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f104; + k105: + goto k104; + f104: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n103; + k104: + goto a58; + n103: + break; + case 69: + // b408 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b409()) { + goto f107;} + goto k107; + f107: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n106; + k107: + goto a58; + n106: + break; + case 70: + // b390 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } - goto f295;} + goto f109;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b192()) { - goto f295;} - goto k295; - f295: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k295: + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f110;} + if (!$this->b388()) { + goto f110;} + goto k110; + f110: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f109; + k110: + goto k109; + f109: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n108; + k109: + goto a58; + n108: + break; + case 71: + // b392 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } - return true; - } + goto f112;} - private function b192(): bool - { - if (!isset(self::T3bf4df75[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(192); - } + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f113;} + if (!$this->b388()) { + goto f113;} + goto k113; + f113: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f112; + k113: + goto k112; + f112: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n111; + k112: + goto a58; + n111: + break; + case 72: + // b191 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b192()) { + goto f115;} + goto k115; + f115: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n114; + k115: + goto a58; + n114: + break; + case 73: + // b393 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b391 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(391); + } - return false;} + goto f117;} - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + if (!$this->b199()) { + goto f118;} + if (!$this->b388()) { + goto f118;} + goto k118; + f118: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f117; + k118: + goto k117; + f117: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n116; + k117: + goto a58; + n116: + break; + case 74: + // b440 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + // b438 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(438); + } + + goto f120;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b320()) { + goto f121;} + if (!$this->b388()) { + goto f121;} + goto k121; + f121: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f120; + k121: + goto k120; + f120: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n119; + k120: + goto a58; + n119: + break; + case 75: + // b384 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f123;} + if (!$this->b385()) { + goto f123;} + goto k123; + f123: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n122; + k123: + goto a58; + n122: + break; + } + + if ($this->p > $this->f) { + $this->rec(190); + } + + goto f57; + a58: + goto k57; + f57: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k57: + $this->v[$m1] = $this->reduceKnownTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b192(): bool + { + if (!isset(self::T3bf4df75[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(192); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: case 12: case 13: case 14: @@ -3740,17 +3789,17 @@ private function b192(): bool case 32: case 82: if (!$this->b198()) { - goto n544;} - goto a543; - n544: + goto n323;} + goto a322; + n323: break; case 26: case 27: case 42: if (!$this->b193()) { - goto n545;} - goto a543; - n545: + goto n324;} + goto a322; + n324: break; } @@ -3758,15 +3807,15 @@ private function b192(): bool $this->rec(192); } - goto f542; - a543: - goto k542; - f542: + goto f321; + a322: + goto k321; + f321: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k542: + k321: return true; } @@ -3788,7 +3837,7 @@ private function b193(): bool $this->rec(195); } - goto f795;} + goto f615;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -3804,21 +3853,21 @@ private function b193(): bool $this->rec(47); } - goto f795;} + goto f615;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o2 = $this->p; if (!$this->s125()) { - goto f795;} + goto f615;} $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k795; - f795: + goto k615; + f615: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k795: + k615: return true; } @@ -3836,7 +3885,7 @@ private function b198(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b199()) { - goto f793;} + goto f613;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -3852,21 +3901,21 @@ private function b198(): bool $this->rec(47); } - goto f793;} + goto f613;} $this->v[$this->n++] = $this->token($this->p++); // b125 $o2 = $this->p; if (!$this->s125()) { - goto f793;} + goto f613;} $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k793; - f793: + goto k613; + f613: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k793: + k613: return true; } @@ -3913,63 +3962,42 @@ private function b199(): bool case 32: case 82: // b367 - if (!isset(self::T977f027a[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(367); - } - - goto n160;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b201()) { - goto f161;} + goto f186;} if (!$this->b368()) { - goto f161;} - goto k161; - f161: + goto f186;} + goto k186; + f186: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n160; - k161: - goto a159; - n160: + goto n185; + k186: + goto a184; + n185: break; case 30: // b200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } - - goto n162;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } - - goto f163;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f163;} - goto k163; - f163: + goto f188;} + goto k188; + f188: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n162; - k163: - $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n187; + k188: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); $this->n = $m2 + 1; - goto a159; - n162: + goto a184; + n187: break; } @@ -3977,16 +4005,16 @@ private function b199(): bool $this->rec(199); } - goto f158; - a159: - goto k158; - f158: + goto f183; + a184: + goto k183; + f183: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k158: - $this->v[$m1] = $this->reduceType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k183: + $this->v[$m1] = $this->reduceType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -4022,23 +4050,9 @@ private function b201(): bool case 18: case 24: // b366 - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(366); - } - - goto n342;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(332); - } - - goto f343;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -4046,27 +4060,20 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f343;} + goto f389;} } if (!$this->b281()) { - goto f343;} - goto k343; - f343: + goto f389;} + goto k389; + f389: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n342; - k343: - goto a341; - n342: + goto n388; + k389: + goto a387; + n388: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n344;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -4083,32 +4090,25 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f345;} + goto f391;} } if (!$this->b335()) { - goto f345;} - goto k345; - f345: + goto f391;} + goto k391; + f391: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n344; - k345: - goto a341; - n344: + goto n390; + k391: + goto a387; + n390: break; case 19: case 20: case 21: case 22: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n347;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -4125,45 +4125,31 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f348;} + goto f394;} } if (!$this->b335()) { - goto f348;} - goto k348; - f348: + goto f394;} + goto k394; + f394: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n347; - k348: - goto a341; - n347: + goto n393; + k394: + goto a387; + n393: break; case 3: case 4: case 8: if (!$this->b255()) { - goto n350;} - goto a341; - n350: + goto n396;} + goto a387; + n396: // b278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n351;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f352;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -4171,7 +4157,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f352;} + goto f398;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4179,27 +4165,20 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f352;} + goto f398;} } if (!$this->b281()) { - goto f352;} - goto k352; - f352: + goto f398;} + goto k398; + f398: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n351; - k352: - goto a341; - n351: + goto n397; + k398: + goto a387; + n397: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n353;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -4216,50 +4195,36 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f354;} + goto f400;} } if (!$this->b335()) { - goto f354;} - goto k354; - f354: + goto f400;} + goto k400; + f400: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n353; - k354: - goto a341; - n353: + goto n399; + k400: + goto a387; + n399: break; case 32: case 82: if (!$this->b202()) { - goto n356;} - goto a341; - n356: + goto n402;} + goto a387; + n402: break; case 6: if (!$this->b267()) { - goto n357;} - goto a341; - n357: + goto n403;} + goto a387; + n403: // b278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n358;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f359;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -4267,7 +4232,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f359;} + goto f405;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4275,27 +4240,20 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f359;} + goto f405;} } if (!$this->b281()) { - goto f359;} - goto k359; - f359: + goto f405;} + goto k405; + f405: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n358; - k359: - goto a341; - n358: + goto n404; + k405: + goto a387; + n404: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n360;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -4312,43 +4270,29 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f361;} + goto f407;} } if (!$this->b335()) { - goto f361;} - goto k361; - f361: + goto f407;} + goto k407; + f407: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n360; - k361: - goto a341; - n360: + goto n406; + k407: + goto a387; + n406: break; case 7: if (!$this->b230()) { - goto n363;} - goto a341; - n363: + goto n409;} + goto a387; + n409: // b278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n364;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f365;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -4356,7 +4300,7 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f365;} + goto f411;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -4364,27 +4308,20 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f365;} + goto f411;} } if (!$this->b281()) { - goto f365;} - goto k365; - f365: + goto f411;} + goto k411; + f411: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n364; - k365: - goto a341; - n364: + goto n410; + k411: + goto a387; + n410: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n366;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -4401,25 +4338,25 @@ private function b201(): bool $this->f = $this->p; $this->er = []; } - goto f367;} + goto f413;} } if (!$this->b335()) { - goto f367;} - goto k367; - f367: + goto f413;} + goto k413; + f413: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n366; - k367: - goto a341; - n366: + goto n412; + k413: + goto a387; + n412: break; case 25: if (!$this->b229()) { - goto n369;} - goto a341; - n369: + goto n415;} + goto a387; + n415: break; } @@ -4427,16 +4364,16 @@ private function b201(): bool $this->rec(201); } - goto f340; - a341: - goto k340; - f340: + goto f386; + a387: + goto k386; + f386: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k340: - $this->v[$m1] = $this->reduceAtomic(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k386: + $this->v[$m1] = $this->reduceAtomic(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -4454,13 +4391,6 @@ private function b202(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f617;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -4473,14 +4403,14 @@ private function b202(): bool $this->rec(204); } - goto e619; + goto e676; } $this->p++; } - e619: + e676: if (!$this->b205()) { - goto f617;} + goto f674;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -4492,18 +4422,18 @@ private function b202(): bool $this->rec(204); } - goto e621; + goto e678; } $this->p++; } - e621: + e678: if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f617;} + goto f674;} $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -4513,7 +4443,7 @@ private function b202(): bool $this->rec(223); } - goto n622;} + goto n679;} $o2 = $this->p; $m2 = $this->n; @@ -4526,41 +4456,41 @@ private function b202(): bool $this->rec(224); } - goto e624; + goto e681; } if (!$this->b224()) { - goto e624;} + goto e681;} if ($this->p === $b2) { $k2 = 1; - goto e624; + goto e681; } $k2++; } - e624: + e681: if ($k2 < 1) { - goto f623; + goto f680; } - goto k623; - f623: + goto k680; + f680: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n622; - k623: - n622: + goto n679; + k680: + n679: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k617; - f617: + goto k674; + f674: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k617: + k674: return true; } @@ -4607,69 +4537,48 @@ private function b205(): bool case 32: case 82: // b208 - if (!isset(self::T977f027a[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(208); - } - - goto n854;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b201()) { - goto f855;} + goto f935;} if (!$this->b209()) { - goto f855;} - goto k855; - f855: + goto f935;} + goto k935; + f935: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n854; - k855: - goto a853; - n854: + goto n934; + k935: + goto a933; + n934: break; case 26: if (!$this->b206()) { - goto n856;} - goto a853; - n856: + goto n936;} + goto a933; + n936: break; case 30: // b200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } - - goto n857;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } - - goto f858;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f858;} - goto k858; - f858: + goto f938;} + goto k938; + f938: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n857; - k858: - $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n937; + k938: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); $this->n = $m2 + 1; - goto a853; - n857: + goto a933; + n937: break; } @@ -4677,16 +4586,16 @@ private function b205(): bool $this->rec(205); } - goto f852; - a853: - goto k852; - f852: + goto f932; + a933: + goto k932; + f932: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k852: - $this->v[$m1] = $this->reduceSubType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k932: + $this->v[$m1] = $this->reduceSubType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -4704,20 +4613,13 @@ private function b206(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f1118;} - $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 12)) { if ($this->p >= $this->f) { $this->rec(23); } - goto f1118;} + goto f1229;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 11)) { @@ -4726,7 +4628,7 @@ private function b206(): bool $this->rec(24); } if (!$this->b199()) { - goto f1118;} + goto f1229;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -4738,18 +4640,18 @@ private function b206(): bool $this->rec(204); } - goto e1120; + goto e1231; } $this->p++; } - e1120: + e1231: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1118;} + goto f1229;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -4763,14 +4665,14 @@ private function b206(): bool $this->rec(204); } - goto e1122; + goto e1233; } $this->p++; } - e1122: + e1233: if (!$this->b199()) { - goto f1118;} + goto f1229;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -4782,18 +4684,18 @@ private function b206(): bool $this->rec(204); } - goto e1124; + goto e1235; } $this->p++; } - e1124: + e1235: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1118;} + goto f1229;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -4807,21 +4709,21 @@ private function b206(): bool $this->rec(204); } - goto e1126; + goto e1237; } $this->p++; } - e1126: + e1237: if (!$this->b205()) { - goto f1118;} - goto k1118; - f1118: + goto f1229;} + goto k1229; + f1229: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1118: + k1229: return true; } @@ -4848,27 +4750,27 @@ private function b209(): bool $this->rec(204); } - goto e1110; + goto e1221; } $this->p++; } - e1110: + e1221: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->b213()) { - goto n1111;} - n1111: + goto n1222;} + n1222: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1106; - n1107: + goto a1217; + n1218: break; case 12: if (!$this->b210()) { - goto n1112;} - goto a1106; - n1112: + goto n1223;} + goto a1217; + n1223: // b211 $o2 = $this->p; $m2 = $this->n; @@ -4884,21 +4786,21 @@ private function b209(): bool $this->rec(204); } - goto e1116; + goto e1227; } $this->p++; } - e1116: + e1227: if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { if (!$this->b213()) { - goto n1117;} - n1117: + goto n1228;} + n1228: } elseif ($this->p > $this->f) { $this->rec(213); } - goto a1106; - n1113: + goto a1217; + n1224: break; } @@ -4906,15 +4808,15 @@ private function b209(): bool $this->rec(209); } - goto f1105; - a1106: - goto k1105; - f1105: + goto f1216; + a1217: + goto k1216; + f1216: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1105: + k1216: return true; } @@ -4931,13 +4833,6 @@ private function b210(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 12)) { - if ($this->p >= $this->f) { - $this->rec(23); - } - - goto f1445;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 11)) { $this->v[$this->n++] = $this->token($this->p++); @@ -4945,7 +4840,7 @@ private function b210(): bool $this->rec(24); } if (!$this->b199()) { - goto f1445;} + goto f1504;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -4957,18 +4852,18 @@ private function b210(): bool $this->rec(204); } - goto e1447; + goto e1506; } $this->p++; } - e1447: + e1506: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1445;} + goto f1504;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -4982,14 +4877,14 @@ private function b210(): bool $this->rec(204); } - goto e1449; + goto e1508; } $this->p++; } - e1449: + e1508: if (!$this->b199()) { - goto f1445;} + goto f1504;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5001,18 +4896,18 @@ private function b210(): bool $this->rec(204); } - goto e1451; + goto e1510; } $this->p++; } - e1451: + e1510: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1445;} + goto f1504;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -5026,21 +4921,21 @@ private function b210(): bool $this->rec(204); } - goto e1453; + goto e1512; } $this->p++; } - e1453: + e1512: if (!$this->b205()) { - goto f1445;} - goto k1445; - f1445: + goto f1504;} + goto k1504; + f1504: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1445: + k1504: return true; } @@ -5061,106 +4956,138 @@ private function b213(): bool default: break; case 28: - if (!$this->b214()) { - goto n1443;} - goto a1442; - n1443: - break; - case 29: - if (!$this->b218()) { - goto n1444;} - goto a1442; - n1444: - break; - } - - if ($this->p > $this->f) { - $this->rec(213); - } + // b214 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b215 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b3 > $this->f) { + $this->rec(216); + } - goto f1441; - a1442: - goto k1441; - f1441: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1441: + goto e1499; + } - return true; - } + if (!$this->b216()) { + goto e1499;} + if ($this->p === $b3) { + $k3 = 1; + goto e1499; + } - private function b214(): bool - { - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(214); - } + $k3++; + } + e1499: - return false;} + if ($k3 < 1) { + goto f1498; + } + goto k1498; + f1498: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f1497; + k1498: + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1497;} + } + goto k1497; + f1497: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1496; + k1497: + goto a1495; + n1496: + break; + case 29: + // b218 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b219 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b3 > $this->f) { + $this->rec(220); + } - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - // b215 - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(215); - } + goto e1503; + } - goto f1642;} + if (!$this->b220()) { + goto e1503;} + if ($this->p === $b3) { + $k3 = 1; + goto e1503; + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 28)) { - if ($b2 > $this->f) { - $this->rec(216); + $k3++; } + e1503: - goto e1644; - } - - if (!$this->b216()) { - goto e1644;} - if ($this->p === $b2) { - $k2 = 1; - goto e1644; - } - - $k2++; + if ($k3 < 1) { + goto f1502; + } + goto k1502; + f1502: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f1501; + k1502: + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1501;} + } + goto k1501; + f1501: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1500; + k1501: + goto a1495; + n1500: + break; } - e1644: - if ($k2 < 1) { - goto f1643; - } - goto k1643; - f1643: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1642; - k1643: - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1642;} + if ($this->p > $this->f) { + $this->rec(213); } - goto k1642; - f1642: + + goto f1494; + a1495: + goto k1494; + f1494: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1642: + k1494: return true; } @@ -5177,13 +5104,6 @@ private function b216(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 28)) { - if ($this->p >= $this->f) { - $this->rec(49); - } - - goto f1726;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -5196,14 +5116,14 @@ private function b216(): bool $this->rec(204); } - goto e1728; + goto e1663; } $this->p++; } - e1728: + e1663: if (!$this->b201()) { - goto f1726;} + goto f1661;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5215,93 +5135,19 @@ private function b216(): bool $this->rec(204); } - goto e1730; + goto e1665; } $this->p++; } - e1730: - goto k1726; - f1726: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1726: - - return true; - } - - private function b218(): bool - { - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(218); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - // b219 - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(219); - } - - goto f1645;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 29)) { - if ($b2 > $this->f) { - $this->rec(220); - } - - goto e1647; - } - - if (!$this->b220()) { - goto e1647;} - if ($this->p === $b2) { - $k2 = 1; - goto e1647; - } - - $k2++; - } - e1647: - - if ($k2 < 1) { - goto f1646; - } - goto k1646; - f1646: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f1645; - k1646: - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1645;} - } - goto k1645; - f1645: + e1665: + goto k1661; + f1661: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1645: + k1661: return true; } @@ -5318,13 +5164,6 @@ private function b220(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 29)) { - if ($this->p >= $this->f) { - $this->rec(50); - } - - goto f1731;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -5337,14 +5176,14 @@ private function b220(): bool $this->rec(204); } - goto e1733; + goto e1668; } $this->p++; } - e1733: + e1668: if (!$this->b201()) { - goto f1731;} + goto f1666;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -5356,19 +5195,19 @@ private function b220(): bool $this->rec(204); } - goto e1735; + goto e1670; } $this->p++; } - e1735: - goto k1731; - f1731: + e1670: + goto k1666; + f1666: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1731: + k1666: return true; } @@ -5390,23 +5229,9 @@ private function b224(): bool break; case 36: // b225 - if (!($this->ids[$this->p] === 36)) { - if ($this->p > $this->f) { - $this->rec(225); - } - - goto n831;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 36)) { - if ($this->p >= $this->f) { - $this->rec(57); - } - - goto f832;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 37)) { if (($this->ids[$this->p] === 37)) { @@ -5414,101 +5239,73 @@ private function b224(): bool $this->f = $this->p; $this->er = []; } - goto f832;} + goto f893;} } if (!$this->b199()) { - goto f832;} + goto f893;} if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f832;} + goto f893;} $this->v[$this->n++] = $this->token($this->p++); - goto k832; - f832: + goto k893; + f893: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n831; - k832: - goto a830; - n831: + goto n892; + k893: + goto a891; + n892: // b227 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(227); - } - - goto n833;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); - } - - goto f834;} - $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f834;} + goto f895;} $this->v[$this->n++] = $this->token($this->p++); - goto k834; - f834: + goto k895; + f895: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n833; - k834: - goto a830; - n833: + goto n894; + k895: + goto a891; + n894: break; case 84: // b227 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(227); - } - - goto n835;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); - } - - goto f836;} - $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f836;} + goto f897;} $this->v[$this->n++] = $this->token($this->p++); - goto k836; - f836: + goto k897; + f897: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n835; - k836: - goto a830; - n835: + goto n896; + k897: + goto a891; + n896: break; } @@ -5516,16 +5313,16 @@ private function b224(): bool $this->rec(224); } - goto f829; - a830: - goto k829; - f829: + goto f890; + a891: + goto k890; + f890: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k829: - $this->v[$m1] = $this->reduceArrayOrOffsetAccessItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k890: + $this->v[$m1] = $this->reduceArrayOrOffsetAccessItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -5543,13 +5340,6 @@ private function b229(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 25)) { - if ($this->p >= $this->f) { - $this->rec(46); - } - - goto f633;} - $this->v[$this->n++] = $this->token($this->p++); if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 @@ -5558,7 +5348,7 @@ private function b229(): bool $this->rec(223); } - goto n634;} + goto n691;} $o2 = $this->p; $m2 = $this->n; @@ -5571,41 +5361,34 @@ private function b229(): bool $this->rec(224); } - goto e636; + goto e693; } if (!$this->b224()) { - goto e636;} + goto e693;} if ($this->p === $b2) { $k2 = 1; - goto e636; + goto e693; } $k2++; } - e636: + e693: if ($k2 < 1) { - goto f635; + goto f692; } - goto k635; - f635: + goto k692; + f692: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n634; - k635: - n634: + goto n691; + k692: + n691: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k633; - f633: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k633: return true; } @@ -5622,13 +5405,6 @@ private function b230(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 7)) { - if ($this->p >= $this->f) { - $this->rec(32); - } - - goto f629;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -5636,10 +5412,10 @@ private function b230(): bool $this->f = $this->p; $this->er = []; } - goto f629;} + goto f686;} } if (!$this->b231()) { - goto f629;} + goto f686;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -5647,7 +5423,7 @@ private function b230(): bool $this->rec(223); } - goto n630;} + goto n687;} $o2 = $this->p; $m2 = $this->n; @@ -5660,41 +5436,41 @@ private function b230(): bool $this->rec(224); } - goto e632; + goto e689; } if (!$this->b224()) { - goto e632;} + goto e689;} if ($this->p === $b2) { $k2 = 1; - goto e632; + goto e689; } $k2++; } - e632: + e689: if ($k2 < 1) { - goto f631; + goto f688; } - goto k631; - f631: + goto k688; + f688: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n630; - k631: - n630: + goto n687; + k688: + n687: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k629; - f629: + goto k686; + f686: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k629: + k686: return true; } @@ -5711,13 +5487,6 @@ private function b231(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f867;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -5730,16 +5499,16 @@ private function b231(): bool $this->rec(204); } - goto e869; + goto e949; } $this->p++; } - e869: + e949: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { if (!$this->b233()) { - goto n870;} - n870: + goto n950;} + n950: } elseif ($this->p > $this->f) { $this->rec(233); } @@ -5754,28 +5523,28 @@ private function b231(): bool $this->rec(204); } - goto e872; + goto e952; } $this->p++; } - e872: + e952: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f867;} + goto f947;} $this->v[$this->n++] = $this->token($this->p++); - goto k867; - f867: + goto k947; + f947: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k867: - $this->v[$m1] = $this->reduceArrayShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k947: + $this->v[$m1] = $this->reduceArrayShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -5823,19 +5592,17 @@ private function b233(): bool case 30: case 32: case 82: - // b243 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(243); - } - - goto n1135;} - + if (!$this->b243()) { + goto n1246;} + goto a1245; + n1246: + break; + case 42: + // b234 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!$this->b244()) { - goto f1136;} + $this->v[$this->n++] = $this->token($this->p++); // b203 $o3 = $this->p; $m3 = $this->n; @@ -5847,34 +5614,28 @@ private function b233(): bool $this->rec(204); } - goto e1138; + goto e1250; } $this->p++; } - e1138: + e1250: + if (!$this->b235()) { + goto f1248;} if (($this->ids[$this->p] === 40)) { - if (!$this->b252()) { - goto n1139;} - n1139: - } elseif ($this->p > $this->f) { - $this->rec(252); + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); } - goto k1136; - f1136: + goto k1248; + f1248: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1135; - k1136: - goto a1134; - n1135: - break; - case 42: - if (!$this->b234()) { - goto n1140;} - goto a1134; - n1140: + goto n1247; + k1248: + goto a1245; + n1247: break; } @@ -5882,70 +5643,15 @@ private function b233(): bool $this->rec(233); } - goto f1133; - a1134: - goto k1133; - f1133: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1133: - - return true; - } - - private function b234(): bool - { - if (!($this->ids[$this->p] === 42)) { - if ($this->p > $this->f) { - $this->rec(234); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1467;} - - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1469; - } - - $this->p++; - } - e1469: - if (!$this->b235()) { - goto f1467;} - if (($this->ids[$this->p] === 40)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(63); - } - goto k1467; - f1467: + goto f1244; + a1245: + goto k1244; + f1244: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1467: + k1244: return true; } @@ -5962,25 +5668,18 @@ private function b235(): bool $this->f = $this->p; $this->er = []; } - goto n1650;} - goto a1649; - n1650: + goto n1532;} + goto a1531; + n1532: break; case 34: case 86: // b236 - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(236); - } - - goto n1651;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b237()) { - goto f1652;} + goto f1534;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -5992,29 +5691,29 @@ private function b235(): bool $this->rec(204); } - goto e1654; + goto e1536; } $this->p++; } - e1654: - goto k1652; - f1652: + e1536: + goto k1534; + f1534: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1651; - k1652: - goto a1649; - n1651: + goto n1533; + k1534: + goto a1531; + n1533: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1655;} - goto a1649; - n1655: + goto n1537;} + goto a1531; + n1537: break; } @@ -6022,15 +5721,15 @@ private function b235(): bool $this->rec(235); } - goto f1648; - a1649: - goto k1648; - f1648: + goto f1530; + a1531: + goto k1530; + f1530: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1648: + k1530: return true; } @@ -6047,13 +5746,6 @@ private function b237(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1736;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -6066,14 +5758,14 @@ private function b237(): bool $this->rec(204); } - goto e1738; + goto e1673; } $this->p++; } - e1738: + e1673: if (!$this->b199()) { - goto f1736;} + goto f1671;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -6085,16 +5777,16 @@ private function b237(): bool $this->rec(204); } - goto e1740; + goto e1675; } $this->p++; } - e1740: + e1675: if (($this->ids[$this->p] === 40)) { if (!$this->b240()) { - goto n1741;} - n1741: + goto n1676;} + n1676: } elseif ($this->p > $this->f) { $this->rec(240); } @@ -6103,17 +5795,17 @@ private function b237(): bool $this->rec(56); } - goto f1736;} + goto f1671;} $this->v[$this->n++] = $this->token($this->p++); - goto k1736; - f1736: + goto k1671; + f1671: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1736: - $this->v[$m1] = $this->reduceArrayShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1671: + $this->v[$m1] = $this->reduceArrayShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -6131,13 +5823,6 @@ private function b240(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1757;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -6150,14 +5835,56 @@ private function b240(): bool $this->rec(204); } - goto e1759; + goto e1731; } $this->p++; } - e1759: + e1731: if (!$this->b199()) { - goto f1757;} + goto f1729;} + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1733; + } + + $this->p++; + } + e1733: + goto k1729; + f1729: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1729: + + return true; + } + + private function b243(): bool + { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(243); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (!$this->b244()) { + goto f1522;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -6169,19 +5896,66 @@ private function b240(): bool $this->rec(204); } - goto e1761; + goto e1524; } $this->p++; } - e1761: - goto k1757; - f1757: + e1524: + if (($this->ids[$this->p] === 40)) { + // b252 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(252); + } + + goto n1525;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 41)) { + $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1528; + } + + $this->p++; + } + e1528: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b233()) { + goto n1529;} + n1529: + } elseif ($this->p > $this->f) { + $this->rec(233); + } + n1525: + } elseif ($this->p > $this->f) { + $this->rec(252); + } + goto k1522; + f1522: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1757: + k1522: return true; } @@ -6224,18 +5998,11 @@ private function b244(): bool case 22: case 24: // b245 - if (!isset(self::Tce797685[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(245); - } - - goto n1430;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b246()) { - goto f1431;} + goto f1476;} if (($this->ids[$this->p] === 30)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -6246,24 +6013,24 @@ private function b244(): bool $this->rec(70); } - goto f1431;} + goto f1476;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f1431;} - goto k1431; - f1431: + goto f1476;} + goto k1476; + f1476: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1430; - k1431: - goto a1429; - n1430: + goto n1475; + k1476: + goto a1474; + n1475: if (!$this->b199()) { - goto n1432;} - goto a1429; - n1432: + goto n1477;} + goto a1474; + n1477: break; case 19: case 25: @@ -6271,9 +6038,9 @@ private function b244(): bool case 32: case 82: if (!$this->b199()) { - goto n1433;} - goto a1429; - n1433: + goto n1478;} + goto a1474; + n1478: break; } @@ -6281,16 +6048,16 @@ private function b244(): bool $this->rec(244); } - goto f1428; - a1429: - goto k1428; - f1428: + goto f1473; + a1474: + goto k1473; + f1473: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1428: - $this->v[$m1] = $this->reduceArrayShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1473: + $this->v[$m1] = $this->reduceArrayShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -6330,22 +6097,57 @@ private function b246(): bool case 17: case 18: case 24: - if (!$this->b247()) { - goto n1633;} - goto a1632; - n1633: + // b247 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + // b249 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(249); + } + + goto n1654;} + + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1655;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k1655; + f1655: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto n1654; + k1655: + n1654: + } elseif ($this->p > $this->f) { + $this->rec(249); + } + goto a1651; + n1652: break; case 20: $this->v[$this->n++] = $this->token($this->p++); - goto a1632; + goto a1651; break; case 21: $this->v[$this->n++] = $this->token($this->p++); - goto a1632; + goto a1651; break; case 22: $this->v[$this->n++] = $this->token($this->p++); - goto a1632; + goto a1651; break; } @@ -6353,26 +6155,26 @@ private function b246(): bool $this->rec(246); } - goto f1631; - a1632: - goto k1631; - f1631: + goto f1650; + a1651: + goto k1650; + f1650: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1631: - $this->v[$m1] = $this->reduceArrayShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1650: + $this->v[$m1] = $this->reduceArrayShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } - private function b247(): bool + private function b255(): bool { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(247); + $this->rec(255); } return false;} @@ -6380,69 +6182,81 @@ private function b247(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1718;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { - // b249 - if (!($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { if ($this->p > $this->f) { - $this->rec(249); + $this->f = $this->p; + $this->er = []; + } + goto f670;} + } + if (!$this->b257()) { + goto f670;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); } - goto n1719;} + goto n671;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 43)) { - if ($this->p >= $this->f) { - $this->rec(66); - } + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } - goto f1720;} + goto e673; + } - $this->v[$this->n++] = $this->token($this->p++); - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + if (!$this->b224()) { + goto e673;} + if ($this->p === $b2) { + $k2 = 1; + goto e673; } - goto f1720;} + $k2++; + } + e673: - $this->v[$this->n++] = $this->token($this->p++); - goto k1720; - f1720: + if ($k2 < 1) { + goto f672; + } + goto k672; + f672: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1719; - k1720: - n1719: + goto n671; + k672: + n671: } elseif ($this->p > $this->f) { - $this->rec(249); + $this->rec(223); } - goto k1718; - f1718: + goto k670; + f670: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1718: + k670: return true; } - private function b252(): bool + private function b257(): bool { - if (!($this->ids[$this->p] === 40)) { + if (!($this->ids[$this->p] === 38)) { if ($this->p > $this->f) { - $this->rec(252); + $this->rec(257); } return false;} @@ -6450,20 +6264,7 @@ private function b252(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1463;} - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 41)) { - $this->v[$this->n++] = $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(254); - } // b203 $o2 = $this->p; $m2 = $this->n; @@ -6475,160 +6276,81 @@ private function b252(): bool $this->rec(204); } - goto e1465; + goto e924; } $this->p++; } - e1465: + e924: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - if (!$this->b233()) { - goto n1466;} - n1466: - } elseif ($this->p > $this->f) { - $this->rec(233); - } - goto k1463; - f1463: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1463: - - return true; - } - - private function b255(): bool - { - if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(255); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(256); - } - - goto f613;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f613;} - } - if (!$this->b257()) { - goto f613;} - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { + // b259 + if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(223); + $this->rec(259); } - goto n614;} + goto n925;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e616; - } - - if (!$this->b224()) { - goto e616;} - if ($this->p === $b2) { - $k2 = 1; - goto e616; - } - - $k2++; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + if (!$this->b264()) { + goto n928;} + goto a927; + n928: + break; + case 42: + if (!$this->b260()) { + goto n929;} + goto a927; + n929: + break; } - e616: - if ($k2 < 1) { - goto f615; + if ($this->p > $this->f) { + $this->rec(259); } - goto k615; - f615: + + goto f926; + a927: + goto k926; + f926: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n614; - k615: - n614: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k613; - f613: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k613: - - return true; - } - - private function b257(): bool - { - if (!($this->ids[$this->p] === 38)) { - if ($this->p > $this->f) { - $this->rec(257); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f846;} - - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e848; - } - - $this->p++; - } - e848: - if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - if (!$this->b259()) { - goto n849;} - n849: + goto n925; + k926: + n925: } elseif ($this->p > $this->f) { $this->rec(259); } @@ -6643,28 +6365,28 @@ private function b257(): bool $this->rec(204); } - goto e851; + goto e931; } $this->p++; } - e851: + e931: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f846;} + goto f922;} $this->v[$this->n++] = $this->token($this->p++); - goto k846; - f846: + goto k922; + f922: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k846: - $this->v[$m1] = $this->reduceListShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k922: + $this->v[$m1] = $this->reduceListShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -6712,19 +6434,17 @@ private function b259(): bool case 30: case 32: case 82: - // b264 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(264); - } - - goto n1099;} - + if (!$this->b264()) { + goto n1481;} + goto a1480; + n1481: + break; + case 42: + // b260 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!$this->b244()) { - goto f1100;} + $this->v[$this->n++] = $this->token($this->p++); // b203 $o3 = $this->p; $m3 = $this->n; @@ -6736,34 +6456,28 @@ private function b259(): bool $this->rec(204); } - goto e1102; + goto e1485; } $this->p++; } - e1102: + e1485: + if (!$this->b261()) { + goto f1483;} if (($this->ids[$this->p] === 40)) { - if (!$this->b266()) { - goto n1103;} - n1103: - } elseif ($this->p > $this->f) { - $this->rec(266); + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); } - goto k1100; - f1100: + goto k1483; + f1483: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1099; - k1100: - goto a1098; - n1099: - break; - case 42: - if (!$this->b260()) { - goto n1104;} - goto a1098; - n1104: + goto n1482; + k1483: + goto a1480; + n1482: break; } @@ -6771,15 +6485,15 @@ private function b259(): bool $this->rec(259); } - goto f1097; - a1098: - goto k1097; - f1097: + goto f1479; + a1480: + goto k1479; + f1479: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1097: + k1479: return true; } @@ -6796,13 +6510,6 @@ private function b260(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1438;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -6815,26 +6522,26 @@ private function b260(): bool $this->rec(204); } - goto e1440; + goto e1215; } $this->p++; } - e1440: + e1215: if (!$this->b261()) { - goto f1438;} + goto f1213;} if (($this->ids[$this->p] === 40)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1438; - f1438: + goto k1213; + f1213: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1438: + k1213: return true; } @@ -6851,25 +6558,18 @@ private function b261(): bool $this->f = $this->p; $this->er = []; } - goto n1636;} - goto a1635; - n1636: + goto n1488;} + goto a1487; + n1488: break; case 34: case 86: // b262 - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(262); - } - - goto n1637;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b263()) { - goto f1638;} + goto f1490;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -6881,29 +6581,29 @@ private function b261(): bool $this->rec(204); } - goto e1640; + goto e1492; } $this->p++; } - e1640: - goto k1638; - f1638: + e1492: + goto k1490; + f1490: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1637; - k1638: - goto a1635; - n1637: + goto n1489; + k1490: + goto a1487; + n1489: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1641;} - goto a1635; - n1641: + goto n1493;} + goto a1487; + n1493: break; } @@ -6911,15 +6611,15 @@ private function b261(): bool $this->rec(261); } - goto f1634; - a1635: - goto k1634; - f1634: + goto f1486; + a1487: + goto k1486; + f1486: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1634: + k1486: return true; } @@ -6936,13 +6636,6 @@ private function b263(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1721;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -6955,14 +6648,14 @@ private function b263(): bool $this->rec(204); } - goto e1723; + goto e1658; } $this->p++; } - e1723: + e1658: if (!$this->b199()) { - goto f1721;} + goto f1656;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -6974,38 +6667,38 @@ private function b263(): bool $this->rec(204); } - goto e1725; + goto e1660; } $this->p++; } - e1725: + e1660: if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { $this->rec(56); } - goto f1721;} + goto f1656;} $this->v[$this->n++] = $this->token($this->p++); - goto k1721; - f1721: + goto k1656; + f1656: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1721: - $this->v[$m1] = $this->reduceListShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1656: + $this->v[$m1] = $this->reduceListShapeUnsealedType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } - private function b266(): bool + private function b264(): bool { - if (!($this->ids[$this->p] === 40)) { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(266); + $this->rec(264); } return false;} @@ -7013,20 +6706,8 @@ private function b266(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1434;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 41)) { - $this->v[$this->n++] = $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(254); - } + if (!$this->b244()) { + goto f1205;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -7038,26 +6719,66 @@ private function b266(): bool $this->rec(204); } - goto e1436; + goto e1207; } $this->p++; } - e1436: - if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - if (!$this->b259()) { - goto n1437;} - n1437: + e1207: + if (($this->ids[$this->p] === 40)) { + // b266 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(266); + } + + goto n1208;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 41)) { + $this->reduceDiscardedComment($this->indexes[$this->p], $this->indexes[$this->p]); + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1211; + } + + $this->p++; + } + e1211: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->b259()) { + goto n1212;} + n1212: + } elseif ($this->p > $this->f) { + $this->rec(259); + } + n1208: } elseif ($this->p > $this->f) { - $this->rec(259); + $this->rec(266); } - goto k1434; - f1434: + goto k1205; + f1205: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1434: + k1205: return true; } @@ -7074,13 +6795,6 @@ private function b267(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 6)) { - if ($this->p >= $this->f) { - $this->rec(37); - } - - goto f625;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -7088,10 +6802,10 @@ private function b267(): bool $this->f = $this->p; $this->er = []; } - goto f625;} + goto f682;} } if (!$this->b268()) { - goto f625;} + goto f682;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -7099,7 +6813,7 @@ private function b267(): bool $this->rec(223); } - goto n626;} + goto n683;} $o2 = $this->p; $m2 = $this->n; @@ -7112,41 +6826,41 @@ private function b267(): bool $this->rec(224); } - goto e628; + goto e685; } if (!$this->b224()) { - goto e628;} + goto e685;} if ($this->p === $b2) { $k2 = 1; - goto e628; + goto e685; } $k2++; } - e628: + e685: if ($k2 < 1) { - goto f627; + goto f684; } - goto k627; - f627: + goto k684; + f684: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n626; - k627: - n626: + goto n683; + k684: + n683: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k625; - f625: + goto k682; + f682: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k625: + k682: return true; } @@ -7163,13 +6877,6 @@ private function b268(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f859;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -7182,12 +6889,12 @@ private function b268(): bool $this->rec(204); } - goto e861; + goto e941; } $this->p++; } - e861: + e941: if (isset(self::Td8017923[$this->ids[$this->p]])) { // b270 if (!isset(self::Td8017923[$this->ids[$this->p]])) { @@ -7195,13 +6902,13 @@ private function b268(): bool $this->rec(270); } - goto n862;} + goto n942;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b271()) { - goto f863;} + goto f943;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7213,27 +6920,27 @@ private function b268(): bool $this->rec(204); } - goto e865; + goto e945; } $this->p++; } - e865: + e945: if (($this->ids[$this->p] === 40)) { if (!$this->b274()) { - goto n866;} - n866: + goto n946;} + n946: } elseif ($this->p > $this->f) { $this->rec(274); } - goto k863; - f863: + goto k943; + f943: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n862; - k863: - n862: + goto n942; + k943: + n942: } elseif ($this->p > $this->f) { $this->rec(270); } @@ -7242,17 +6949,17 @@ private function b268(): bool $this->rec(62); } - goto f859;} + goto f939;} $this->v[$this->n++] = $this->token($this->p++); - goto k859; - f859: + goto k939; + f939: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k859: - $this->v[$m1] = $this->reduceObjectShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k939: + $this->v[$m1] = $this->reduceObjectShape(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -7271,7 +6978,7 @@ private function b271(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b272()) { - goto f1127;} + goto f1238;} if (($this->ids[$this->p] === 30)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -7282,19 +6989,19 @@ private function b271(): bool $this->rec(70); } - goto f1127;} + goto f1238;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f1127;} - goto k1127; - f1127: + goto f1238;} + goto k1238; + f1238: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1127: - $this->v[$m1] = $this->reduceObjectShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1238: + $this->v[$m1] = $this->reduceObjectShapeItem(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -7317,87 +7024,87 @@ private function b272(): bool break; case 1: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 2: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 3: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 4: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 5: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 6: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 7: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 8: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 9: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 10: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 11: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 12: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 13: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 14: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 15: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 16: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 17: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 18: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 21: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 22: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; case 24: $this->v[$this->n++] = $this->token($this->p++); - goto a1455; + goto a1514; break; } @@ -7405,16 +7112,16 @@ private function b272(): bool $this->rec(272); } - goto f1454; - a1455: - goto k1454; - f1454: + goto f1513; + a1514: + goto k1513; + f1513: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1454: - $this->v[$m1] = $this->reduceObjectShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1513: + $this->v[$m1] = $this->reduceObjectShapeKey(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -7440,7 +7147,7 @@ private function b274(): bool $this->rec(275); } - goto e1129; + goto e1240; } // b275 @@ -7449,18 +7156,11 @@ private function b274(): bool $this->rec(275); } - goto e1129;} + goto e1240;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1130;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o3 = $this->p; @@ -7473,40 +7173,40 @@ private function b274(): bool $this->rec(204); } - goto e1132; + goto e1243; } $this->p++; } - e1132: + e1243: if (!$this->b276()) { - goto f1130;} - goto k1130; - f1130: + goto f1241;} + goto k1241; + f1241: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1129; - k1130: + goto e1240; + k1241: if ($this->p === $b1) { $k1 = 1; - goto e1129; + goto e1240; } $k1++; } - e1129: + e1240: if ($k1 < 1) { - goto f1128; + goto f1239; } - goto k1128; - f1128: + goto k1239; + f1239: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1128: + k1239: return true; } @@ -7541,18 +7241,11 @@ private function b276(): bool case 22: case 24: // b277 - if (!isset(self::Td8017923[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(277); - } - - goto n1458;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b271()) { - goto f1459;} + goto f1518;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7564,21 +7257,21 @@ private function b276(): bool $this->rec(204); } - goto e1461; + goto e1520; } $this->p++; } - e1461: - goto k1459; - f1459: + e1520: + goto k1518; + f1518: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1458; - k1459: - goto a1457; - n1458: + goto n1517; + k1518: + goto a1516; + n1517: break; case 39: if (!($this->ids[$this->p] === 39)) { @@ -7586,9 +7279,9 @@ private function b276(): bool $this->rec(62); } - goto n1462;} - goto a1457; - n1462: + goto n1521;} + goto a1516; + n1521: break; } @@ -7596,15 +7289,15 @@ private function b276(): bool $this->rec(276); } - goto f1456; - a1457: - goto k1456; - f1456: + goto f1515; + a1516: + goto k1515; + f1515: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1456: + k1515: return true; } @@ -7621,35 +7314,28 @@ private function b281(): bool $this->f = $this->p; $this->er = []; } - goto n598;} - goto a597; - n598: + goto n650;} + goto a649; + n650: break; case 32: case 82: if (!$this->b364()) { - goto n599;} - goto a597; - n599: + goto n651;} + goto a649; + n651: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n600;} - goto a597; - n600: + goto n652;} + goto a649; + n652: break; case 36: case 84: // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n601;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -7661,138 +7347,124 @@ private function b281(): bool $this->rec(224); } - goto e603; + goto e655; } if (!$this->b224()) { - goto e603;} + goto e655;} if ($this->p === $b2) { $k2 = 1; - goto e603; + goto e655; } $k2++; } - e603: + e655: if ($k2 < 1) { - goto f602; + goto f654; } - goto k602; - f602: + goto k654; + f654: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n601; - k602: - goto a597; - n601: + goto n653; + k654: + goto a649; + n653: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n604;} - goto a597; - n604: + goto n656;} + goto a649; + n656: break; case 34: - if (!$this->b282()) { - goto n605;} - goto a597; - n605: - if (($this->ids[$this->p] === 34)) { + // b282 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; + $this->rec(54); } - goto n606;} - goto a597; - n606: - break; - } - - if ($this->p > $this->f) { - $this->rec(281); - } - - goto f596; - a597: - goto k596; - f596: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k596: - - return true; - } - - private function b282(): bool - { - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(282); - } - return false;} + goto f658;} + // b284 + if (!($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->rec(284); + } - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(54); - } + goto f658;} - goto f837;} - // b284 - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(284); - } + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 34: + if (!$this->b285()) { + goto n661;} + goto a660; + n661: + if (!$this->b362()) { + goto n662;} + goto a660; + n662: + break; + } - goto f837;} + if ($this->p > $this->f) { + $this->rec(284); + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 34: - if (!$this->b285()) { - goto n840;} - goto a839; - n840: - if (!$this->b362()) { - goto n841;} - goto a839; - n841: + goto f659; + a660: + goto k659; + f659: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f658; + k659: + goto k658; + f658: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n657; + k658: + goto a649; + n657: + if (($this->ids[$this->p] === 34)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n663;} + goto a649; + n663: break; } if ($this->p > $this->f) { - $this->rec(284); + $this->rec(281); } - goto f838; - a839: - goto k838; - f838: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f837; - k838: - goto k837; - f837: + goto f648; + a649: + goto k648; + f648: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k837: + k648: return true; } @@ -7809,13 +7481,6 @@ private function b285(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 34)) { - if ($this->p >= $this->f) { - $this->rec(54); - } - - goto f1080;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -7828,14 +7493,39 @@ private function b285(): bool $this->rec(204); } - goto e1082; + goto e900; } $this->p++; } - e1082: - if (!$this->b286()) { - goto f1080;} + e900: + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); + } + + goto f898;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f901;} + if (!$this->b293()) { + goto f901;} + if (!$this->b296()) { + goto f901;} + goto k901; + f901: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f898; + k901: + $this->v[$m2] = $this->reduceCallableTemplateArgument(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; // b203 $o2 = $this->p; $m2 = $this->n; @@ -7847,16 +7537,57 @@ private function b285(): bool $this->rec(204); } - goto e1084; + goto e903; } $this->p++; } - e1084: + e903: if (($this->ids[$this->p] === 40)) { - if (!$this->b300()) { - goto n1085;} - n1085: + // b300 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(300); + } + + goto n904;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(301); + } + + goto e906; + } + + if (!$this->b301()) { + goto e906;} + if ($this->p === $b2) { + $k2 = 1; + goto e906; + } + + $k2++; + } + e906: + + if ($k2 < 1) { + goto f905; + } + goto k905; + f905: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n904; + k905: + n904: } elseif ($this->p > $this->f) { $this->rec(300); } @@ -7865,7 +7596,7 @@ private function b285(): bool $this->rec(56); } - goto f1080;} + goto f898;} $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -7873,7 +7604,7 @@ private function b285(): bool $this->rec(16); } - goto f1080;} + goto f898;} $this->v[$this->n++] = $this->token($this->p++); // b203 @@ -7887,12 +7618,12 @@ private function b285(): bool $this->rec(204); } - goto e1087; + goto e908; } $this->p++; } - e1087: + e908: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { // b306 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -7900,13 +7631,13 @@ private function b285(): bool $this->rec(306); } - goto n1088;} + goto n909;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b307()) { - goto f1089;} + goto f910;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -7918,27 +7649,27 @@ private function b285(): bool $this->rec(204); } - goto e1091; + goto e912; } $this->p++; } - e1091: + e912: if (($this->ids[$this->p] === 40)) { if (!$this->b311()) { - goto n1092;} - n1092: + goto n913;} + n913: } elseif ($this->p > $this->f) { $this->rec(311); } - goto k1089; - f1089: + goto k910; + f910: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1088; - k1089: - n1088: + goto n909; + k910: + n909: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -7947,7 +7678,7 @@ private function b285(): bool $this->rec(53); } - goto f1080;} + goto f898;} $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 47)) { @@ -7955,58 +7686,19 @@ private function b285(): bool $this->rec(70); } - goto f1080;} + goto f898;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b315()) { - goto f1080;} - goto k1080; - f1080: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1080: - $this->v[$m1] = $this->reduceCallableWithTemplates(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b286(): bool - { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1375;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b287()) { - goto f1375;} - if (!$this->b293()) { - goto f1375;} - if (!$this->b296()) { - goto f1375;} - goto k1375; - f1375: + goto f898;} + goto k898; + f898: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1375: - $this->v[$m1] = $this->reduceCallableTemplateArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k898: + $this->v[$m1] = $this->reduceCallableWithTemplates(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -8029,7 +7721,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f504;} + goto f570;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8037,49 +7729,35 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f504;} + goto f570;} } - goto k504; - f504: + goto k570; + f570: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n503; - k504: - goto a502; - n503: + goto n569; + k570: + goto a568; + n569: break; case 13: // b288 - if (!($this->ids[$this->p] === 13)) { - if ($this->p > $this->f) { - $this->rec(288); - } - - goto n505;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 13)) { - if ($this->p >= $this->f) { - $this->rec(27); - } - - goto f506;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f506;} - goto k506; - f506: + goto f572;} + goto k572; + f572: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n505; - k506: - goto a502; - n505: + goto n571; + k572: + goto a568; + n571: // b290 $o2 = $this->p; $m2 = $this->n; @@ -8090,7 +7768,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f508;} + goto f574;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8098,49 +7776,35 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f508;} + goto f574;} } - goto k508; - f508: + goto k574; + f574: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n507; - k508: - goto a502; - n507: + goto n573; + k574: + goto a568; + n573: break; case 14: // b289 - if (!($this->ids[$this->p] === 14)) { - if ($this->p > $this->f) { - $this->rec(289); - } - - goto n509;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 14)) { - if ($this->p >= $this->f) { - $this->rec(28); - } - - goto f510;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f510;} - goto k510; - f510: + goto f576;} + goto k576; + f576: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n509; - k510: - goto a502; - n509: + goto n575; + k576: + goto a568; + n575: // b290 $o2 = $this->p; $m2 = $this->n; @@ -8151,7 +7815,7 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f512;} + goto f578;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -8159,17 +7823,17 @@ private function b287(): bool $this->f = $this->p; $this->er = []; } - goto f512;} + goto f578;} } - goto k512; - f512: + goto k578; + f578: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n511; - k512: - goto a502; - n511: + goto n577; + k578: + goto a568; + n577: break; } @@ -8177,15 +7841,15 @@ private function b287(): bool $this->rec(287); } - goto f501; - a502: - goto k501; - f501: + goto f567; + a568: + goto k567; + f567: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k501: + k567: return true; } @@ -8202,49 +7866,35 @@ private function b293(): bool $this->f = $this->p; $this->er = []; } - goto n515;} - goto a514; - n515: + goto n581;} + goto a580; + n581: break; case 5: // b294 - if (!($this->ids[$this->p] === 5)) { - if ($this->p > $this->f) { - $this->rec(294); - } - - goto n516;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 5)) { - if ($this->p >= $this->f) { - $this->rec(29); - } - - goto f517;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f517;} - goto k517; - f517: + goto f583;} + goto k583; + f583: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n516; - k517: - goto a514; - n516: + goto n582; + k583: + goto a580; + n582: if (($this->ids[$this->p] === 5)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n518;} - goto a514; - n518: + goto n584;} + goto a580; + n584: break; } @@ -8252,15 +7902,15 @@ private function b293(): bool $this->rec(293); } - goto f513; - a514: - goto k513; - f513: + goto f579; + a580: + goto k579; + f579: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k513: + k579: return true; } @@ -8277,49 +7927,35 @@ private function b296(): bool $this->f = $this->p; $this->er = []; } - goto n521;} - goto a520; - n521: + goto n587;} + goto a586; + n587: break; case 46: // b297 - if (!($this->ids[$this->p] === 46)) { - if ($this->p > $this->f) { - $this->rec(297); - } - - goto n522;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 46)) { - if ($this->p >= $this->f) { - $this->rec(69); - } - - goto f523;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b199()) { - goto f523;} - goto k523; - f523: + goto f589;} + goto k589; + f589: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n522; - k523: - goto a520; - n522: + goto n588; + k589: + goto a586; + n588: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n524;} - goto a520; - n524: + goto n590;} + goto a586; + n590: break; } @@ -8327,24 +7963,24 @@ private function b296(): bool $this->rec(296); } - goto f519; - a520: - goto k519; - f519: + goto f585; + a586: + goto k585; + f585: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k519: + k585: return true; } - private function b300(): bool + private function b301(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(300); + $this->rec(301); } return false;} @@ -8352,90 +7988,28 @@ private function b300(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - $k1 = 0; + $this->v[$this->n++] = $this->token($this->p++); + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(301); - } - - goto e1418; - } - - // b301 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(301); - } - - goto e1418;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1419;} - - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1421; + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); } - $this->p++; - } - e1421: - if (!$this->b302()) { - goto f1419;} - goto k1419; - f1419: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto e1418; - k1419: - if ($this->p === $b1) { - $k1 = 1; - goto e1418; + goto e1194; } - $k1++; - } - e1418: - - if ($k1 < 1) { - goto f1417; + $this->p++; } - goto k1417; - f1417: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1417: - - return true; - } - - private function b302(): bool - { - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; + e1194: + // b302 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; switch ($this->ids[$this->p]) { default: break; @@ -8458,45 +8032,10 @@ private function b302(): bool case 17: case 18: case 24: - // b304 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(304); - } - - goto n1626;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b286()) { - goto f1627;} - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1629; - } - - $this->p++; - } - e1629: - goto k1627; - f1627: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1626; - k1627: - goto a1625; - n1626: + if (!$this->b304()) { + goto n1197;} + goto a1196; + n1197: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -8504,9 +8043,9 @@ private function b302(): bool $this->rec(56); } - goto n1630;} - goto a1625; - n1630: + goto n1198;} + goto a1196; + n1198: break; } @@ -8514,15 +8053,82 @@ private function b302(): bool $this->rec(302); } - goto f1624; - a1625: - goto k1624; - f1624: + goto f1195; + a1196: + goto k1195; + f1195: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1192; + k1195: + goto k1192; + f1192: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1192: + + return true; + } + + private function b304(): bool + { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(304); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + // b286 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1470;} + if (!$this->b293()) { + goto f1470;} + if (!$this->b296()) { + goto f1470;} + goto k1470; + f1470: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1469; + k1470: + $this->v[$m2] = $this->reduceCallableTemplateArgument(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1472; + } + + $this->p++; + } + e1472: + goto k1469; + f1469: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1624: + k1469: return true; } @@ -8540,7 +8146,7 @@ private function b307(): bool $m1 = $this->n; $cs1 = $this->comments; if (!$this->b199()) { - goto f1045;} + goto f1154;} if (($this->ids[$this->p] === 27)) { $this->v[$this->n++] = $this->token($this->p++); } elseif ($this->p >= $this->f) { @@ -8561,14 +8167,14 @@ private function b307(): bool } elseif ($this->p >= $this->f) { $this->rec(69); } - goto k1045; - f1045: + goto k1154; + f1154: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1045: - $this->v[$m1] = $this->reduceCallableParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1154: + $this->v[$m1] = $this->reduceCallableParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -8594,7 +8200,7 @@ private function b311(): bool $this->rec(312); } - goto e1047; + goto e1156; } // b312 @@ -8603,18 +8209,11 @@ private function b311(): bool $this->rec(312); } - goto e1047;} + goto e1156;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1048;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o3 = $this->p; @@ -8627,40 +8226,40 @@ private function b311(): bool $this->rec(204); } - goto e1050; + goto e1159; } $this->p++; } - e1050: + e1159: if (!$this->b313()) { - goto f1048;} - goto k1048; - f1048: + goto f1157;} + goto k1157; + f1157: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1047; - k1048: + goto e1156; + k1157: if ($this->p === $b1) { $k1 = 1; - goto e1047; + goto e1156; } $k1++; } - e1047: + e1156: if ($k1 < 1) { - goto f1046; + goto f1155; } - goto k1046; - f1046: + goto k1155; + f1155: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1046: + k1155: return true; } @@ -8701,18 +8300,11 @@ private function b313(): bool case 32: case 82: // b314 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(314); - } - - goto n1398;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; if (!$this->b307()) { - goto f1399;} + goto f1452;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -8724,21 +8316,21 @@ private function b313(): bool $this->rec(204); } - goto e1401; + goto e1454; } $this->p++; } - e1401: - goto k1399; - f1399: + e1454: + goto k1452; + f1452: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1398; - k1399: - goto a1397; - n1398: + goto n1451; + k1452: + goto a1450; + n1451: break; case 33: if (!($this->ids[$this->p] === 33)) { @@ -8746,9 +8338,9 @@ private function b313(): bool $this->rec(53); } - goto n1402;} - goto a1397; - n1402: + goto n1455;} + goto a1450; + n1455: break; } @@ -8756,15 +8348,15 @@ private function b313(): bool $this->rec(313); } - goto f1396; - a1397: - goto k1396; - f1396: + goto f1449; + a1450: + goto k1449; + f1449: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1396: + k1449: return true; } @@ -8799,23 +8391,9 @@ private function b315(): bool case 18: case 24: // b331 - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(331); - } - - goto n1053;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(332); - } - - goto f1054;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -8823,27 +8401,20 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1054;} + goto f1163;} } if (!$this->b318()) { - goto f1054;} - goto k1054; - f1054: + goto f1163;} + goto k1163; + f1163: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1053; - k1054: - goto a1052; - n1053: + goto n1162; + k1163: + goto a1161; + n1162: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1055;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -8860,32 +8431,25 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1056;} + goto f1165;} } if (!$this->b335()) { - goto f1056;} - goto k1056; - f1056: + goto f1165;} + goto k1165; + f1165: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1055; - k1056: - goto a1052; - n1055: + goto n1164; + k1165: + goto a1161; + n1164: break; case 19: case 20: case 21: case 22: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1058;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -8902,39 +8466,60 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1059;} + goto f1168;} } if (!$this->b335()) { - goto f1059;} - goto k1059; - f1059: + goto f1168;} + goto k1168; + f1168: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1058; - k1059: - goto a1052; - n1058: + goto n1167; + k1168: + goto a1161; + n1167: break; case 3: case 4: case 8: if (!$this->b255()) { - goto n1061;} - goto a1052; - n1061: - if (!$this->b317()) { - goto n1062;} - goto a1052; - n1062: + goto n1170;} + goto a1161; + n1170: + // b317 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1172;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1172;} + } + if (!$this->b318()) { + goto f1172;} + goto k1172; + f1172: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1171; + k1172: + goto a1161; + n1171: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1063;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -8951,44 +8536,65 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1064;} + goto f1174;} } if (!$this->b335()) { - goto f1064;} - goto k1064; - f1064: + goto f1174;} + goto k1174; + f1174: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1063; - k1064: - goto a1052; - n1063: + goto n1173; + k1174: + goto a1161; + n1173: break; case 32: case 82: if (!$this->b316()) { - goto n1066;} - goto a1052; - n1066: + goto n1176;} + goto a1161; + n1176: break; case 6: if (!$this->b267()) { - goto n1067;} - goto a1052; - n1067: - if (!$this->b317()) { - goto n1068;} - goto a1052; - n1068: + goto n1177;} + goto a1161; + n1177: + // b317 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1179;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1179;} + } + if (!$this->b318()) { + goto f1179;} + goto k1179; + f1179: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1178; + k1179: + goto a1161; + n1178: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1069;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -9005,37 +8611,58 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1070;} + goto f1181;} } if (!$this->b335()) { - goto f1070;} - goto k1070; - f1070: + goto f1181;} + goto k1181; + f1181: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1069; - k1070: - goto a1052; - n1069: + goto n1180; + k1181: + goto a1161; + n1180: break; case 7: if (!$this->b230()) { - goto n1072;} - goto a1052; - n1072: - if (!$this->b317()) { - goto n1073;} - goto a1052; - n1073: + goto n1183;} + goto a1161; + n1183: + // b317 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1185;} + } + if (($this->ids[$this->p] === 38)) { + if (($this->ids[$this->p] === 38)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1185;} + } + if (!$this->b318()) { + goto f1185;} + goto k1185; + f1185: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1184; + k1185: + goto a1161; + n1184: // b333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1074;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; @@ -9052,59 +8679,45 @@ private function b315(): bool $this->f = $this->p; $this->er = []; } - goto f1075;} + goto f1187;} } if (!$this->b335()) { - goto f1075;} - goto k1075; - f1075: + goto f1187;} + goto k1187; + f1187: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1074; - k1075: - goto a1052; - n1074: + goto n1186; + k1187: + goto a1161; + n1186: break; case 25: if (!$this->b229()) { - goto n1077;} - goto a1052; - n1077: + goto n1189;} + goto a1161; + n1189: break; case 30: // b200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } - - goto n1078;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } - - goto f1079;} - $this->v[$this->n++] = $this->token($this->p++); if (!$this->b201()) { - goto f1079;} - goto k1079; - f1079: + goto f1191;} + goto k1191; + f1191: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1078; - k1079: - $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto n1190; + k1191: + $this->v[$m2] = $this->reduceNullable(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); $this->n = $m2 + 1; - goto a1052; - n1078: + goto a1161; + n1190: break; } @@ -9112,16 +8725,16 @@ private function b315(): bool $this->rec(315); } - goto f1051; - a1052: - goto k1051; - f1051: + goto f1160; + a1161: + goto k1160; + f1160: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1051: - $this->v[$m1] = $this->reduceCallableReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k1160: + $this->v[$m1] = $this->reduceCallableReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; @@ -9138,1057 +8751,26 @@ private function b316(): bool $o1 = $this->p; $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f1413;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b205()) { - goto f1413;} - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - - goto f1413;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n1414;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e1416; - } - - if (!$this->b224()) { - goto e1416;} - if ($this->p === $b2) { - $k2 = 1; - goto e1416; - } - - $k2++; - } - e1416: - - if ($k2 < 1) { - goto f1415; - } - goto k1415; - f1415: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1414; - k1415: - n1414: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k1413; - f1413: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1413: - - return true; - } - - private function b317(): bool - { - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(317); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f1412;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1412;} - } - if (($this->ids[$this->p] === 38)) { - if (($this->ids[$this->p] === 38)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1412;} - } - if (!$this->b318()) { - goto f1412;} - goto k1412; - f1412: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1412: - - return true; - } - - private function b318(): bool - { - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n1405;} - goto a1404; - n1405: - break; - case 34: - case 86: - if (!$this->b319()) { - goto n1406;} - goto a1404; - n1406: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n1407;} - goto a1404; - n1407: - break; - case 36: - case 84: - // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n1408;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e1410; - } - - if (!$this->b224()) { - goto e1410;} - if ($this->p === $b2) { - $k2 = 1; - goto e1410; - } - - $k2++; - } - e1410: - - if ($k2 < 1) { - goto f1409; - } - goto k1409; - f1409: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1408; - k1409: - goto a1404; - n1408: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n1411;} - goto a1404; - n1411: - break; - } - - if ($this->p > $this->f) { - $this->rec(318); - } - - goto f1403; - a1404: - goto k1403; - f1403: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1403: - - return true; - } - - private function b319(): bool - { - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(319); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!$this->b320()) { - goto f1620;} - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n1621;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e1623; - } - - if (!$this->b224()) { - goto e1623;} - if ($this->p === $b2) { - $k2 = 1; - goto e1623; - } - - $k2++; - } - e1623: - - if ($k2 < 1) { - goto f1622; - } - goto k1622; - f1622: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1621; - k1622: - n1621: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k1620; - f1620: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1620: - - return true; - } - - private function b320(): bool - { - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(320); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f525;} - - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e527; - } - - $this->p++; - } - e527: - if (!$this->b321()) { - goto f525;} - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e529; - } - - $this->p++; - } - e529: - if (($this->ids[$this->p] === 40)) { - if (!$this->b327()) { - goto n530;} - n530: - } elseif ($this->p > $this->f) { - $this->rec(327); - } - if (!($this->ids[$this->p] === 35)) { - if ($this->p >= $this->f) { - $this->rec(56); - } - - goto f525;} - - $this->v[$this->n++] = $this->token($this->p++); - goto k525; - f525: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k525: - $this->v[$m1] = $this->reduceGenericInReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b321(): bool - { - if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(321); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 82: - // b324 - if (!isset(self::Tfc0ac6dd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(324); - } - - goto n779;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (isset(self::T05cf281c[$this->ids[$this->p]])) { - if (isset(self::T05cf281c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f780;} - } - if (!$this->b199()) { - goto f780;} - goto k780; - f780: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n779; - k780: - goto a778; - n779: - break; - case 1: - case 2: - // b322 - if (!isset(self::T05cf281c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(322); - } - - goto n781;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T05cf281c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(323); - } - - goto f782;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b199()) { - goto f782;} - goto k782; - f782: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n781; - k782: - goto a778; - n781: - break; - case 50: - $this->v[$this->n++] = $this->token($this->p++); - goto a778; - break; - case 85: - $this->v[$this->n++] = $this->token($this->p++); - goto a778; - break; - } - - if ($this->p > $this->f) { - $this->rec(321); - } - - goto f777; - a778: - goto k777; - f777: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k777: - $this->v[$m1] = $this->reduceGenericArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b327(): bool - { - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(327); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(328); - } - - goto e784; - } - - // b328 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(328); - } - - goto e784;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f785;} - - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e787; - } - - $this->p++; - } - e787: - if (!$this->b329()) { - goto f785;} - goto k785; - f785: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto e784; - k785: - if ($this->p === $b1) { - $k1 = 1; - goto e784; - } - - $k1++; - } - e784: - - if ($k1 < 1) { - goto f783; - } - goto k783; - f783: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k783: - - return true; - } - - private function b329(): bool - { - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 50: - case 82: - case 85: - // b330 - if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(330); - } - - goto n1015;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b321()) { - goto f1016;} - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1018; - } - - $this->p++; - } - e1018: - goto k1016; - f1016: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1015; - k1016: - goto a1014; - n1015: - break; - case 35: - if (!($this->ids[$this->p] === 35)) { - if ($this->p > $this->f) { - $this->rec(56); - } - - goto n1019;} - goto a1014; - n1019: - break; - } - - if ($this->p > $this->f) { - $this->rec(329); - } - - goto f1013; - a1014: - goto k1013; - f1013: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k1013: - - return true; - } - - private function b335(): bool - { - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(335); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (isset(self::T1e81050f[$this->ids[$this->p]])) { - $sf = $this->f; - $se = $this->er; - $sp = $this->p; - $matched = $this->s337(); - $this->f = $sf; - $this->er = $se; - $this->p = $sp; - if ($matched) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f608;} - } - if (!$this->b340()) { - goto f608;} - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // b223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n610;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e612; - } - - if (!$this->b224()) { - goto e612;} - if ($this->p === $b2) { - $k2 = 1; - goto e612; - } - - $k2++; - } - e612: - - if ($k2 < 1) { - goto f611; - } - goto k611; - f611: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n610; - k611: - n610: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k608; - f608: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k608: - - return true; - } - - private function b340(): bool - { - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(340); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 24: - if (!$this->b357()) { - goto n172;} - goto a171; - n172: - break; - case 7: - case 18: - if (!$this->b347()) { - goto n173;} - goto a171; - n173: - break; - case 21: - case 22: - if (!$this->b343()) { - goto n174;} - goto a171; - n174: - break; - case 36: - case 84: - if (!$this->b361()) { - goto n175;} - goto a171; - n175: - break; - case 15: - $this->v[$this->n++] = $this->reduceConstantFalse($this->indexes[$this->p], $this->indexes[$this->p]); - $this->p++; - goto a171; - break; - case 16: - $this->v[$this->n++] = $this->reduceConstantTrue($this->indexes[$this->p], $this->indexes[$this->p]); - $this->p++; - goto a171; - break; - case 17: - $this->v[$this->n++] = $this->reduceConstantNull($this->indexes[$this->p], $this->indexes[$this->p]); - $this->p++; - goto a171; - break; - case 19: - $this->v[$this->n++] = $this->reduceConstantFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); - $this->p++; - goto a171; - break; - case 20: - $this->v[$this->n++] = $this->reduceConstantInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); - $this->p++; - goto a171; - break; - } - - if ($this->p > $this->f) { - $this->rec(340); - } - - goto f170; - a171: - goto k170; - f170: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k170: - - return true; - } - - private function b343(): bool - { - if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(343); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 21: - $this->v[$this->n++] = $this->token($this->p++); - goto a426; - break; - case 22: - $this->v[$this->n++] = $this->token($this->p++); - goto a426; - break; - } - - if ($this->p > $this->f) { - $this->rec(343); - } - - goto f425; - a426: - goto k425; - f425: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k425: - $this->v[$m1] = $this->reduceConstantString(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b347(): bool - { - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(347); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(339); - } - - goto f423;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f423;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if (!$this->b349()) { - goto n424;} - n424: - } elseif ($this->p > $this->f) { - $this->rec(349); - } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - - goto f423;} - - $this->v[$this->n++] = $this->token($this->p++); - goto k423; - f423: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k423: - $this->v[$m1] = $this->reduceConstantArrayLiteral(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b349(): bool - { - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(349); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - // b350 - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(350); + $cs1 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b205()) { + goto f1465;} + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); } - goto f699;} + goto f1465;} - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b340()) { - goto f700;} - if (!$this->b351()) { - goto f700;} - goto k700; - f700: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f699; - k700: - $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - if (($this->ids[$this->p] === 40)) { - // b355 - if (!($this->ids[$this->p] === 40)) { + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(355); + $this->rec(223); } - goto n701;} + goto n1466;} $o2 = $this->p; $m2 = $this->n; @@ -10196,312 +8778,154 @@ private function b349(): bool $k2 = 0; while (true) { $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { if ($b2 > $this->f) { - $this->rec(356); + $this->rec(224); } - goto e703; + goto e1468; } - if (!$this->b356()) { - goto e703;} + if (!$this->b224()) { + goto e1468;} if ($this->p === $b2) { $k2 = 1; - goto e703; + goto e1468; } $k2++; } - e703: + e1468: if ($k2 < 1) { - goto f702; + goto f1467; } - goto k702; - f702: + goto k1467; + f1467: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n701; - k702: - n701: + goto n1466; + k1467: + n1466: } elseif ($this->p > $this->f) { - $this->rec(355); - } - if (($this->ids[$this->p] === 40)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(63); + $this->rec(223); } - goto k699; - f699: + goto k1465; + f1465: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k699: + k1465: return true; } - private function b351(): bool + private function b318(): bool { $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - if (($this->ids[$this->p] === 44)) { + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n951;} - goto a950; - n951: + goto n1458;} + goto a1457; + n1458: break; - case 44: - // b352 - if (!($this->ids[$this->p] === 44)) { + case 34: + case 86: + if (!$this->b319()) { + goto n1459;} + goto a1457; + n1459: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(352); + $this->f = $this->p; + $this->er = []; } - - goto n952;} - + goto n1460;} + goto a1457; + n1460: + break; + case 36: + case 84: + // b223 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 44)) { - if ($this->p >= $this->f) { - $this->rec(67); + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } + + goto e1463; + } + + if (!$this->b224()) { + goto e1463;} + if ($this->p === $b2) { + $k2 = 1; + goto e1463; } - goto f953;} + $k2++; + } + e1463: - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b340()) { - goto f953;} - goto k953; - f953: + if ($k2 < 1) { + goto f1462; + } + goto k1462; + f1462: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n952; - k953: - goto a950; - n952: - if (($this->ids[$this->p] === 44)) { + goto n1461; + k1462: + goto a1457; + n1461: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n954;} - goto a950; - n954: + goto n1464;} + goto a1457; + n1464: break; } if ($this->p > $this->f) { - $this->rec(351); - } - - goto f949; - a950: - goto k949; - f949: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k949: - - return true; - } - - private function b356(): bool - { - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(356); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f955;} - - $this->v[$this->n++] = $this->token($this->p++); - // b350 - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(350); - } - - goto f955;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b340()) { - goto f956;} - if (!$this->b351()) { - goto f956;} - goto k956; - f956: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f955; - k956: - $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); - $this->n = $m2 + 1; - goto k955; - f955: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k955: - - return true; - } - - private function b357(): bool - { - if (!isset(self::Td08a6883[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(357); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (isset(self::T1ad6c327[$this->ids[$this->p]])) { - if (isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f420;} - } - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f420;} - - $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 43)) { - // b360 - if (!($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->rec(360); - } - - goto n421;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 43)) { - if ($this->p >= $this->f) { - $this->rec(66); - } - - goto f422;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b163()) { - goto f422;} - goto k422; - f422: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n421; - k422: - n421: - } elseif ($this->p > $this->f) { - $this->rec(360); - } - goto k420; - f420: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k420: - $this->v[$m1] = $this->reduceConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; - - return true; - } - - private function b361(): bool - { - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(361); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); - } - - goto f427;} - - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if (!$this->b349()) { - goto n428;} - n428: - } elseif ($this->p > $this->f) { - $this->rec(349); + $this->rec(318); } - if (!($this->ids[$this->p] === 37)) { - if ($this->p >= $this->f) { - $this->rec(59); - } - - goto f427;} - $this->v[$this->n++] = $this->token($this->p++); - goto k427; - f427: + goto f1456; + a1457: + goto k1456; + f1456: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k427: - $this->v[$m1] = $this->reduceConstantArrayShorthand(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k1456: return true; } - private function b362(): bool + private function b319(): bool { - if (!($this->ids[$this->p] === 34)) { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(362); + $this->rec(319); } return false;} @@ -10509,8 +8933,8 @@ private function b362(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!$this->b363()) { - goto f1093;} + if (!$this->b320()) { + goto f1646;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // b223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -10518,7 +8942,7 @@ private function b362(): bool $this->rec(223); } - goto n1094;} + goto n1647;} $o2 = $this->p; $m2 = $this->n; @@ -10531,50 +8955,50 @@ private function b362(): bool $this->rec(224); } - goto e1096; + goto e1649; } if (!$this->b224()) { - goto e1096;} + goto e1649;} if ($this->p === $b2) { $k2 = 1; - goto e1096; + goto e1649; } $k2++; } - e1096: + e1649: if ($k2 < 1) { - goto f1095; + goto f1648; } - goto k1095; - f1095: + goto k1648; + f1648: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1094; - k1095: - n1094: + goto n1647; + k1648: + n1647: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1093; - f1093: + goto k1646; + f1646: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1093: + k1646: return true; } - private function b363(): bool + private function b320(): bool { - if (!($this->ids[$this->p] === 34)) { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(363); + $this->rec(320); } return false;} @@ -10582,13 +9006,6 @@ private function b363(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 34)) { - if ($this->p >= $this->f) { - $this->rec(54); - } - - goto f1422;} - $this->v[$this->n++] = $this->token($this->p++); // b203 $o2 = $this->p; @@ -10601,14 +9018,14 @@ private function b363(): bool $this->rec(204); } - goto e1424; + goto e303; } $this->p++; } - e1424: + e303: if (!$this->b321()) { - goto f1422;} + goto f301;} // b203 $o2 = $this->p; $m2 = $this->n; @@ -10620,16 +9037,16 @@ private function b363(): bool $this->rec(204); } - goto e1426; + goto e305; } $this->p++; } - e1426: + e305: if (($this->ids[$this->p] === 40)) { if (!$this->b327()) { - goto n1427;} - n1427: + goto n306;} + n306: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -10638,27 +9055,27 @@ private function b363(): bool $this->rec(56); } - goto f1422;} + goto f301;} $this->v[$this->n++] = $this->token($this->p++); - goto k1422; - f1422: + goto k301; + f301: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1422: - $this->v[$m1] = $this->reduceGeneric(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k301: + $this->v[$m1] = $this->reduceGenericInReturnType(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } - private function b364(): bool + private function b321(): bool { - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(364); + $this->rec(321); } return false;} @@ -10666,45 +9083,141 @@ private function b364(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + switch ($this->ids[$this->p]) { + default: + break; + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 82: + // b324 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if (isset(self::T05cf281c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f594;} + } + if (!$this->b199()) { + goto f594;} + goto k594; + f594: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n593; + k594: + goto a592; + n593: + break; + case 1: + case 2: + // b322 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b199()) { + goto f596;} + goto k596; + f596: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n595; + k596: + goto a592; + n595: + break; + case 50: + $this->v[$this->n++] = $this->token($this->p++); + goto a592; + break; + case 85: + $this->v[$this->n++] = $this->token($this->p++); + goto a592; + break; + } + + if ($this->p > $this->f) { + $this->rec(321); + } + + goto f591; + a592: + goto k591; + f591: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k591: + $this->v[$m1] = $this->reduceGenericArgument(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; + + return true; + } + + private function b327(): bool + { + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(16); + $this->rec(327); } - goto f821;} + return false;} - $this->v[$this->n++] = $this->token($this->p++); - // b203 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + $k1 = 0; while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(328); } - goto e823; + goto e598; } - $this->p++; - } - e823: - if (isset(self::T7680fe2e[$this->ids[$this->p]])) { - // b306 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b328 + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(306); + $this->rec(328); } - goto n824;} + goto e598;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!$this->b307()) { - goto f825;} + $this->v[$this->n++] = $this->token($this->p++); // b203 $o3 = $this->p; $m3 = $this->n; @@ -10716,113 +9229,87 @@ private function b364(): bool $this->rec(204); } - goto e827; + goto e601; } $this->p++; } - e827: - if (($this->ids[$this->p] === 40)) { - if (!$this->b311()) { - goto n828;} - n828: - } elseif ($this->p > $this->f) { - $this->rec(311); - } - goto k825; - f825: + e601: + if (!$this->b329()) { + goto f599;} + goto k599; + f599: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n824; - k825: - n824: - } elseif ($this->p > $this->f) { - $this->rec(306); - } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - - goto f821;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!($this->ids[$this->p] === 47)) { - if ($this->p >= $this->f) { - $this->rec(70); + goto e598; + k599: + if ($this->p === $b1) { + $k1 = 1; + goto e598; } - goto f821;} + $k1++; + } + e598: - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b315()) { - goto f821;} - goto k821; - f821: + if ($k1 < 1) { + goto f597; + } + goto k597; + f597: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k821: - $this->v[$m1] = $this->reduceCallable(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k597: return true; } - private function b368(): bool + private function b329(): bool { $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - // b383 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f373;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f373;} - } - goto k373; - f373: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n372; - k373: - goto a371; - n372: break; - case 28: - case 29: - case 41: - case 80: - // b369 - if (!isset(self::T8458d590[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(369); - } - - goto n374;} - + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 24: + case 25: + case 30: + case 32: + case 50: + case 82: + case 85: + // b330 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; + if (!$this->b321()) { + goto f857;} // b203 $o3 = $this->p; $m3 = $this->n; @@ -10834,123 +9321,56 @@ private function b368(): bool $this->rec(204); } - goto e377; + goto e859; } - - $this->p++; - } - e377: - if (!$this->b370()) { - goto f375;} - goto k375; - f375: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n374; - k375: - goto a371; - n374: - // b383 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f379;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f379;} + + $this->p++; } - goto k379; - f379: + e859: + goto k857; + f857: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n378; - k379: - goto a371; - n378: + goto n856; + k857: + goto a855; + n856: break; - } - - if ($this->p > $this->f) { - $this->rec(368); - } - - goto f370; - a371: - goto k370; - f370: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k370: - - return true; - } - - private function b370(): bool - { - if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(370); - } - - return false;} + case 35: + if (!($this->ids[$this->p] === 35)) { + if ($this->p > $this->f) { + $this->rec(56); + } - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 28: - if (!$this->b371()) { - goto n639;} - goto a638; - n639: - break; - case 29: - if (!$this->b377()) { - goto n640;} - goto a638; - n640: + goto n860;} + goto a855; + n860: break; } if ($this->p > $this->f) { - $this->rec(370); + $this->rec(329); } - goto f637; - a638: - goto k637; - f637: + goto f854; + a855: + goto k854; + f854: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k637: + k854: return true; } - private function b371(): bool + private function b335(): bool { - if (!($this->ids[$this->p] === 28)) { + if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(371); + $this->rec(335); } return false;} @@ -10958,141 +9378,87 @@ private function b371(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - // b372 - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(372); - } - - goto f873;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 28)) { - if ($b2 > $this->f) { - $this->rec(373); - } - - goto e875; - } - - if (!$this->b373()) { - goto e875;} - if ($this->p === $b2) { - $k2 = 1; - goto e875; - } - - $k2++; - } - e875: - - if ($k2 < 1) { - goto f874; - } - goto k874; - f874: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f873; - k874: - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { + if (isset(self::T1e81050f[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s337(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f873;} + goto f665;} } - goto k873; - f873: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k873: - - return true; - } - - private function b373(): bool - { - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(373); - } + if (!$this->b340()) { + goto f665;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } - return false;} + goto n667;} - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 28)) { - if ($this->p >= $this->f) { - $this->rec(49); - } + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } - goto f1141;} + goto e669; + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b201()) { - goto f1141;} - // b375 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); + if (!$this->b224()) { + goto e669;} + if ($this->p === $b2) { + $k2 = 1; + goto e669; } - goto e1145; + $k2++; } + e669: - $this->p++; - } - e1145: - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(49); + if ($k2 < 1) { + goto f668; } - - goto f1143;} - goto k1143; - f1143: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1142; - k1143: - n1142: - goto k1141; - f1141: + goto k668; + f668: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n667; + k668: + n667: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k665; + f665: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1141: + k665: return true; } - private function b377(): bool + private function b340(): bool { - if (!($this->ids[$this->p] === 29)) { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(377); + $this->rec(340); } return false;} @@ -11100,73 +9466,128 @@ private function b377(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - // b378 - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(378); - } - - goto f876;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 29)) { - if ($b2 > $this->f) { - $this->rec(379); + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 24: + if (!$this->b357()) { + goto n197;} + goto a196; + n197: + break; + case 7: + case 18: + if (!$this->b347()) { + goto n198;} + goto a196; + n198: + break; + case 21: + case 22: + // b343 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + switch ($this->ids[$this->p]) { + default: + break; + case 21: + $this->v[$this->n++] = $this->token($this->p++); + goto a201; + break; + case 22: + $this->v[$this->n++] = $this->token($this->p++); + goto a201; + break; } - goto e878; - } - - if (!$this->b379()) { - goto e878;} - if ($this->p === $b2) { - $k2 = 1; - goto e878; - } + if ($this->p > $this->f) { + $this->rec(343); + } - $k2++; + goto f200; + a201: + goto k200; + f200: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n199; + k200: + $this->v[$m2] = $this->reduceConstantString(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto a196; + n199: + break; + case 36: + case 84: + if (!$this->b361()) { + goto n202;} + goto a196; + n202: + break; + case 15: + $this->v[$this->n++] = $this->reduceConstantFalse($this->indexes[$this->p], $this->indexes[$this->p]); + $this->p++; + goto a196; + break; + case 16: + $this->v[$this->n++] = $this->reduceConstantTrue($this->indexes[$this->p], $this->indexes[$this->p]); + $this->p++; + goto a196; + break; + case 17: + $this->v[$this->n++] = $this->reduceConstantNull($this->indexes[$this->p], $this->indexes[$this->p]); + $this->p++; + goto a196; + break; + case 19: + $this->v[$this->n++] = $this->reduceConstantFloat($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); + $this->p++; + goto a196; + break; + case 20: + $this->v[$this->n++] = $this->reduceConstantInteger($this->indexes[$this->p], $this->indexes[$this->p], [$this->token($this->p)]); + $this->p++; + goto a196; + break; } - e878: - if ($k2 < 1) { - goto f877; - } - goto k877; - f877: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f876; - k877: - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f876;} + if ($this->p > $this->f) { + $this->rec(340); } - goto k876; - f876: + + goto f195; + a196: + goto k195; + f195: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k876: + k195: return true; } - private function b379(): bool + private function b347(): bool { - if (!($this->ids[$this->p] === 29)) { + if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(379); + $this->rec(347); } return false;} @@ -11174,67 +9595,48 @@ private function b379(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 29)) { - if ($this->p >= $this->f) { - $this->rec(50); + $this->v[$this->n++] = $this->token($this->p++); + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); } - goto f1146;} + goto f474;} $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b201()) { - goto f1146;} - // b381 - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - // b203 - $o3 = $this->p; - $m3 = $this->n; - $cs3 = $this->comments; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1150; - } - - $this->p++; + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->b349()) { + goto n475;} + n475: + } elseif ($this->p > $this->f) { + $this->rec(349); } - e1150: - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(50); + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); } - goto f1148;} - goto k1148; - f1148: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1147; - k1148: - n1147: - goto k1146; - f1146: + goto f474;} + + $this->v[$this->n++] = $this->token($this->p++); + goto k474; + f474: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1146: + k474: + $this->v[$m1] = $this->reduceConstantArrayLiteral(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b384(): bool + private function b349(): bool { - if (!($this->ids[$this->p] === 75)) { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(384); + $this->rec(349); } return false;} @@ -11242,150 +9644,268 @@ private function b384(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 75)) { - if ($this->p >= $this->f) { - $this->rec(90); - } + // b350 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b340()) { + goto f758;} + if (!$this->b351()) { + goto f758;} + goto k758; + f758: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f757; + k758: + $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + if (($this->ids[$this->p] === 40)) { + // b355 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(355); + } - goto f298;} + goto n759;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b199()) { - goto f298;} - if (!$this->b385()) { - goto f298;} - goto k298; - f298: + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(356); + } + + goto e761; + } + + if (!$this->b356()) { + goto e761;} + if ($this->p === $b2) { + $k2 = 1; + goto e761; + } + + $k2++; + } + e761: + + if ($k2 < 1) { + goto f760; + } + goto k760; + f760: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n759; + k760: + n759: + } elseif ($this->p > $this->f) { + $this->rec(355); + } + if (($this->ids[$this->p] === 40)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(63); + } + goto k757; + f757: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k298: + k757: return true; } - private function b385(): bool + private function b351(): bool { $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - if (!$this->b388()) { - goto n548;} - goto a547; - n548: - break; - case 25: - case 26: - // b386 - if (!isset(self::T29c7f960[$this->ids[$this->p]])) { + if (($this->ids[$this->p] === 44)) { if ($this->p > $this->f) { - $this->rec(386); + $this->f = $this->p; + $this->er = []; } - - goto n549;} - + goto n1047;} + goto a1046; + n1047: + break; + case 44: + // b352 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::T29c7f960[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(387); - } - - goto f550;} - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f550;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k550; - f550: + if (!$this->b340()) { + goto f1049;} + goto k1049; + f1049: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n549; - k550: - goto a547; - n549: - if (!$this->b388()) { - goto n552;} - goto a547; - n552: + goto n1048; + k1049: + goto a1046; + n1048: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1050;} + goto a1046; + n1050: break; } if ($this->p > $this->f) { - $this->rec(385); + $this->rec(351); } - goto f546; - a547: - goto k546; - f546: + goto f1045; + a1046: + goto k1045; + f1045: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k546: + k1045: return true; } - private function b388(): bool + private function b356(): bool { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(356); + } + + return false;} + $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f267;} - } - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { + $this->v[$this->n++] = $this->token($this->p++); + // b350 + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(350); + } + + goto f1051;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b340()) { + goto f1052;} + if (!$this->b351()) { + goto f1052;} + goto k1052; + f1052: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1051; + k1052: + $this->v[$m2] = $this->reduceConstantArrayItem(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto k1051; + f1051: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k1051: + + return true; + } + + private function b357(): bool + { + if (!isset(self::Td08a6883[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(357); + } + + return false;} + + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { + if (isset(self::T1ad6c327[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f267;} + goto f471;} } - if (($this->ids[$this->p] === 32)) { - if (($this->ids[$this->p] === 32)) { + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f471;} + + $this->v[$this->n++] = $this->token($this->p++); + if (($this->ids[$this->p] === 43)) { + // b360 + if (!($this->ids[$this->p] === 43)) { if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; + $this->rec(360); } - goto f267;} + + goto n472;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b163()) { + goto f473;} + goto k473; + f473: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n472; + k473: + n472: + } elseif ($this->p > $this->f) { + $this->rec(360); } - // b125 - $o2 = $this->p; - if (!$this->s125()) { - goto f267;} - $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k267; - f267: + goto k471; + f471: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k267: + k471: + $this->v[$m1] = $this->reduceConstantFetch(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b398(): bool + private function b361(): bool { - if (!($this->ids[$this->p] === 63)) { + if (!isset(self::T885cd349[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(398); + $this->rec(361); } return false;} @@ -11393,63 +9913,40 @@ private function b398(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 63)) { - if ($this->p >= $this->f) { - $this->rec(98); - } - - goto f273;} - $this->v[$this->n++] = $this->token($this->p++); - // b399 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(399); - } - - goto f273;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b199()) { - goto f274;} - if (!($this->ids[$this->p] === 26)) { + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->b349()) { + goto n477;} + n477: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { - $this->rec(47); + $this->rec(59); } - goto f274;} + goto f476;} $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f274;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k274; - f274: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f273; - k274: - goto k273; - f273: + goto k476; + f476: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k273: + k476: + $this->v[$m1] = $this->reduceConstantArrayShorthand(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b400(): bool + private function b362(): bool { - if (!($this->ids[$this->p] === 67)) { + if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { - $this->rec(400); + $this->rec(362); } return false;} @@ -11457,63 +9954,72 @@ private function b400(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 67)) { - if ($this->p >= $this->f) { - $this->rec(108); - } + if (!$this->b363()) { + goto f914;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // b223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } - goto f281;} + goto n915;} - $this->v[$this->n++] = $this->token($this->p++); - // b399 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(399); - } + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(224); + } - goto f281;} + goto e917; + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b199()) { - goto f282;} - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } + if (!$this->b224()) { + goto e917;} + if ($this->p === $b2) { + $k2 = 1; + goto e917; + } - goto f282;} + $k2++; + } + e917: - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f282;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k282; - f282: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f281; - k282: - goto k281; - f281: + if ($k2 < 1) { + goto f916; + } + goto k916; + f916: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n915; + k916: + n915: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k914; + f914: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k281: + k914: return true; } - private function b401(): bool + private function b363(): bool { - if (!($this->ids[$this->p] === 55)) { + if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { - $this->rec(401); + $this->rec(363); } return false;} @@ -11521,63 +10027,76 @@ private function b401(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 55)) { - if ($this->p >= $this->f) { - $this->rec(87); - } - - goto f264;} - $this->v[$this->n++] = $this->token($this->p++); - // b399 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(399); - } + // b203 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } - goto f264;} + goto e1201; + } + $this->p++; + } + e1201: + if (!$this->b321()) { + goto f1199;} + // b203 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!$this->b199()) { - goto f265;} - if (!($this->ids[$this->p] === 26)) { + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1203; + } + + $this->p++; + } + e1203: + if (($this->ids[$this->p] === 40)) { + if (!$this->b327()) { + goto n1204;} + n1204: + } elseif ($this->p > $this->f) { + $this->rec(327); + } + if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { - $this->rec(47); + $this->rec(56); } - goto f265;} + goto f1199;} $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f265;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k265; - f265: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f264; - k265: - goto k264; - f264: + goto k1199; + f1199: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k264: + k1199: + $this->v[$m1] = $this->reduceGeneric(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b402(): bool + private function b364(): bool { - if (!($this->ids[$this->p] === 51)) { + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(402); + $this->rec(364); } return false;} @@ -11585,185 +10104,203 @@ private function b402(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 51)) { - if ($this->p >= $this->f) { - $this->rec(85); - } - - goto f252;} - $this->v[$this->n++] = $this->token($this->p++); - // b403 - if (!($this->ids[$this->p] === 26)) { - if ($this->p > $this->f) { - $this->rec(403); - } - - goto f252;} - + // b203 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e884; } - goto f253;} + $this->p++; + } + e884: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + // b306 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(306); + } + + goto n885;} - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f253;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k253; - f253: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f252; - k253: - goto k252; - f252: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k252: + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b307()) { + goto f886;} + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } - return true; - } + goto e888; + } - private function b404(): bool - { - if (!($this->ids[$this->p] === 54)) { - if ($this->p > $this->f) { - $this->rec(404); + $this->p++; } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 54)) { + e888: + if (($this->ids[$this->p] === 40)) { + if (!$this->b311()) { + goto n889;} + n889: + } elseif ($this->p > $this->f) { + $this->rec(311); + } + goto k886; + f886: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n885; + k886: + n885: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { - $this->rec(86); + $this->rec(53); } - goto f261;} + goto f882;} $this->v[$this->n++] = $this->token($this->p++); - // b403 - if (!($this->ids[$this->p] === 26)) { - if ($this->p > $this->f) { - $this->rec(403); - } - - goto f261;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 26)) { + if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { - $this->rec(47); + $this->rec(70); } - goto f262;} + goto f882;} $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f262;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k262; - f262: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f261; - k262: - goto k261; - f261: + if (!$this->b315()) { + goto f882;} + goto k882; + f882: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k261: + k882: + $this->v[$m1] = $this->reduceCallable(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b405(): bool + private function b368(): bool { - if (!($this->ids[$this->p] === 52)) { - if ($this->p > $this->f) { - $this->rec(405); - } - - return false;} - $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 52)) { - if ($this->p >= $this->f) { - $this->rec(88); - } - - goto f255;} - - $this->v[$this->n++] = $this->token($this->p++); - // b403 - if (!($this->ids[$this->p] === 26)) { - if ($this->p > $this->f) { - $this->rec(403); - } - - goto f255;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } + switch ($this->ids[$this->p]) { + default: + // b383 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f419;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f419;} + } + goto k419; + f419: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n418; + k419: + goto a417; + n418: + break; + case 28: + case 29: + case 41: + case 80: + if (!$this->b369()) { + goto n420;} + goto a417; + n420: + // b383 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f422;} + } + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f422;} + } + goto k422; + f422: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n421; + k422: + goto a417; + n421: + break; + } - goto f256;} + if ($this->p > $this->f) { + $this->rec(368); + } - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f256;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k256; - f256: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f255; - k256: - goto k255; - f255: + goto f416; + a417: + goto k416; + f416: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k255: + k416: return true; } - private function b406(): bool + private function b369(): bool { - if (!($this->ids[$this->p] === 53)) { + if (!isset(self::T8458d590[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(406); + $this->rec(369); } return false;} @@ -11771,61 +10308,41 @@ private function b406(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 53)) { - if ($this->p >= $this->f) { - $this->rec(89); - } - - goto f258;} - - $this->v[$this->n++] = $this->token($this->p++); - // b403 - if (!($this->ids[$this->p] === 26)) { - if ($this->p > $this->f) { - $this->rec(403); - } - - goto f258;} - + // b203 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } - goto f259;} + goto e696; + } - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o3 = $this->p; - if (!$this->s125()) { - goto f259;} - $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k259; - f259: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f258; - k259: - goto k258; - f258: + $this->p++; + } + e696: + if (!$this->b370()) { + goto f694;} + goto k694; + f694: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k258: + k694: return true; } - private function b409(): bool + private function b370(): bool { - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(409); + $this->rec(370); } return false;} @@ -11836,154 +10353,148 @@ private function b409(): bool switch ($this->ids[$this->p]) { default: break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 82: - // b435 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(435); - } - - goto n288;} - + case 28: + // b371 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!$this->b199()) { - goto f289;} - if (!$this->b415()) { - goto f289;} - goto k289; - f289: + // b372 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 28)) { + if ($b3 > $this->f) { + $this->rec(373); + } + + goto e958; + } + + if (!$this->b373()) { + goto e958;} + if ($this->p === $b3) { + $k3 = 1; + goto e958; + } + + $k3++; + } + e958: + + if ($k3 < 1) { + goto f957; + } + goto k957; + f957: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f956; + k957: + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f956;} + } + goto k956; + f956: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n288; - k289: - goto a287; - n288: + goto n955; + k956: + goto a954; + n955: break; - case 9: - // b410 - if (!($this->ids[$this->p] === 9)) { - if ($this->p > $this->f) { - $this->rec(410); - } - - goto n290;} - + case 29: + // b377 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 9)) { - if ($this->p >= $this->f) { - $this->rec(25); + // b378 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 29)) { + if ($b3 > $this->f) { + $this->rec(379); + } + + goto e962; + } + + if (!$this->b379()) { + goto e962;} + if ($this->p === $b3) { + $k3 = 1; + goto e962; } - goto f291;} + $k3++; + } + e962: - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T648acf56[$this->ids[$this->p]])) { - $sf = $this->f; - $se = $this->er; - $sp = $this->p; - $matched = $this->s412(); - $this->f = $sf; - $this->er = $se; - $this->p = $sp; - if ($matched) { + if ($k3 < 1) { + goto f961; + } + goto k961; + f961: + $this->p = $o3; + $this->n = $m3; + $this->comments = $cs3; + goto f960; + k961: + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f291;} + goto f960;} } - if (!$this->b199()) { - goto f291;} - if (!$this->b415()) { - goto f291;} - goto k291; - f291: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n290; - k291: - goto a287; - n290: - // b435 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(435); - } - - goto n293;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b199()) { - goto f294;} - if (!$this->b415()) { - goto f294;} - goto k294; - f294: + goto k960; + f960: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n293; - k294: - goto a287; - n293: + goto n959; + k960: + goto a954; + n959: break; } if ($this->p > $this->f) { - $this->rec(409); + $this->rec(370); } - goto f286; - a287: - goto k286; - f286: + goto f953; + a954: + goto k953; + f953: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k286: + k953: return true; } - private function b415(): bool + private function b373(): bool { - if (!isset(self::T02ca7bff[$this->ids[$this->p]])) { + if (!($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { - $this->rec(415); + $this->rec(373); } return false;} @@ -11991,92 +10502,60 @@ private function b415(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 24: - // b416 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(416); - } - - goto n533;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f534;} + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b201()) { + goto f1251;} + // b375 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b417()) { - goto f534;} - goto k534; - f534: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n533; - k534: - goto a532; - n533: - break; - case 32: - case 34: - case 82: - case 86: - if (!$this->b417()) { - goto n535;} - goto a532; - n535: - break; - } + goto e1255; + } - if ($this->p > $this->f) { - $this->rec(415); + $this->p++; } + e1255: + if (!($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->rec(49); + } - goto f531; - a532: - goto k531; - f531: + goto f1253;} + goto k1253; + f1253: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1252; + k1253: + n1252: + goto k1251; + f1251: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k531: + k1251: return true; } - private function b417(): bool + private function b379(): bool { - if (!isset(self::Tf86de613[$this->ids[$this->p]])) { + if (!($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { - $this->rec(417); + $this->rec(379); } return false;} @@ -12084,168 +10563,162 @@ private function b417(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!$this->b418()) { - goto f788;} - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f788;} - $this->v[$this->n++] = $this->token($this->p++); - if (isset(self::T9373805c[$this->ids[$this->p]])) { - // b424 - if (!isset(self::T9373805c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(424); + if (!$this->b201()) { + goto f1256;} + // b381 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + // b203 + $o3 = $this->p; + $m3 = $this->n; + $cs3 = $this->comments; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); } - goto n789;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!$this->b425()) { - goto f790;} - if (($this->ids[$this->p] === 40)) { - if (!$this->b433()) { - goto n791;} - n791: - } elseif ($this->p > $this->f) { - $this->rec(433); + goto e1260; } - goto k790; - f790: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n789; - k790: - n789: - } elseif ($this->p > $this->f) { - $this->rec(424); + + $this->p++; } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); + e1260: + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(50); } - goto f788;} - - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o2 = $this->p; - if (!$this->s125()) { - goto f788;} - $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k788; - f788: + goto f1258;} + goto k1258; + f1258: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1257; + k1258: + n1257: + goto k1256; + f1256: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k788: + k1256: return true; } - private function b418(): bool + private function b385(): bool { $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; switch ($this->ids[$this->p]) { default: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n1022;} - goto a1021; - n1022: + if (!$this->b388()) { + goto n327;} + goto a326; + n327: break; - case 34: - case 86: - // b419 - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(419); - } - - goto n1023;} - + case 25: + case 26: + // b386 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f329;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k329; + f329: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n328; + k329: + goto a326; + n328: + if (!$this->b388()) { + goto n331;} + goto a326; + n331: + break; + } - goto f1024;} + if ($this->p > $this->f) { + $this->rec(385); + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b286()) { - goto f1024;} - if (($this->ids[$this->p] === 40)) { - if (!$this->b421()) { - goto n1025;} - n1025: - } elseif ($this->p > $this->f) { - $this->rec(421); + goto f325; + a326: + goto k325; + f325: + $this->p = $o1; + $this->n = $m1; + $this->comments = $cs1; + return false; + k325: + + return true; + } + + private function b388(): bool + { + $o1 = $this->p; + $m1 = $this->n; + $cs1 = $this->comments; + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; } - if (!($this->ids[$this->p] === 35)) { - if ($this->p >= $this->f) { - $this->rec(56); - } - - goto f1024;} - - $this->v[$this->n++] = $this->token($this->p++); - goto k1024; - f1024: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1023; - k1024: - goto a1021; - n1023: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n1026;} - goto a1021; - n1026: - break; + goto f290;} } - - if ($this->p > $this->f) { - $this->rec(418); + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f290;} } - - goto f1020; - a1021: - goto k1020; - f1020: + if (($this->ids[$this->p] === 32)) { + if (($this->ids[$this->p] === 32)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f290;} + } + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f290;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k290; + f290: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1020: + k290: return true; } - private function b421(): bool + private function b400(): bool { - if (!($this->ids[$this->p] === 40)) { + if (!($this->ids[$this->p] === 67)) { if ($this->p > $this->f) { - $this->rec(421); + $this->rec(400); } return false;} @@ -12253,73 +10726,56 @@ private function b421(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(422); - } - - goto e1377; + $this->v[$this->n++] = $this->token($this->p++); + // b399 + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(399); } - // b422 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(422); - } - - goto e1377;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1378;} + goto f309;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b286()) { - goto f1378;} - goto k1378; - f1378: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto e1377; - k1378: - if ($this->p === $b1) { - $k1 = 1; - goto e1377; + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f310;} + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); } - $k1++; - } - e1377: + goto f310;} - if ($k1 < 1) { - goto f1376; - } - goto k1376; - f1376: + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o3 = $this->p; + if (!$this->s125()) { + goto f310;} + $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); + goto k310; + f310: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f309; + k310: + goto k309; + f309: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1376: + k309: return true; } - private function b425(): bool + private function b409(): bool { - if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(425); + $this->rec(409); } return false;} @@ -12338,7 +10794,6 @@ private function b425(): bool case 6: case 7: case 8: - case 9: case 10: case 11: case 12: @@ -12348,85 +10803,109 @@ private function b425(): bool case 16: case 17: case 18: + case 19: + case 20: + case 21: + case 22: case 24: + case 25: case 30: case 32: case 82: - if (!$this->b426()) { - goto n1029;} - goto a1028; - n1029: + // b435 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f315;} + if (!$this->b415()) { + goto f315;} + goto k315; + f315: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n314; + k315: + goto a313; + n314: break; - case 26: - case 27: - case 42: - // b431 - if (!isset(self::T553dc07b[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(431); - } - - goto n1030;} - + case 9: + // b410 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (($this->ids[$this->p] === 27)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(48); - } - if (($this->ids[$this->p] === 42)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(65); - } - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f1031;} - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b429()) { - goto f1031;} - goto k1031; - f1031: + if (isset(self::T648acf56[$this->ids[$this->p]])) { + $sf = $this->f; + $se = $this->er; + $sp = $this->p; + $matched = $this->s412(); + $this->f = $sf; + $this->er = $se; + $this->p = $sp; + if ($matched) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f317;} + } + if (!$this->b199()) { + goto f317;} + if (!$this->b415()) { + goto f317;} + goto k317; + f317: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n316; + k317: + goto a313; + n316: + // b435 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b199()) { + goto f320;} + if (!$this->b415()) { + goto f320;} + goto k320; + f320: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n1030; - k1031: - goto a1028; - n1030: + goto n319; + k320: + goto a313; + n319: break; } if ($this->p > $this->f) { - $this->rec(425); + $this->rec(409); } - goto f1027; - a1028: - goto k1027; - f1027: + goto f312; + a313: + goto k312; + f312: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1027: - $this->v[$m1] = $this->reduceMethodParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k312: return true; } - private function b426(): bool + private function b415(): bool { - if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if (!isset(self::T02ca7bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(426); + $this->rec(415); } return false;} @@ -12434,125 +10913,199 @@ private function b426(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!isset(self::T34c34eee[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(428); - } - - goto f1379;} - if (!$this->b199()) { - goto f1379;} - if (($this->ids[$this->p] === 27)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(48); - } - if (($this->ids[$this->p] === 42)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(65); + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + // b416 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b417()) { + goto f605;} + goto k605; + f605: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n604; + k605: + goto a603; + n604: + break; + case 32: + case 34: + case 82: + case 86: + if (!$this->b417()) { + goto n606;} + goto a603; + n606: + break; } - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - goto f1379;} + if ($this->p > $this->f) { + $this->rec(415); + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b429()) { - goto f1379;} - goto k1379; - f1379: + goto f602; + a603: + goto k602; + f602: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1379: + k602: return true; } - private function b429(): bool + private function b417(): bool { + if (!isset(self::Tf86de613[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(417); + } + + return false;} + $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; + // b418 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; switch ($this->ids[$this->p]) { default: - if (($this->ids[$this->p] === 46)) { + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1382;} - goto a1381; - n1382: + goto n864;} + goto a863; + n864: break; - case 46: - // b430 - if (!($this->ids[$this->p] === 46)) { - if ($this->p > $this->f) { - $this->rec(430); - } - - goto n1383;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!($this->ids[$this->p] === 46)) { - if ($this->p >= $this->f) { - $this->rec(69); - } - - goto f1384;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b340()) { - goto f1384;} - goto k1384; - f1384: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto n1383; - k1384: - goto a1381; - n1383: - if (($this->ids[$this->p] === 46)) { + case 34: + case 86: + if (!$this->b419()) { + goto n865;} + goto a863; + n865: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1385;} - goto a1381; - n1385: + goto n866;} + goto a863; + n866: break; } if ($this->p > $this->f) { - $this->rec(429); + $this->rec(418); + } + + goto f862; + a863: + goto k862; + f862: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f861; + k862: + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(16); + } + + goto f861;} + + $this->v[$this->n++] = $this->token($this->p++); + if (isset(self::T9373805c[$this->ids[$this->p]])) { + // b424 + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(424); + } + + goto n867;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!$this->b425()) { + goto f868;} + if (($this->ids[$this->p] === 40)) { + if (!$this->b433()) { + goto n869;} + n869: + } elseif ($this->p > $this->f) { + $this->rec(433); + } + goto k868; + f868: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n867; + k868: + n867: + } elseif ($this->p > $this->f) { + $this->rec(424); } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f861;} - goto f1380; - a1381: - goto k1380; - f1380: + $this->v[$this->n++] = $this->token($this->p++); + // b125 + $o2 = $this->p; + if (!$this->s125()) { + goto f861;} + $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); + goto k861; + f861: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1380: + k861: return true; } - private function b433(): bool + private function b419(): bool { - if (!($this->ids[$this->p] === 40)) { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(433); + $this->rec(419); } return false;} @@ -12560,73 +11113,106 @@ private function b433(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(434); - } - - goto e1033; + $this->v[$this->n++] = $this->token($this->p++); + // b286 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(286); } - // b434 + goto f1120;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b287()) { + goto f1121;} + if (!$this->b293()) { + goto f1121;} + if (!$this->b296()) { + goto f1121;} + goto k1121; + f1121: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1120; + k1121: + $this->v[$m2] = $this->reduceCallableTemplateArgument(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + if (($this->ids[$this->p] === 40)) { + // b421 if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(434); + $this->rec(421); } - goto e1033;} + goto n1122;} $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(422); + } + + goto e1124; + } + + if (!$this->b422()) { + goto e1124;} + if ($this->p === $b2) { + $k2 = 1; + goto e1124; } - goto f1034;} + $k2++; + } + e1124: - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b425()) { - goto f1034;} - goto k1034; - f1034: + if ($k2 < 1) { + goto f1123; + } + goto k1123; + f1123: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto e1033; - k1034: - if ($this->p === $b1) { - $k1 = 1; - goto e1033; + goto n1122; + k1123: + n1122: + } elseif ($this->p > $this->f) { + $this->rec(421); + } + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); } - $k1++; - } - e1033: + goto f1120;} - if ($k1 < 1) { - goto f1032; - } - goto k1032; - f1032: + $this->v[$this->n++] = $this->token($this->p++); + goto k1120; + f1120: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k1032: + k1120: return true; } - private function b436(): bool + private function b422(): bool { - if (!($this->ids[$this->p] === 62)) { + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(436); + $this->rec(422); } return false;} @@ -12634,46 +11220,50 @@ private function b436(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 62)) { - if ($this->p >= $this->f) { - $this->rec(100); - } - - goto f272;} - $this->v[$this->n++] = $this->token($this->p++); + // b286 if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(144); + $this->rec(286); } - goto f272;} + goto f1417;} + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; $this->v[$this->n++] = $this->token($this->p++); if (!$this->b287()) { - goto f272;} + goto f1418;} if (!$this->b293()) { - goto f272;} + goto f1418;} if (!$this->b296()) { - goto f272;} - if (!$this->b388()) { - goto f272;} - goto k272; - f272: + goto f1418;} + goto k1418; + f1418: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto f1417; + k1418: + $this->v[$m2] = $this->reduceCallableTemplateArgument(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); + $this->n = $m2 + 1; + goto k1417; + f1417: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k272: + k1417: return true; } - private function b437(): bool + private function b425(): bool { - if (!($this->ids[$this->p] === 68)) { + if (!isset(self::T9373805c[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(437); + $this->rec(425); } return false;} @@ -12681,121 +11271,197 @@ private function b437(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 68)) { - if ($this->p >= $this->f) { - $this->rec(101); - } + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + case 30: + case 32: + case 82: + // b426 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(428); + } + + goto f1128;} + if (!$this->b199()) { + goto f1128;} + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } - goto f284;} + goto f1128;} - $this->v[$this->n++] = $this->token($this->p++); - // b438 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(438); - } + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b429()) { + goto f1128;} + goto k1128; + f1128: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1127; + k1128: + goto a1126; + n1127: + break; + case 26: + case 27: + case 42: + // b431 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + if (($this->ids[$this->p] === 27)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->v[$this->n++] = $this->token($this->p++); + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } - goto f284;} + goto f1130;} - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b429()) { + goto f1130;} + goto k1130; + f1130: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1129; + k1130: + goto a1126; + n1129: + break; + } - goto f285;} + if ($this->p > $this->f) { + $this->rec(425); + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b320()) { - goto f285;} - if (!$this->b388()) { - goto f285;} - goto k285; - f285: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f284; - k285: - goto k284; - f284: + goto f1125; + a1126: + goto k1125; + f1125: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k284: + k1125: + $this->v[$m1] = $this->reduceMethodParameter(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); + $this->n = $m1 + 1; return true; } - private function b439(): bool + private function b429(): bool { - if (!($this->ids[$this->p] === 64)) { - if ($this->p > $this->f) { - $this->rec(439); - } - - return false;} - $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 64)) { - if ($this->p >= $this->f) { - $this->rec(102); - } - - goto f276;} - - $this->v[$this->n++] = $this->token($this->p++); - // b438 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(438); - } - - goto f276;} - - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1421;} + goto a1420; + n1421: + break; + case 46: + // b430 + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b340()) { + goto f1423;} + goto k1423; + f1423: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto n1422; + k1423: + goto a1420; + n1422: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1424;} + goto a1420; + n1424: + break; + } - goto f277;} + if ($this->p > $this->f) { + $this->rec(429); + } - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b320()) { - goto f277;} - if (!$this->b388()) { - goto f277;} - goto k277; - f277: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f276; - k277: - goto k276; - f276: + goto f1419; + a1420: + goto k1419; + f1419: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k276: + k1419: return true; } - private function b440(): bool + private function b433(): bool { - if (!($this->ids[$this->p] === 74)) { + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(440); + $this->rec(433); } return false;} @@ -12803,60 +11469,66 @@ private function b440(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 74)) { - if ($this->p >= $this->f) { - $this->rec(103); - } - - goto f296;} + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(434); + } - $this->v[$this->n++] = $this->token($this->p++); - // b438 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(438); + goto e1132; } - goto f296;} + // b434 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(434); + } - $o2 = $this->p; - $m2 = $this->n; - $cs2 = $this->comments; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + goto e1132;} + + $o2 = $this->p; + $m2 = $this->n; + $cs2 = $this->comments; + $this->v[$this->n++] = $this->token($this->p++); + if (!$this->b425()) { + goto f1133;} + goto k1133; + f1133: + $this->p = $o2; + $this->n = $m2; + $this->comments = $cs2; + goto e1132; + k1133: + if ($this->p === $b1) { + $k1 = 1; + goto e1132; } - goto f297;} + $k1++; + } + e1132: - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b320()) { - goto f297;} - if (!$this->b388()) { - goto f297;} - goto k297; - f297: - $this->p = $o2; - $this->n = $m2; - $this->comments = $cs2; - goto f296; - k297: - goto k296; - f296: + if ($k1 < 1) { + goto f1131; + } + goto k1131; + f1131: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k296: + k1131: return true; } - private function b441(): bool + private function b436(): bool { - if (!($this->ids[$this->p] === 66)) { + if (!($this->ids[$this->p] === 62)) { if ($this->p > $this->f) { - $this->rec(441); + $this->rec(436); } return false;} @@ -12864,42 +11536,30 @@ private function b441(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 66)) { - if ($this->p >= $this->f) { - $this->rec(104); - } - - goto f278;} - $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f278;} + goto f300;} $this->v[$this->n++] = $this->token($this->p++); - if (($this->ids[$this->p] === 46)) { - $this->v[$this->n++] = $this->token($this->p++); - } elseif ($this->p >= $this->f) { - $this->rec(69); - } - if (!$this->b199()) { - goto f278;} - if (!isset(self::T53b29bff[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(77); - } - - goto f278;} - goto k278; - f278: + if (!$this->b287()) { + goto f300;} + if (!$this->b293()) { + goto f300;} + if (!$this->b296()) { + goto f300;} + if (!$this->b388()) { + goto f300;} + goto k300; + f300: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k278: + k300: return true; } @@ -12916,20 +11576,13 @@ private function b442(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 66)) { - if ($this->p >= $this->f) { - $this->rec(104); - } - - goto f279;} - $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f279;} + goto f307;} $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 46)) { @@ -12940,78 +11593,21 @@ private function b442(): bool // b125 $o2 = $this->p; if (!$this->s125()) { - goto f279;} + goto f307;} $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k279; - f279: + goto k307; + f307: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k279: - $this->v[$m1] = $this->reduceInvalidTypeAliasTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); + k307: + $this->v[$m1] = $this->reduceInvalidTypeAliasTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 ? [$this->v[$m1]] : \array_slice($this->v, $m1, $this->n - $m1)); $this->n = $m1 + 1; return true; } - private function b443(): bool - { - if (!($this->ids[$this->p] === 58)) { - if ($this->p > $this->f) { - $this->rec(443); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!($this->ids[$this->p] === 58)) { - if ($this->p >= $this->f) { - $this->rec(105); - } - - goto f269;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f269;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!($this->ids[$this->p] === 10)) { - if ($this->p >= $this->f) { - $this->rec(26); - } - - goto f269;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f269;} - - $this->v[$this->n++] = $this->token($this->p++); - if (!$this->b444()) { - goto f269;} - goto k269; - f269: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k269: - - return true; - } - private function b444(): bool { $o1 = $this->p; @@ -13024,55 +11620,41 @@ private function b444(): bool $this->f = $this->p; $this->er = []; } - goto n491;} - goto a490; - n491: + goto n294;} + goto a293; + n294: break; case 14: // b445 - if (!($this->ids[$this->p] === 14)) { - if ($this->p > $this->f) { - $this->rec(445); - } - - goto n492;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 14)) { - if ($this->p >= $this->f) { - $this->rec(28); - } - - goto f493;} - $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f493;} + goto f296;} $this->v[$this->n++] = $this->token($this->p++); - goto k493; - f493: + goto k296; + f296: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n492; - k493: - goto a490; - n492: + goto n295; + k296: + goto a293; + n295: if (($this->ids[$this->p] === 14)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n494;} - goto a490; - n494: + goto n297;} + goto a293; + n297: break; } @@ -13080,15 +11662,15 @@ private function b444(): bool $this->rec(444); } - goto f489; - a490: - goto k489; - f489: + goto f292; + a293: + goto k292; + f292: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k489: + k292: return true; } @@ -13105,13 +11687,6 @@ private function b446(): bool $o1 = $this->p; $m1 = $this->n; $cs1 = $this->comments; - if (!($this->ids[$this->p] === 59)) { - if ($this->p >= $this->f) { - $this->rec(106); - } - - goto f270;} - $this->v[$this->n++] = $this->token($this->p++); if (($this->ids[$this->p] === 31)) { $this->v[$this->n++] = $this->token($this->p++); @@ -13124,29 +11699,29 @@ private function b446(): bool $this->rec(69); } if (!$this->b199()) { - goto f270;} + goto f298;} if (!isset(self::T29c7f960[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(448); } - goto f270;} + goto f298;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b449()) { - goto f270;} + goto f298;} // b125 $o2 = $this->p; if (!$this->s125()) { - goto f270;} + goto f298;} $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k270; - f270: + goto k298; + f298: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k270: + k298: return true; } @@ -13163,57 +11738,43 @@ private function b449(): bool $this->f = $this->p; $this->er = []; } - goto n497;} - goto a496; - n497: + goto n563;} + goto a562; + n563: break; case 45: - // b450 - if (!($this->ids[$this->p] === 45)) { - if ($this->p > $this->f) { - $this->rec(450); - } - - goto n498;} - + // b450 $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!($this->ids[$this->p] === 45)) { - if ($this->p >= $this->f) { - $this->rec(68); - } - - goto f499;} - $this->v[$this->n++] = $this->token($this->p++); if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f499;} + goto f565;} $this->v[$this->n++] = $this->token($this->p++); if (!$this->b451()) { - goto f499;} - goto k499; - f499: + goto f565;} + goto k565; + f565: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n498; - k499: - goto a496; - n498: + goto n564; + k565: + goto a562; + n564: if (($this->ids[$this->p] === 45)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n500;} - goto a496; - n500: + goto n566;} + goto a562; + n566: break; } @@ -13221,15 +11782,15 @@ private function b449(): bool $this->rec(449); } - goto f495; - a496: - goto k495; - f495: + goto f561; + a562: + goto k561; + f561: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k495: + k561: return true; } @@ -13246,56 +11807,42 @@ private function b451(): bool $this->f = $this->p; $this->er = []; } - goto n773;} - goto a772; - n773: + goto n850;} + goto a849; + n850: break; case 32: case 82: // b452 - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(452); - } - - goto n774;} - $o2 = $this->p; $m2 = $this->n; $cs2 = $this->comments; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f775;} - $this->v[$this->n++] = $this->token($this->p++); if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f775;} + goto f852;} $this->v[$this->n++] = $this->token($this->p++); - goto k775; - f775: + goto k852; + f852: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto n774; - k775: - goto a772; - n774: + goto n851; + k852: + goto a849; + n851: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n776;} - goto a772; - n776: + goto n853;} + goto a849; + n853: break; } @@ -13303,53 +11850,15 @@ private function b451(): bool $this->rec(451); } - goto f771; - a772: - goto k771; - f771: - $this->p = $o1; - $this->n = $m1; - $this->comments = $cs1; - return false; - k771: - - return true; - } - - private function b454(): bool - { - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(454); - } - - return false;} - - $o1 = $this->p; - $m1 = $this->n; - $cs1 = $this->comments; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f241;} - - $this->v[$this->n++] = $this->token($this->p++); - // b125 - $o2 = $this->p; - if (!$this->s125()) { - goto f241;} - $this->v[$this->n++] = $this->reduceText(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1))); - goto k241; - f241: + goto f848; + a849: + goto k848; + f848: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k241: - $this->v[$m1] = $this->reduceInvalidTag(($o1 < $this->p ? $this->indexes[$o1] : ($o1 > 0 ? $this->indexes[$o1 - 1] + 1 : 0)), ($o1 < $this->p ? $this->indexes[$this->p - 1] : ($o1 > 0 ? $this->indexes[$o1 - 1] : -1)), $this->n === $m1 + 1 && !\is_array($this->v[$m1]) ? [$this->v[$m1]] : $this->merge($m1)); - $this->n = $m1 + 1; + k848: return true; } @@ -13365,7 +11874,7 @@ private function b455(): bool $this->f = $this->p; $this->er = []; } - goto f238;} + goto f279;} } // b457 $o2 = $this->p; @@ -13374,24 +11883,24 @@ private function b455(): bool // b125 $o3 = $this->p; if (!$this->s125()) { - goto f239;} + goto f280;} $this->v[$this->n++] = $this->reduceText(($o3 < $this->p ? $this->indexes[$o3] : ($o3 > 0 ? $this->indexes[$o3 - 1] + 1 : 0)), ($o3 < $this->p ? $this->indexes[$this->p - 1] : ($o3 > 0 ? $this->indexes[$o3 - 1] : -1))); - goto k239; - f239: + goto k280; + f280: $this->p = $o2; $this->n = $m2; $this->comments = $cs2; - goto f238; - k239: - $this->v[$m2] = $this->reduceTextChild(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 && !\is_array($this->v[$m2]) ? [$this->v[$m2]] : $this->merge($m2)); + goto f279; + k280: + $this->v[$m2] = $this->reduceTextChild(($o2 < $this->p ? $this->indexes[$o2] : ($o2 > 0 ? $this->indexes[$o2 - 1] + 1 : 0)), ($o2 < $this->p ? $this->indexes[$this->p - 1] : ($o2 > 0 ? $this->indexes[$o2 - 1] : -1)), $this->n === $m2 + 1 ? [$this->v[$m2]] : \array_slice($this->v, $m2, $this->n - $m2)); $this->n = $m2 + 1; - goto k238; - f238: + goto k279; + f279: $this->p = $o1; $this->n = $m1; $this->comments = $cs1; return false; - k238: + k279: return true; } @@ -13406,13 +11915,6 @@ private function s0(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 48)) { - if ($this->p >= $this->f) { - $this->rec(1); - } - - goto f3;} - $this->p++; if (($this->ids[$this->p] === 80)) { $this->p++; @@ -13488,7 +11990,7 @@ private function s8(): bool // s188 $o2 = $this->p; if (!$this->s189()) { - goto f193;} + goto f225;} // s458 $o3 = $this->p; switch ($this->ids[$this->p]) { @@ -13500,13 +12002,13 @@ private function s8(): bool $this->rec(7); } - goto n196;} - goto a195; - n196: + goto n228;} + goto a227; + n228: break; case 80: $this->p++; - goto a195; + goto a227; break; } @@ -13514,52 +12016,33 @@ private function s8(): bool $this->rec(458); } - goto f194; - a195: - goto k194; - f194: + goto f226; + a227: + goto k226; + f226: $this->p = $o3; - goto f193; - k194: - goto k193; - f193: + goto f225; + k226: + goto k225; + f225: $this->p = $o2; - goto n192; - k193: - goto a191; - n192: + goto n224; + k225: + goto a223; + n224: break; case 76: case 77: case 78: case 79: - // s9 - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(9); - } - - goto n197;} - - $o2 = $this->p; - if (!$this->s10()) { - goto f198;} - if (($this->ids[$this->p] === 80)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(3); - } - goto k198; - f198: - $this->p = $o2; - goto n197; - k198: - goto a191; - n197: + if (!$this->s9()) { + goto n229;} + goto a223; + n229: // s188 $o2 = $this->p; if (!$this->s189()) { - goto f200;} + goto f231;} // s458 $o3 = $this->p; switch ($this->ids[$this->p]) { @@ -13571,13 +12054,13 @@ private function s8(): bool $this->rec(7); } - goto n203;} - goto a202; - n203: + goto n234;} + goto a233; + n234: break; case 80: $this->p++; - goto a202; + goto a233; break; } @@ -13585,20 +12068,20 @@ private function s8(): bool $this->rec(458); } - goto f201; - a202: - goto k201; - f201: + goto f232; + a233: + goto k232; + f232: $this->p = $o3; - goto f200; - k201: - goto k200; - f200: + goto f231; + k232: + goto k231; + f231: $this->p = $o2; - goto n199; - k200: - goto a191; - n199: + goto n230; + k231: + goto a223; + n230: break; } @@ -13606,13 +12089,39 @@ private function s8(): bool $this->rec(8); } - goto f190; - a191: - goto k190; - f190: + goto f222; + a223: + goto k222; + f222: + $this->p = $o1; + return false; + k222: + + return true; + } + + private function s9(): bool + { + if (!isset(self::T942497bd[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(9); + } + + return false;} + + $o1 = $this->p; + if (!$this->s10()) { + goto f515;} + if (($this->ids[$this->p] === 80)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(3); + } + goto k515; + f515: $this->p = $o1; return false; - k190: + k515: return true; } @@ -13633,21 +12142,7 @@ private function s10(): bool case 76: case 77: // s11 - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(11); - } - - goto n16;} - $o2 = $this->p; - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(12); - } - - goto f17;} - $this->p++; if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -13689,13 +12184,6 @@ private function s10(): bool goto a15; n16: // s134 - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(134); - } - - goto n21;} - $o2 = $this->p; switch ($this->ids[$this->p]) { default: @@ -13733,13 +12221,6 @@ private function s10(): bool case 78: case 79: // s134 - if (!isset(self::T942497bd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(134); - } - - goto n26;} - $o2 = $this->p; switch ($this->ids[$this->p]) { default: @@ -13803,16 +12284,16 @@ private function s74(): bool $this->rec(77); } - goto f216;} + goto f257;} if (!$this->s78()) { - goto f216;} - goto k216; - f216: + goto f257;} + goto k257; + f257: $this->p = $o2; - goto n215; - k216: - goto a214; - n215: + goto n256; + k257: + goto a255; + n256: // s117 $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -13820,14 +12301,14 @@ private function s74(): bool $this->rec(119); } - goto f218;} + goto f259;} if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f218;} + goto f259;} } if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { $sf = $this->f; @@ -13842,17 +12323,17 @@ private function s74(): bool $this->f = $this->p; $this->er = []; } - goto f218;} + goto f259;} } if (!$this->s125()) { - goto f218;} - goto k218; - f218: + goto f259;} + goto k259; + f259: $this->p = $o2; - goto n217; - k218: - goto a214; - n217: + goto n258; + k259: + goto a255; + n258: break; case 76: case 78: @@ -13863,16 +12344,16 @@ private function s74(): bool $this->rec(77); } - goto f221;} + goto f262;} if (!$this->s78()) { - goto f221;} - goto k221; - f221: + goto f262;} + goto k262; + f262: $this->p = $o2; - goto n220; - k221: - goto a214; - n220: + goto n261; + k262: + goto a255; + n261: // s117 $o2 = $this->p; if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -13880,14 +12361,14 @@ private function s74(): bool $this->rec(119); } - goto f223;} + goto f264;} if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if (isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f223;} + goto f264;} } if (isset(self::Tce49e0fc[$this->ids[$this->p]])) { $sf = $this->f; @@ -13902,25 +12383,25 @@ private function s74(): bool $this->f = $this->p; $this->er = []; } - goto f223;} + goto f264;} } if (!$this->s125()) { - goto f223;} - goto k223; - f223: + goto f264;} + goto k264; + f264: $this->p = $o2; - goto n222; - k223: - goto a214; - n222: + goto n263; + k264: + goto a255; + n263: if (!isset(self::Tb3a20a39[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(121); } - goto n225;} - goto a214; - n225: + goto n266;} + goto a255; + n266: break; } @@ -13928,13 +12409,13 @@ private function s74(): bool $this->rec(74); } - goto f213; - a214: - goto k213; - f213: + goto f254; + a255: + goto k254; + f254: $this->p = $o1; return false; - k213: + k254: return true; } @@ -13957,20 +12438,86 @@ private function s78(): bool $this->f = $this->p; $this->er = []; } - goto n464;} + goto n531;} } - goto a463; - n464: + goto a530; + n531: break; case 80: - if (!$this->s79()) { - goto n466;} - goto a463; - n466: - if (!$this->s110()) { - goto n467;} - goto a463; - n467: + // s79 + $o2 = $this->p; + $this->p++; + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f534;} + } + // s109 + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(109); + } + + goto f534;} + + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(21); + } + + goto e536; + } + + $this->p++; + + $k3++; + } + e536: + + if ($k3 < 1) { + goto f535; + } + goto k535; + f535: + $this->p = $o3; + goto f534; + k535: + if (!$this->s74()) { + goto f534;} + goto k534; + f534: + $this->p = $o2; + goto n533; + k534: + goto a530; + n533: + // s110 + $o2 = $this->p; + $this->p++; + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f538;} + } + if (!$this->s111()) { + goto f538;} + goto k538; + f538: + $this->p = $o2; + goto n537; + k538: + goto a530; + n537: if (($this->ids[$this->p] === 80)) { $sf = $this->f; $se = $this->er; @@ -13984,10 +12531,10 @@ private function s78(): bool $this->f = $this->p; $this->er = []; } - goto n468;} + goto n539;} } - goto a463; - n468: + goto a530; + n539: break; } @@ -13995,135 +12542,105 @@ private function s78(): bool $this->rec(78); } - goto f462; - a463: - goto k462; - f462: + goto f529; + a530: + goto k529; + f529: $this->p = $o1; return false; - k462: + k529: return true; } - private function s79(): bool + private function s111(): bool { if (!($this->ids[$this->p] === 80)) { if ($this->p > $this->f) { - $this->rec(79); + $this->rec(111); } return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($this->p >= $this->f) { - $this->rec(3); - } - - goto f735;} - - $this->p++; - if (isset(self::T195b3f33[$this->ids[$this->p]])) { - if (isset(self::T195b3f33[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f735;} - } - // s109 - if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(109); - } - - goto f735;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(21); + switch ($this->ids[$this->p]) { + default: + break; + case 80: + // s79 + $o2 = $this->p; + $this->p++; + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f811;} } + // s109 + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(109); + } - goto e737; - } - - $this->p++; - - $k2++; - } - e737: - - if ($k2 < 1) { - goto f736; - } - goto k736; - f736: - $this->p = $o2; - goto f735; - k736: - if (!$this->s74()) { - goto f735;} - goto k735; - f735: - $this->p = $o1; - return false; - k735: - - return true; - } + goto f811;} - private function s110(): bool - { - if (!($this->ids[$this->p] === 80)) { - if ($this->p > $this->f) { - $this->rec(110); - } + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T0979f8dc[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(21); + } - return false;} + goto e813; + } - $o1 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($this->p >= $this->f) { - $this->rec(3); - } + $this->p++; - goto f738;} + $k3++; + } + e813: - $this->p++; - if (isset(self::T195b3f33[$this->ids[$this->p]])) { - if (isset(self::T195b3f33[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; + if ($k3 < 1) { + goto f812; + } + goto k812; + f812: + $this->p = $o3; + goto f811; + k812: + if (!$this->s74()) { + goto f811;} + goto k811; + f811: + $this->p = $o2; + goto n810; + k811: + goto a809; + n810: + // s110 + $o2 = $this->p; + $this->p++; + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if (isset(self::T195b3f33[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f815;} } - goto f738;} - } - // s111 - if (!($this->ids[$this->p] === 80)) { - if ($this->p > $this->f) { - $this->rec(111); - } - - goto f738;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 80: - if (!$this->s79()) { - goto n741;} - goto a740; - n741: - if (!$this->s110()) { - goto n742;} - goto a740; - n742: + if (!$this->s111()) { + goto f815;} + goto k815; + f815: + $this->p = $o2; + goto n814; + k815: + goto a809; + n814: break; } @@ -14131,18 +12648,13 @@ private function s110(): bool $this->rec(111); } - goto f739; - a740: - goto k739; - f739: - $this->p = $o2; - goto f738; - k739: - goto k738; - f738: + goto f808; + a809: + goto k808; + f808: $this->p = $o1; return false; - k738: + k808: return true; } @@ -14162,21 +12674,7 @@ private function s113(): bool break; case 80: // s114 - if (!($this->ids[$this->p] === 80)) { - if ($this->p > $this->f) { - $this->rec(114); - } - - goto n731;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($this->p >= $this->f) { - $this->rec(3); - } - - goto f732;} - $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14184,33 +12682,19 @@ private function s113(): bool $this->f = $this->p; $this->er = []; } - goto f732;} + goto f805;} } if (!$this->s113()) { - goto f732;} - goto k732; - f732: + goto f805;} + goto k805; + f805: $this->p = $o2; - goto n731; - k732: - goto a730; - n731: + goto n804; + k805: + goto a803; + n804: // s115 - if (!($this->ids[$this->p] === 80)) { - if ($this->p > $this->f) { - $this->rec(115); - } - - goto n733;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($this->p >= $this->f) { - $this->rec(3); - } - - goto f734;} - $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14218,23 +12702,23 @@ private function s113(): bool $this->f = $this->p; $this->er = []; } - goto f734;} + goto f807;} } if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(116); } - goto f734;} + goto f807;} $this->p++; - goto k734; - f734: + goto k807; + f807: $this->p = $o2; - goto n733; - k734: - goto a730; - n733: + goto n806; + k807: + goto a803; + n806: break; } @@ -14242,13 +12726,13 @@ private function s113(): bool $this->rec(113); } - goto f729; - a730: - goto k729; - f729: + goto f802; + a803: + goto k802; + f802: $this->p = $o1; return false; - k729: + k802: return true; } @@ -14263,27 +12747,20 @@ private function s123(): bool return false;} $o1 = $this->p; - if (!isset(self::Tce49e0fc[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(124); - } - - goto f470;} - $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(16); } - goto f470;} + goto f541;} $this->p++; - goto k470; - f470: + goto k541; + f541: $this->p = $o1; return false; - k470: + k541: return true; } @@ -14300,134 +12777,81 @@ private function s125(): bool $this->rec(116); } - goto e245; + goto e284; } $this->p++; } - e245: + e284: if (($this->ids[$this->p] === 80)) { - if (!$this->s128()) { - goto n246;} - n246: - } elseif ($this->p > $this->f) { - $this->rec(128); - } - - return true; - } - - private function s128(): bool - { - if (!($this->ids[$this->p] === 80)) { - if ($this->p > $this->f) { - $this->rec(128); - } - - return false;} - - $o1 = $this->p; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($b1 > $this->f) { - $this->rec(129); - } - - goto e485; - } - - // s129 + // s128 if (!($this->ids[$this->p] === 80)) { if ($this->p > $this->f) { - $this->rec(129); + $this->rec(128); } - goto e485;} + goto n285;} $o2 = $this->p; - if (!$this->s130()) { - goto f486;} - // s132 - if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(132); - } - - goto f486;} - - $o3 = $this->p; - $k3 = 0; + $k2 = 0; while (true) { - $b3 = $this->p; - if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(116); + $b2 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b2 > $this->f) { + $this->rec(129); } - goto e488; + goto e287; } - $this->p++; + if (!$this->s129()) { + goto e287;} + if ($this->p === $b2) { + $k2 = 1; + goto e287; + } - $k3++; + $k2++; } - e488: + e287: - if ($k3 < 1) { - goto f487; + if ($k2 < 1) { + goto f286; } - goto k487; - f487: - $this->p = $o3; - goto f486; - k487: - goto k486; - f486: + goto k286; + f286: $this->p = $o2; - goto e485; - k486: - if ($this->p === $b1) { - $k1 = 1; - goto e485; - } - - $k1++; - } - e485: - - if ($k1 < 1) { - goto f484; + goto n285; + k286: + n285: + } elseif ($this->p > $this->f) { + $this->rec(128); } - goto k484; - f484: - $this->p = $o1; - return false; - k484: return true; } - private function s130(): bool + private function s129(): bool { if (!($this->ids[$this->p] === 80)) { if ($this->p > $this->f) { - $this->rec(130); + $this->rec(129); } return false;} $o1 = $this->p; - $k1 = 0; + // s130 + $o2 = $this->p; + $k2 = 0; while (true) { - $b1 = $this->p; + $b2 = $this->p; if (!($this->ids[$this->p] === 80)) { - if ($b1 > $this->f) { + if ($b2 > $this->f) { $this->rec(131); } - goto e769; + goto e557; } // s131 @@ -14436,16 +12860,9 @@ private function s130(): bool $this->rec(131); } - goto e769;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($this->p >= $this->f) { - $this->rec(3); - } - - goto f770;} + goto e557;} + $o3 = $this->p; $this->p++; if (isset(self::T195b3f33[$this->ids[$this->p]])) { if (isset(self::T195b3f33[$this->ids[$this->p]])) { @@ -14453,30 +12870,69 @@ private function s130(): bool $this->f = $this->p; $this->er = []; } - goto f770;} + goto f558;} } - goto k770; - f770: - $this->p = $o2; - goto e769; - k770: - if ($this->p === $b1) { - $k1 = 1; - goto e769; + goto k558; + f558: + $this->p = $o3; + goto e557; + k558: + if ($this->p === $b2) { + $k2 = 1; + goto e557; } - $k1++; + $k2++; } - e769: + e557: - if ($k1 < 1) { - goto f768; + if ($k2 < 1) { + goto f556; + } + goto k556; + f556: + $this->p = $o2; + goto f555; + k556: + // s132 + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(132); + } + + goto f555;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(116); + } + + goto e560; + } + + $this->p++; + + $k2++; } - goto k768; - f768: + e560: + + if ($k2 < 1) { + goto f559; + } + goto k559; + f559: + $this->p = $o2; + goto f555; + k559: + goto k555; + f555: $this->p = $o1; return false; - k768: + k555: return true; } @@ -14491,16 +12947,9 @@ private function s135(): bool return false;} $o1 = $this->p; - if (!isset(self::T46ee5f48[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(136); - } - - goto f234;} - $this->p++; if (!$this->s137()) { - goto f234;} + goto f275;} // s19 $o2 = $this->p; // s20 @@ -14512,24 +12961,24 @@ private function s135(): bool $this->rec(21); } - goto e237; + goto e278; } $this->p++; } - e237: + e278: if (!$this->s74()) { - goto f235;} - goto k235; - f235: + goto f276;} + goto k276; + f276: $this->p = $o2; - goto f234; - k235: - goto k234; - f234: + goto f275; + k276: + goto k275; + f275: $this->p = $o1; return false; - k234: + k275: return true; } @@ -14544,28 +12993,14 @@ private function s137(): bool $this->f = $this->p; $this->er = []; } - goto n477;} - goto a476; - n477: + goto n548;} + goto a547; + n548: break; case 32: case 82: // s138 - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(138); - } - - goto n478;} - $o2 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f479;} - $this->p++; // s139 $o3 = $this->p; @@ -14576,16 +13011,16 @@ private function s137(): bool $this->rec(3); } - goto e481; + goto e552; } $this->p++; } - e481: + e552: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n482;} - n482: + goto n553;} + n553: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -14594,131 +13029,38 @@ private function s137(): bool $this->rec(53); } - goto f479;} + goto f550;} $this->p++; - goto k479; - f479: + goto k550; + f550: $this->p = $o2; - goto n478; - k479: - goto a476; - n478: - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n483;} - goto a476; - n483: - break; - } - - if ($this->p > $this->f) { - $this->rec(137); - } - - goto f475; - a476: - goto k475; - f475: - $this->p = $o1; - return false; - k475: - - return true; - } - - private function s138(): bool - { - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(138); - } - - return false;} - - $o1 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f1586;} - - $this->p++; - // s139 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($b2 >= $this->f) { - $this->rec(3); - } - - goto e1588; - } - - $this->p++; - } - e1588: - if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { - // s141 - if (!isset(self::T1e2ed78c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(141); - } - - goto n1589;} - - $o2 = $this->p; - if (!$this->s142()) { - goto f1590;} - // s139 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($b3 >= $this->f) { - $this->rec(3); + goto n549; + k550: + goto a547; + n549: + if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; } - - goto e1592; - } - - $this->p++; - } - e1592: - if (($this->ids[$this->p] === 40)) { - if (!$this->s182()) { - goto n1593;} - n1593: - } elseif ($this->p > $this->f) { - $this->rec(182); - } - goto k1590; - f1590: - $this->p = $o2; - goto n1589; - k1590: - n1589: - } elseif ($this->p > $this->f) { - $this->rec(141); + goto n554;} + goto a547; + n554: + break; } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - goto f1586;} + if ($this->p > $this->f) { + $this->rec(137); + } - $this->p++; - goto k1586; - f1586: + goto f546; + a547: + goto k546; + f546: $this->p = $o1; return false; - k1586: + k546: return true; } @@ -14734,7 +13076,7 @@ private function s141(): bool $o1 = $this->p; if (!$this->s142()) { - goto f471;} + goto f542;} // s139 $o2 = $this->p; while (true) { @@ -14744,24 +13086,24 @@ private function s141(): bool $this->rec(3); } - goto e473; + goto e544; } $this->p++; } - e473: + e544: if (($this->ids[$this->p] === 40)) { if (!$this->s182()) { - goto n474;} - n474: + goto n545;} + n545: } elseif ($this->p > $this->f) { $this->rec(182); } - goto k471; - f471: + goto k542; + f542: $this->p = $o1; return false; - k471: + k542: return true; } @@ -14809,9 +13151,9 @@ private function s142(): bool case 78: case 79: if (!$this->s146()) { - goto n745;} - goto a744; - n745: + goto n818;} + goto a817; + n818: break; case 1: case 2: @@ -14827,26 +13169,58 @@ private function s142(): bool case 13: case 14: case 24: - if (!$this->s143()) { - goto n746;} - goto a744; - n746: - // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } + // s143 + $o2 = $this->p; + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } - goto n747;} + goto e822; + } - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + $this->p++; + } + e822: + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); } - goto f748;} + goto f820;} + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e824; + } + + $this->p++; + } + e824: + if (!$this->s145()) { + goto f820;} + goto k820; + f820: + $this->p = $o2; + goto n819; + k820: + goto a817; + n819: + // s172 + $o2 = $this->p; $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -14854,23 +13228,16 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f748;} + goto f826;} } - goto k748; - f748: + goto k826; + f826: $this->p = $o2; - goto n747; - k748: - goto a744; - n747: + goto n825; + k826: + goto a817; + n825: // s160 - if (!isset(self::T96867045[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(160); - } - - goto n749;} - $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -14878,14 +13245,14 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f750;} + goto f828;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f750;} + goto f828;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -14893,44 +13260,76 @@ private function s142(): bool $this->rec(66); } - goto f750;} + goto f828;} $this->p++; if (!$this->s163()) { - goto f750;} - goto k750; - f750: + goto f828;} + goto k828; + f828: $this->p = $o2; - goto n749; - k750: - goto a744; - n749: + goto n827; + k828: + goto a817; + n827: break; case 7: case 15: case 16: case 17: case 18: - if (!$this->s143()) { - goto n751;} - goto a744; - n751: - // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } + // s143 + $o2 = $this->p; + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } - goto n752;} + goto e832; + } - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + $this->p++; + } + e832: + if (!($this->ids[$this->p] === 46)) { + if ($this->p >= $this->f) { + $this->rec(69); } - goto f753;} + goto f830;} + + $this->p++; + // s139 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!($this->ids[$this->p] === 80)) { + if ($b3 >= $this->f) { + $this->rec(3); + } + + goto e834; + } + $this->p++; + } + e834: + if (!$this->s145()) { + goto f830;} + goto k830; + f830: + $this->p = $o2; + goto n829; + k830: + goto a817; + n829: + // s172 + $o2 = $this->p; $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -14938,74 +13337,27 @@ private function s142(): bool $this->f = $this->p; $this->er = []; } - goto f753;} + goto f836;} } - goto k753; - f753: + goto k836; + f836: $this->p = $o2; - goto n752; - k753: - goto a744; - n752: + goto n835; + k836: + goto a817; + n835: break; case 22: case 23: - // s155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n754;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->s156()) { - goto n757;} - goto a756; - n757: - break; - case 23: - $this->p++; - goto a756; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f755; - a756: - goto k755; - f755: - $this->p = $o2; - goto n754; - k755: - goto a744; - n754: + if (!$this->s155()) { + goto n837;} + goto a817; + n837: break; case 38: case 83: // s148 - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(148); - } - - goto n758;} - $o2 = $this->p; - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(149); - } - - goto f759;} - $this->p++; // s139 $o3 = $this->p; @@ -15016,16 +13368,16 @@ private function s142(): bool $this->rec(3); } - goto e761; + goto e841; } $this->p++; } - e761: + e841: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n762;} - n762: + goto n842;} + n842: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -15034,24 +13386,24 @@ private function s142(): bool $this->rec(62); } - goto f759;} + goto f839;} $this->p++; - goto k759; - f759: + goto k839; + f839: $this->p = $o2; - goto n758; - k759: - goto a744; - n758: + goto n838; + k839: + goto a817; + n838: break; case 19: $this->p++; - goto a744; + goto a817; break; case 20: $this->p++; - goto a744; + goto a817; break; } @@ -15059,80 +13411,13 @@ private function s142(): bool $this->rec(142); } - goto f743; - a744: - goto k743; - f743: - $this->p = $o1; - return false; - k743: - - return true; - } - - private function s143(): bool - { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(143); - } - - return false;} - - $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f993;} - - $this->p++; - // s139 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($b2 >= $this->f) { - $this->rec(3); - } - - goto e995; - } - - $this->p++; - } - e995: - if (!($this->ids[$this->p] === 46)) { - if ($this->p >= $this->f) { - $this->rec(69); - } - - goto f993;} - - $this->p++; - // s139 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 80)) { - if ($b2 >= $this->f) { - $this->rec(3); - } - - goto e997; - } - - $this->p++; - } - e997: - if (!$this->s145()) { - goto f993;} - goto k993; - f993: + goto f816; + a817: + goto k816; + f816: $this->p = $o1; return false; - k993: + k816: return true; } @@ -15163,53 +13448,26 @@ private function s145(): bool case 61: case 62: case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - // s146 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - goto n1302;} - - $o2 = $this->p; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f1303;} - - $this->p++; - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->s138()) { - goto n1304;} - n1304: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k1303; - f1303: - $this->p = $o2; - goto n1302; - k1303: - goto a1301; - n1302: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + if (!$this->s146()) { + goto n1089;} + goto a1088; + n1089: break; case 1: case 2: @@ -15226,21 +13484,7 @@ private function s145(): bool case 14: case 24: // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1305;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1306;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -15248,23 +13492,16 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1306;} + goto f1091;} } - goto k1306; - f1306: + goto k1091; + f1091: $this->p = $o2; - goto n1305; - k1306: - goto a1301; - n1305: + goto n1090; + k1091: + goto a1088; + n1090: // s160 - if (!isset(self::T96867045[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(160); - } - - goto n1307;} - $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -15272,14 +13509,14 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1308;} + goto f1093;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1308;} + goto f1093;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -15287,18 +13524,18 @@ private function s145(): bool $this->rec(66); } - goto f1308;} + goto f1093;} $this->p++; if (!$this->s163()) { - goto f1308;} - goto k1308; - f1308: + goto f1093;} + goto k1093; + f1093: $this->p = $o2; - goto n1307; - k1308: - goto a1301; - n1307: + goto n1092; + k1093: + goto a1088; + n1092: break; case 7: case 15: @@ -15306,21 +13543,7 @@ private function s145(): bool case 17: case 18: // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1309;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1310;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -15328,74 +13551,27 @@ private function s145(): bool $this->f = $this->p; $this->er = []; } - goto f1310;} + goto f1095;} } - goto k1310; - f1310: + goto k1095; + f1095: $this->p = $o2; - goto n1309; - k1310: - goto a1301; - n1309: + goto n1094; + k1095: + goto a1088; + n1094: break; case 22: case 23: - // s155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n1311;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->s156()) { - goto n1314;} - goto a1313; - n1314: - break; - case 23: - $this->p++; - goto a1313; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f1312; - a1313: - goto k1312; - f1312: - $this->p = $o2; - goto n1311; - k1312: - goto a1301; - n1311: + if (!$this->s155()) { + goto n1096;} + goto a1088; + n1096: break; case 38: case 83: // s148 - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(148); - } - - goto n1315;} - $o2 = $this->p; - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(149); - } - - goto f1316;} - $this->p++; // s139 $o3 = $this->p; @@ -15406,16 +13582,16 @@ private function s145(): bool $this->rec(3); } - goto e1318; + goto e1100; } $this->p++; } - e1318: + e1100: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n1319;} - n1319: + goto n1101;} + n1101: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -15424,24 +13600,24 @@ private function s145(): bool $this->rec(62); } - goto f1316;} + goto f1098;} $this->p++; - goto k1316; - f1316: + goto k1098; + f1098: $this->p = $o2; - goto n1315; - k1316: - goto a1301; - n1315: + goto n1097; + k1098: + goto a1088; + n1097: break; case 19: $this->p++; - goto a1301; + goto a1088; break; case 20: $this->p++; - goto a1301; + goto a1088; break; } @@ -15449,13 +13625,13 @@ private function s145(): bool $this->rec(145); } - goto f1300; - a1301: - goto k1300; - f1300: + goto f1087; + a1088: + goto k1087; + f1087: $this->p = $o1; return false; - k1300: + k1087: return true; } @@ -15470,13 +13646,6 @@ private function s146(): bool return false;} $o1 = $this->p; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f987;} - $this->p++; if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { // s138 @@ -15485,16 +13654,9 @@ private function s146(): bool $this->rec(138); } - goto n988;} + goto n1082;} $o2 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f989;} - $this->p++; // s139 $o3 = $this->p; @@ -15505,16 +13667,16 @@ private function s146(): bool $this->rec(3); } - goto e991; + goto e1085; } $this->p++; } - e991: + e1085: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n992;} - n992: + goto n1086;} + n1086: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -15523,23 +13685,18 @@ private function s146(): bool $this->rec(53); } - goto f989;} + goto f1083;} $this->p++; - goto k989; - f989: + goto k1083; + f1083: $this->p = $o2; - goto n988; - k989: - n988: + goto n1082; + k1083: + n1082: } elseif ($this->p > $this->f) { $this->rec(138); } - goto k987; - f987: - $this->p = $o1; - return false; - k987: return true; } @@ -15555,7 +13712,7 @@ private function s151(): bool $o1 = $this->p; if (!$this->s152()) { - goto f1002;} + goto f1109;} // s139 $o2 = $this->p; while (true) { @@ -15565,24 +13722,24 @@ private function s151(): bool $this->rec(3); } - goto e1004; + goto e1111; } $this->p++; } - e1004: + e1111: if (($this->ids[$this->p] === 40)) { if (!$this->s176()) { - goto n1005;} - n1005: + goto n1112;} + n1112: } elseif ($this->p > $this->f) { $this->rec(176); } - goto k1002; - f1002: + goto k1109; + f1109: $this->p = $o1; return false; - k1002: + k1109: return true; } @@ -15629,37 +13786,10 @@ private function s152(): bool case 77: case 78: case 79: - // s146 - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(146); - } - - goto n1322;} - - $o2 = $this->p; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f1323;} - - $this->p++; - if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if (!$this->s138()) { - goto n1324;} - n1324: - } elseif ($this->p > $this->f) { - $this->rec(138); - } - goto k1323; - f1323: - $this->p = $o2; - goto n1322; - k1323: - goto a1321; - n1322: + if (!$this->s146()) { + goto n1369;} + goto a1368; + n1369: break; case 1: case 2: @@ -15676,16 +13806,9 @@ private function s152(): bool case 14: case 24: // s153 - if (!isset(self::T7726a0df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(153); - } - - goto n1325;} - $o2 = $this->p; if (!$this->s154()) { - goto f1326;} + goto f1371;} // s139 $o3 = $this->p; while (true) { @@ -15695,18 +13818,18 @@ private function s152(): bool $this->rec(3); } - goto e1328; + goto e1373; } $this->p++; } - e1328: + e1373: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1326;} + goto f1371;} $this->p++; // s139 @@ -15718,37 +13841,23 @@ private function s152(): bool $this->rec(3); } - goto e1330; + goto e1375; } $this->p++; } - e1330: + e1375: if (!$this->s145()) { - goto f1326;} - goto k1326; - f1326: + goto f1371;} + goto k1371; + f1371: $this->p = $o2; - goto n1325; - k1326: - goto a1321; - n1325: + goto n1370; + k1371: + goto a1368; + n1370: // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1331;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1332;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -15756,23 +13865,16 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1332;} + goto f1377;} } - goto k1332; - f1332: + goto k1377; + f1377: $this->p = $o2; - goto n1331; - k1332: - goto a1321; - n1331: + goto n1376; + k1377: + goto a1368; + n1376: // s160 - if (!isset(self::T96867045[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(160); - } - - goto n1333;} - $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -15780,14 +13882,14 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1334;} + goto f1379;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1334;} + goto f1379;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -15795,18 +13897,18 @@ private function s152(): bool $this->rec(66); } - goto f1334;} + goto f1379;} $this->p++; if (!$this->s163()) { - goto f1334;} - goto k1334; - f1334: + goto f1379;} + goto k1379; + f1379: $this->p = $o2; - goto n1333; - k1334: - goto a1321; - n1333: + goto n1378; + k1379: + goto a1368; + n1378: break; case 7: case 15: @@ -15814,16 +13916,9 @@ private function s152(): bool case 17: case 18: // s153 - if (!isset(self::T7726a0df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(153); - } - - goto n1335;} - $o2 = $this->p; if (!$this->s154()) { - goto f1336;} + goto f1381;} // s139 $o3 = $this->p; while (true) { @@ -15833,18 +13928,18 @@ private function s152(): bool $this->rec(3); } - goto e1338; + goto e1383; } $this->p++; } - e1338: + e1383: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1336;} + goto f1381;} $this->p++; // s139 @@ -15856,37 +13951,23 @@ private function s152(): bool $this->rec(3); } - goto e1340; + goto e1385; } $this->p++; } - e1340: + e1385: if (!$this->s145()) { - goto f1336;} - goto k1336; - f1336: + goto f1381;} + goto k1381; + f1381: $this->p = $o2; - goto n1335; - k1336: - goto a1321; - n1335: + goto n1380; + k1381: + goto a1368; + n1380: // s172 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(172); - } - - goto n1341;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1342;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -15894,29 +13975,22 @@ private function s152(): bool $this->f = $this->p; $this->er = []; } - goto f1342;} + goto f1387;} } - goto k1342; - f1342: + goto k1387; + f1387: $this->p = $o2; - goto n1341; - k1342: - goto a1321; - n1341: + goto n1386; + k1387: + goto a1368; + n1386: break; case 22: case 23: // s153 - if (!isset(self::T7726a0df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(153); - } - - goto n1343;} - $o2 = $this->p; if (!$this->s154()) { - goto f1344;} + goto f1389;} // s139 $o3 = $this->p; while (true) { @@ -15926,18 +14000,18 @@ private function s152(): bool $this->rec(3); } - goto e1346; + goto e1391; } $this->p++; } - e1346: + e1391: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1344;} + goto f1389;} $this->p++; // s139 @@ -15949,77 +14023,30 @@ private function s152(): bool $this->rec(3); } - goto e1348; + goto e1393; } $this->p++; } - e1348: + e1393: if (!$this->s145()) { - goto f1344;} - goto k1344; - f1344: - $this->p = $o2; - goto n1343; - k1344: - goto a1321; - n1343: - // s155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n1349;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->s156()) { - goto n1352;} - goto a1351; - n1352: - break; - case 23: - $this->p++; - goto a1351; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); - } - - goto f1350; - a1351: - goto k1350; - f1350: + goto f1389;} + goto k1389; + f1389: $this->p = $o2; - goto n1349; - k1350: - goto a1321; - n1349: + goto n1388; + k1389: + goto a1368; + n1388: + if (!$this->s155()) { + goto n1394;} + goto a1368; + n1394: break; case 38: case 83: // s148 - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(148); - } - - goto n1353;} - $o2 = $this->p; - if (!isset(self::T34048a70[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(149); - } - - goto f1354;} - $this->p++; // s139 $o3 = $this->p; @@ -16030,16 +14057,16 @@ private function s152(): bool $this->rec(3); } - goto e1356; + goto e1398; } $this->p++; } - e1356: + e1398: if (isset(self::T1490fe7f[$this->ids[$this->p]])) { if (!$this->s151()) { - goto n1357;} - n1357: + goto n1399;} + n1399: } elseif ($this->p > $this->f) { $this->rec(151); } @@ -16048,33 +14075,26 @@ private function s152(): bool $this->rec(62); } - goto f1354;} + goto f1396;} $this->p++; - goto k1354; - f1354: + goto k1396; + f1396: $this->p = $o2; - goto n1353; - k1354: - goto a1321; - n1353: + goto n1395; + k1396: + goto a1368; + n1395: break; case 19: $this->p++; - goto a1321; + goto a1368; break; case 20: // s153 - if (!isset(self::T7726a0df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(153); - } - - goto n1358;} - $o2 = $this->p; if (!$this->s154()) { - goto f1359;} + goto f1401;} // s139 $o3 = $this->p; while (true) { @@ -16084,18 +14104,18 @@ private function s152(): bool $this->rec(3); } - goto e1361; + goto e1403; } $this->p++; } - e1361: + e1403: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1359;} + goto f1401;} $this->p++; // s139 @@ -16107,36 +14127,29 @@ private function s152(): bool $this->rec(3); } - goto e1363; + goto e1405; } $this->p++; } - e1363: + e1405: if (!$this->s145()) { - goto f1359;} - goto k1359; - f1359: + goto f1401;} + goto k1401; + f1401: $this->p = $o2; - goto n1358; - k1359: - goto a1321; - n1358: + goto n1400; + k1401: + goto a1368; + n1400: $this->p++; - goto a1321; + goto a1368; break; case 21: // s153 - if (!isset(self::T7726a0df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(153); - } - - goto n1364;} - $o2 = $this->p; if (!$this->s154()) { - goto f1365;} + goto f1407;} // s139 $o3 = $this->p; while (true) { @@ -16146,18 +14159,18 @@ private function s152(): bool $this->rec(3); } - goto e1367; + goto e1409; } $this->p++; } - e1367: + e1409: if (!isset(self::Ta7068161[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(171); } - goto f1365;} + goto f1407;} $this->p++; // s139 @@ -16169,21 +14182,21 @@ private function s152(): bool $this->rec(3); } - goto e1369; + goto e1411; } $this->p++; } - e1369: + e1411: if (!$this->s145()) { - goto f1365;} - goto k1365; - f1365: + goto f1407;} + goto k1407; + f1407: $this->p = $o2; - goto n1364; - k1365: - goto a1321; - n1364: + goto n1406; + k1407: + goto a1368; + n1406: break; } @@ -16191,13 +14204,13 @@ private function s152(): bool $this->rec(152); } - goto f1320; - a1321: - goto k1320; - f1320: + goto f1367; + a1368: + goto k1367; + f1367: $this->p = $o1; return false; - k1320: + k1367: return true; } @@ -16230,13 +14243,6 @@ private function s154(): bool case 14: case 24: // s160 - if (!isset(self::T96867045[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(160); - } - - goto n1596;} - $o2 = $this->p; if (isset(self::T00b73ddb[$this->ids[$this->p]])) { if (isset(self::T00b73ddb[$this->ids[$this->p]])) { @@ -16244,14 +14250,14 @@ private function s154(): bool $this->f = $this->p; $this->er = []; } - goto f1597;} + goto f1620;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f1597;} + goto f1620;} $this->p++; if (!($this->ids[$this->p] === 43)) { @@ -16259,34 +14265,20 @@ private function s154(): bool $this->rec(66); } - goto f1597;} + goto f1620;} $this->p++; if (!$this->s163()) { - goto f1597;} - goto k1597; - f1597: + goto f1620;} + goto k1620; + f1620: $this->p = $o2; - goto n1596; - k1597: - goto a1595; - n1596: + goto n1619; + k1620: + goto a1618; + n1619: // s169 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(169); - } - - goto n1598;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1599;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -16294,101 +14286,54 @@ private function s154(): bool $this->f = $this->p; $this->er = []; } - goto f1599;} + goto f1622;} } - goto k1599; - f1599: + goto k1622; + f1622: $this->p = $o2; - goto n1598; - k1599: - goto a1595; - n1598: + goto n1621; + k1622: + goto a1618; + n1621: break; case 7: case 15: case 16: case 17: case 18: - // s169 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(169); - } - - goto n1600;} - - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1601;} - - $this->p++; - if (($this->ids[$this->p] === 43)) { - if (($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f1601;} - } - goto k1601; - f1601: - $this->p = $o2; - goto n1600; - k1601: - goto a1595; - n1600: - break; - case 22: - case 23: - // s155 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(155); - } - - goto n1602;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 22: - if (!$this->s156()) { - goto n1605;} - goto a1604; - n1605: - break; - case 23: - $this->p++; - goto a1604; - break; - } - - if ($this->p > $this->f) { - $this->rec(155); + // s169 + $o2 = $this->p; + $this->p++; + if (($this->ids[$this->p] === 43)) { + if (($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f1624;} } - - goto f1603; - a1604: - goto k1603; - f1603: + goto k1624; + f1624: $this->p = $o2; - goto n1602; - k1603: - goto a1595; - n1602: + goto n1623; + k1624: + goto a1618; + n1623: + break; + case 22: + case 23: + if (!$this->s155()) { + goto n1625;} + goto a1618; + n1625: break; case 20: $this->p++; - goto a1595; + goto a1618; break; case 21: $this->p++; - goto a1595; + goto a1618; break; } @@ -16396,79 +14341,93 @@ private function s154(): bool $this->rec(154); } - goto f1594; - a1595: - goto k1594; - f1594: + goto f1617; + a1618: + goto k1617; + f1617: $this->p = $o1; return false; - k1594: + k1617: return true; } - private function s156(): bool + private function s155(): bool { - if (!($this->ids[$this->p] === 22)) { + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(156); + $this->rec(155); } return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 22)) { - if ($this->p >= $this->f) { - $this->rec(44); - } + switch ($this->ids[$this->p]) { + default: + break; + case 22: + // s156 + $o2 = $this->p; + $this->p++; + if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + // s158 + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(158); + } - goto f998;} + goto n1106;} - $this->p++; - if (isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - // s158 - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(158); - } + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(159); + } - goto n999;} + goto e1108; + } - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T7dfbf2bf[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(159); + $this->p++; + + $k3++; } + e1108: - goto e1001; + if ($k3 < 1) { + goto f1107; + } + goto k1107; + f1107: + $this->p = $o3; + goto n1106; + k1107: + n1106: + } elseif ($this->p > $this->f) { + $this->rec(158); } - + goto a1103; + n1104: + break; + case 23: $this->p++; + goto a1103; + break; + } - $k2++; - } - e1001: - - if ($k2 < 1) { - goto f1000; - } - goto k1000; - f1000: - $this->p = $o2; - goto n999; - k1000: - n999: - } elseif ($this->p > $this->f) { - $this->rec(158); + if ($this->p > $this->f) { + $this->rec(155); } - goto k998; - f998: + + goto f1102; + a1103: + goto k1102; + f1102: $this->p = $o1; return false; - k998: + k1102: return true; } @@ -16506,73 +14465,68 @@ private function s163(): bool case 18: case 24: // s166 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(166); - } - - goto n706;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f707;} - $this->p++; if (isset(self::T4d756b3a[$this->ids[$this->p]])) { - if (!$this->s168()) { - goto n708;} - n708: - } elseif ($this->p > $this->f) { - $this->rec(168); - } - goto k707; - f707: - $this->p = $o2; - goto n706; - k707: - goto a705; - n706: - break; - case 50: - // s164 - if (!($this->ids[$this->p] === 50)) { - if ($this->p > $this->f) { - $this->rec(164); - } + // s168 + if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(168); + } - goto n709;} + goto n482;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 50)) { - if ($this->p >= $this->f) { - $this->rec(71); + $o3 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + // s164 + $o4 = $this->p; + $this->p++; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->s166()) { + goto n487;} + n487: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto a484; + n485: + break; + case 85: + $this->p++; + goto a484; + break; } - goto f710;} + if ($this->p > $this->f) { + $this->rec(168); + } - $this->p++; - if (isset(self::T83e30518[$this->ids[$this->p]])) { - if (!$this->s166()) { - goto n711;} - n711: + goto f483; + a484: + goto k483; + f483: + $this->p = $o3; + goto n482; + k483: + n482: } elseif ($this->p > $this->f) { - $this->rec(166); + $this->rec(168); } - goto k710; - f710: - $this->p = $o2; - goto n709; - k710: - goto a705; - n709: + goto a479; + n480: + break; + case 50: + if (!$this->s164()) { + goto n488;} + goto a479; + n488: break; case 85: $this->p++; - goto a705; + goto a479; break; } @@ -16580,13 +14534,13 @@ private function s163(): bool $this->rec(163); } - goto f704; - a705: - goto k704; - f704: + goto f478; + a479: + goto k478; + f478: $this->p = $o1; return false; - k704: + k478: return true; } @@ -16601,26 +14555,62 @@ private function s164(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 50)) { - if ($this->p >= $this->f) { - $this->rec(71); - } - - goto f1271;} - $this->p++; if (isset(self::T83e30518[$this->ids[$this->p]])) { - if (!$this->s166()) { - goto n1272;} - n1272: + // s166 + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(166); + } + + goto n770;} + + $o2 = $this->p; + $this->p++; + if (isset(self::T4d756b3a[$this->ids[$this->p]])) { + // s168 + if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(168); + } + + goto n772;} + + $o3 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + if (!$this->s164()) { + goto n775;} + goto a774; + n775: + break; + case 85: + $this->p++; + goto a774; + break; + } + + if ($this->p > $this->f) { + $this->rec(168); + } + + goto f773; + a774: + goto k773; + f773: + $this->p = $o3; + goto n772; + k773: + n772: + } elseif ($this->p > $this->f) { + $this->rec(168); + } + n770: } elseif ($this->p > $this->f) { $this->rec(166); } - goto k1271; - f1271: - $this->p = $o1; - return false; - k1271: return true; } @@ -16635,67 +14625,56 @@ private function s166(): bool return false;} $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f960;} - $this->p++; if (isset(self::T4d756b3a[$this->ids[$this->p]])) { - if (!$this->s168()) { - goto n961;} - n961: - } elseif ($this->p > $this->f) { - $this->rec(168); - } - goto k960; - f960: - $this->p = $o1; - return false; - k960: + // s168 + if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(168); + } - return true; - } + goto n763;} + + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 50: + // s164 + $o3 = $this->p; + $this->p++; + if (isset(self::T83e30518[$this->ids[$this->p]])) { + if (!$this->s166()) { + goto n768;} + n768: + } elseif ($this->p > $this->f) { + $this->rec(166); + } + goto a765; + n766: + break; + case 85: + $this->p++; + goto a765; + break; + } - private function s168(): bool - { - if (!isset(self::T4d756b3a[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(168); } - return false;} - - $o1 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 50: - if (!$this->s164()) { - goto n959;} - goto a958; - n959: - break; - case 85: - $this->p++; - goto a958; - break; - } - - if ($this->p > $this->f) { + goto f764; + a765: + goto k764; + f764: + $this->p = $o2; + goto n763; + k764: + n763: + } elseif ($this->p > $this->f) { $this->rec(168); } - goto f957; - a958: - goto k957; - f957: - $this->p = $o1; - return false; - k957: - return true; } @@ -16709,13 +14688,6 @@ private function s169(): bool return false;} $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f607;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -16723,13 +14695,13 @@ private function s169(): bool $this->f = $this->p; $this->er = []; } - goto f607;} + goto f664;} } - goto k607; - f607: + goto k664; + f664: $this->p = $o1; return false; - k607: + k664: return true; } @@ -16752,7 +14724,7 @@ private function s176(): bool $this->rec(177); } - goto e1371; + goto e1413; } // s177 @@ -16761,16 +14733,9 @@ private function s176(): bool $this->rec(177); } - goto e1371;} + goto e1413;} $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1372;} - $this->p++; // s139 $o3 = $this->p; @@ -16781,36 +14746,36 @@ private function s176(): bool $this->rec(3); } - goto e1374; + goto e1416; } $this->p++; } - e1374: + e1416: if (!$this->s178()) { - goto f1372;} - goto k1372; - f1372: + goto f1414;} + goto k1414; + f1414: $this->p = $o2; - goto e1371; - k1372: + goto e1413; + k1414: if ($this->p === $b1) { $k1 = 1; - goto e1371; + goto e1413; } $k1++; } - e1371: + e1413: if ($k1 < 1) { - goto f1370; + goto f1412; } - goto k1370; - f1370: + goto k1412; + f1412: $this->p = $o1; return false; - k1370: + k1412: return true; } @@ -16826,11 +14791,11 @@ private function s178(): bool $this->rec(180); } - goto n1608;} + goto n1628;} $o2 = $this->p; if (!$this->s152()) { - goto f1609;} + goto f1629;} // s139 $o3 = $this->p; while (true) { @@ -16840,19 +14805,19 @@ private function s178(): bool $this->rec(3); } - goto e1611; + goto e1631; } $this->p++; } - e1611: - goto k1609; - f1609: + e1631: + goto k1629; + f1629: $this->p = $o2; - goto n1608; - k1609: - goto a1607; - n1608: + goto n1628; + k1629: + goto a1627; + n1628: break; case 0: case 25: @@ -16893,9 +14858,9 @@ private function s178(): bool $this->rec(62); } - goto n1612;} - goto a1607; - n1612: + goto n1632;} + goto a1627; + n1632: break; } @@ -16903,13 +14868,13 @@ private function s178(): bool $this->rec(178); } - goto f1606; - a1607: - goto k1606; - f1606: + goto f1626; + a1627: + goto k1626; + f1626: $this->p = $o1; return false; - k1606: + k1626: return true; } @@ -16932,7 +14897,7 @@ private function s182(): bool $this->rec(183); } - goto e764; + goto e844; } // s183 @@ -16941,16 +14906,9 @@ private function s182(): bool $this->rec(183); } - goto e764;} + goto e844;} $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f765;} - $this->p++; // s139 $o3 = $this->p; @@ -16961,36 +14919,36 @@ private function s182(): bool $this->rec(3); } - goto e767; + goto e847; } $this->p++; } - e767: + e847: if (!$this->s184()) { - goto f765;} - goto k765; - f765: + goto f845;} + goto k845; + f845: $this->p = $o2; - goto e764; - k765: + goto e844; + k845: if ($this->p === $b1) { $k1 = 1; - goto e764; + goto e844; } $k1++; } - e764: + e844: if ($k1 < 1) { - goto f763; + goto f843; } - goto k763; - f763: + goto k843; + f843: $this->p = $o1; return false; - k763: + k843: return true; } @@ -17006,11 +14964,11 @@ private function s184(): bool $this->rec(186); } - goto n1008;} + goto n1115;} $o2 = $this->p; if (!$this->s142()) { - goto f1009;} + goto f1116;} // s139 $o3 = $this->p; while (true) { @@ -17020,19 +14978,19 @@ private function s184(): bool $this->rec(3); } - goto e1011; + goto e1118; } $this->p++; } - e1011: - goto k1009; - f1009: + e1118: + goto k1116; + f1116: $this->p = $o2; - goto n1008; - k1009: - goto a1007; - n1008: + goto n1115; + k1116: + goto a1114; + n1115: break; case 0: case 21: @@ -17074,9 +15032,9 @@ private function s184(): bool $this->rec(53); } - goto n1012;} - goto a1007; - n1012: + goto n1119;} + goto a1114; + n1119: break; } @@ -17084,13 +15042,13 @@ private function s184(): bool $this->rec(184); } - goto f1006; - a1007: - goto k1006; - f1006: + goto f1113; + a1114: + goto k1113; + f1113: $this->p = $o1; return false; - k1006: + k1113: return true; } @@ -17105,13 +15063,6 @@ private function s187(): bool return false;} $o1 = $this->p; - if (!isset(self::Tf6aec6a4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(12); - } - - goto f226;} - $this->p++; // s138 if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -17119,16 +15070,9 @@ private function s187(): bool $this->rec(138); } - goto f226;} + goto f267;} $o2 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f227;} - $this->p++; // s139 $o3 = $this->p; @@ -17139,16 +15083,16 @@ private function s187(): bool $this->rec(3); } - goto e229; + goto e270; } $this->p++; } - e229: + e270: if (isset(self::T1e2ed78c[$this->ids[$this->p]])) { if (!$this->s141()) { - goto n230;} - n230: + goto n271;} + n271: } elseif ($this->p > $this->f) { $this->rec(141); } @@ -17157,14 +15101,14 @@ private function s187(): bool $this->rec(53); } - goto f227;} + goto f268;} $this->p++; - goto k227; - f227: + goto k268; + f268: $this->p = $o2; - goto f226; - k227: + goto f267; + k268: // s19 $o2 = $this->p; // s20 @@ -17176,24 +15120,24 @@ private function s187(): bool $this->rec(21); } - goto e233; + goto e274; } $this->p++; } - e233: + e274: if (!$this->s74()) { - goto f231;} - goto k231; - f231: + goto f272;} + goto k272; + f272: $this->p = $o2; - goto f226; - k231: - goto k226; - f226: + goto f267; + k272: + goto k267; + f267: $this->p = $o1; return false; - k226: + k267: return true; } @@ -17211,24 +15155,24 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f42;} + goto f46;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f43;} - goto k43; - f43: + goto f47;} + goto k47; + f47: $this->p = $o3; - goto f42; - k43: - goto k42; - f42: + goto f46; + k47: + goto k46; + f46: $this->p = $o2; - goto n41; - k42: - goto a40; - n41: + goto n45; + k46: + goto a44; + n45: break; case 51: case 52: @@ -17256,13 +15200,13 @@ private function s189(): bool case 74: case 75: if (!$this->s190()) { - goto n44;} - goto a40; - n44: + goto n48;} + goto a44; + n48: if (!$this->s454()) { - goto n45;} - goto a40; - n45: + goto n49;} + goto a44; + n49: // s455 $o2 = $this->p; if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -17271,33 +15215,33 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f47;} + goto f51;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f48;} - goto k48; - f48: + goto f52;} + goto k52; + f52: $this->p = $o3; - goto f47; - k48: - goto k47; - f47: + goto f51; + k52: + goto k51; + f51: $this->p = $o2; - goto n46; - k47: - goto a40; - n46: + goto n50; + k51: + goto a44; + n50: break; case 76: case 77: case 78: case 79: if (!$this->s454()) { - goto n49;} - goto a40; - n49: + goto n53;} + goto a44; + n53: // s455 $o2 = $this->p; if (isset(self::Tf4b693bf[$this->ids[$this->p]])) { @@ -17306,24 +15250,24 @@ private function s189(): bool $this->f = $this->p; $this->er = []; } - goto f51;} + goto f55;} } // s457 $o3 = $this->p; if (!$this->s125()) { - goto f52;} - goto k52; - f52: + goto f56;} + goto k56; + f56: $this->p = $o3; - goto f51; - k52: - goto k51; - f51: + goto f55; + k56: + goto k55; + f55: $this->p = $o2; - goto n50; - k51: - goto a40; - n50: + goto n54; + k55: + goto a44; + n54: break; } @@ -17331,13 +15275,13 @@ private function s189(): bool $this->rec(189); } - goto f39; - a40: - goto k39; - f39: + goto f43; + a44: + goto k43; + f43: $this->p = $o1; return false; - k39: + k43: return true; } @@ -17357,21 +15301,7 @@ private function s190(): bool break; case 51: // s402 - if (!($this->ids[$this->p] === 51)) { - if ($this->p > $this->f) { - $this->rec(402); - } - - goto n100;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 51)) { - if ($this->p >= $this->f) { - $this->rec(85); - } - - goto f101;} - $this->p++; // s403 if (!($this->ids[$this->p] === 26)) { @@ -17379,49 +15309,28 @@ private function s190(): bool $this->rec(403); } - goto f101;} + goto f127;} $o3 = $this->p; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f102;} - $this->p++; if (!$this->s125()) { - goto f102;} - goto k102; - f102: + goto f128;} + goto k128; + f128: $this->p = $o3; - goto f101; - k102: - goto k101; - f101: + goto f127; + k128: + goto k127; + f127: $this->p = $o2; - goto n100; - k101: - goto a99; - n100: + goto n126; + k127: + goto a125; + n126: break; case 52: // s405 - if (!($this->ids[$this->p] === 52)) { - if ($this->p > $this->f) { - $this->rec(405); - } - - goto n103;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 52)) { - if ($this->p >= $this->f) { - $this->rec(88); - } - - goto f104;} - $this->p++; // s403 if (!($this->ids[$this->p] === 26)) { @@ -17429,49 +15338,28 @@ private function s190(): bool $this->rec(403); } - goto f104;} + goto f130;} $o3 = $this->p; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f105;} - $this->p++; if (!$this->s125()) { - goto f105;} - goto k105; - f105: + goto f131;} + goto k131; + f131: $this->p = $o3; - goto f104; - k105: - goto k104; - f104: + goto f130; + k131: + goto k130; + f130: $this->p = $o2; - goto n103; - k104: - goto a99; - n103: + goto n129; + k130: + goto a125; + n129: break; case 53: // s406 - if (!($this->ids[$this->p] === 53)) { - if ($this->p > $this->f) { - $this->rec(406); - } - - goto n106;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 53)) { - if ($this->p >= $this->f) { - $this->rec(89); - } - - goto f107;} - $this->p++; // s403 if (!($this->ids[$this->p] === 26)) { @@ -17479,49 +15367,28 @@ private function s190(): bool $this->rec(403); } - goto f107;} + goto f133;} $o3 = $this->p; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f108;} - $this->p++; if (!$this->s125()) { - goto f108;} - goto k108; - f108: + goto f134;} + goto k134; + f134: $this->p = $o3; - goto f107; - k108: - goto k107; - f107: + goto f133; + k134: + goto k133; + f133: $this->p = $o2; - goto n106; - k107: - goto a99; - n106: + goto n132; + k133: + goto a125; + n132: break; case 54: // s404 - if (!($this->ids[$this->p] === 54)) { - if ($this->p > $this->f) { - $this->rec(404); - } - - goto n109;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 54)) { - if ($this->p >= $this->f) { - $this->rec(86); - } - - goto f110;} - $this->p++; // s403 if (!($this->ids[$this->p] === 26)) { @@ -17529,49 +15396,28 @@ private function s190(): bool $this->rec(403); } - goto f110;} + goto f136;} $o3 = $this->p; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f111;} - $this->p++; if (!$this->s125()) { - goto f111;} - goto k111; - f111: + goto f137;} + goto k137; + f137: $this->p = $o3; - goto f110; - k111: - goto k110; - f110: + goto f136; + k137: + goto k136; + f136: $this->p = $o2; - goto n109; - k110: - goto a99; - n109: + goto n135; + k136: + goto a125; + n135: break; case 55: // s401 - if (!($this->ids[$this->p] === 55)) { - if ($this->p > $this->f) { - $this->rec(401); - } - - goto n112;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 55)) { - if ($this->p >= $this->f) { - $this->rec(87); - } - - goto f113;} - $this->p++; // s399 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -17579,159 +15425,71 @@ private function s190(): bool $this->rec(399); } - goto f113;} + goto f139;} $o3 = $this->p; if (!$this->s199()) { - goto f114;} + goto f140;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f114;} + goto f140;} $this->p++; if (!$this->s125()) { - goto f114;} - goto k114; - f114: + goto f140;} + goto k140; + f140: $this->p = $o3; - goto f113; - k114: - goto k113; - f113: + goto f139; + k140: + goto k139; + f139: $this->p = $o2; - goto n112; - k113: - goto a99; - n112: + goto n138; + k139: + goto a125; + n138: break; case 56: // s395 - if (!($this->ids[$this->p] === 56)) { - if ($this->p > $this->f) { - $this->rec(395); - } - - goto n115;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 56)) { - if ($this->p >= $this->f) { - $this->rec(95); - } - - goto f116;} - $this->p++; if (!$this->s391()) { - goto f116;} - goto k116; - f116: + goto f142;} + goto k142; + f142: $this->p = $o2; - goto n115; - k116: - goto a99; - n115: + goto n141; + k142: + goto a125; + n141: break; case 57: // s394 - if (!($this->ids[$this->p] === 57)) { - if ($this->p > $this->f) { - $this->rec(394); - } - - goto n117;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 57)) { - if ($this->p >= $this->f) { - $this->rec(94); - } - - goto f118;} - $this->p++; if (!$this->s391()) { - goto f118;} - goto k118; - f118: + goto f144;} + goto k144; + f144: $this->p = $o2; - goto n117; - k118: - goto a99; - n117: + goto n143; + k144: + goto a125; + n143: break; case 58: - // s443 - if (!($this->ids[$this->p] === 58)) { - if ($this->p > $this->f) { - $this->rec(443); - } - - goto n119;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 58)) { - if ($this->p >= $this->f) { - $this->rec(105); - } - - goto f120;} - - $this->p++; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f120;} - - $this->p++; - if (!($this->ids[$this->p] === 10)) { - if ($this->p >= $this->f) { - $this->rec(26); - } - - goto f120;} - - $this->p++; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f120;} - - $this->p++; - if (!$this->s444()) { - goto f120;} - goto k120; - f120: - $this->p = $o2; - goto n119; - k120: - goto a99; - n119: + if (!$this->s443()) { + goto n145;} + goto a125; + n145: break; case 59: // s446 - if (!($this->ids[$this->p] === 59)) { - if ($this->p > $this->f) { - $this->rec(446); - } - - goto n121;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 59)) { - if ($this->p >= $this->f) { - $this->rec(106); - } - - goto f122;} - $this->p++; if (($this->ids[$this->p] === 31)) { $this->p++; @@ -17744,106 +15502,64 @@ private function s190(): bool $this->rec(69); } if (!$this->s199()) { - goto f122;} + goto f147;} if (!isset(self::T29c7f960[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(448); } - goto f122;} + goto f147;} $this->p++; if (!$this->s449()) { - goto f122;} + goto f147;} if (!$this->s125()) { - goto f122;} - goto k122; - f122: + goto f147;} + goto k147; + f147: $this->p = $o2; - goto n121; - k122: - goto a99; - n121: + goto n146; + k147: + goto a125; + n146: break; case 60: // s397 - if (!($this->ids[$this->p] === 60)) { - if ($this->p > $this->f) { - $this->rec(397); - } - - goto n123;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 60)) { - if ($this->p >= $this->f) { - $this->rec(107); - } - - goto f124;} - $this->p++; if (!$this->s391()) { - goto f124;} - goto k124; - f124: + goto f149;} + goto k149; + f149: $this->p = $o2; - goto n123; - k124: - goto a99; - n123: + goto n148; + k149: + goto a125; + n148: break; case 61: // s396 - if (!($this->ids[$this->p] === 61)) { - if ($this->p > $this->f) { - $this->rec(396); - } - - goto n125;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 61)) { - if ($this->p >= $this->f) { - $this->rec(96); - } - - goto f126;} - $this->p++; if (!$this->s391()) { - goto f126;} - goto k126; - f126: + goto f151;} + goto k151; + f151: $this->p = $o2; - goto n125; - k126: - goto a99; - n125: + goto n150; + k151: + goto a125; + n150: break; case 62: if (!$this->s436()) { - goto n127;} - goto a99; - n127: + goto n152;} + goto a125; + n152: break; case 63: // s398 - if (!($this->ids[$this->p] === 63)) { - if ($this->p > $this->f) { - $this->rec(398); - } - - goto n128;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 63)) { - if ($this->p >= $this->f) { - $this->rec(98); - } - - goto f129;} - $this->p++; // s399 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -17851,114 +15567,72 @@ private function s190(): bool $this->rec(399); } - goto f129;} + goto f154;} $o3 = $this->p; if (!$this->s199()) { - goto f130;} + goto f155;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f130;} + goto f155;} $this->p++; if (!$this->s125()) { - goto f130;} - goto k130; - f130: + goto f155;} + goto k155; + f155: $this->p = $o3; - goto f129; - k130: - goto k129; - f129: + goto f154; + k155: + goto k154; + f154: $this->p = $o2; - goto n128; - k129: - goto a99; - n128: + goto n153; + k154: + goto a125; + n153: break; case 64: // s439 - if (!($this->ids[$this->p] === 64)) { - if ($this->p > $this->f) { - $this->rec(439); - } - - goto n131;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 64)) { - if ($this->p >= $this->f) { - $this->rec(102); - } - - goto f132;} - $this->p++; if (!$this->s438()) { - goto f132;} - goto k132; - f132: + goto f157;} + goto k157; + f157: $this->p = $o2; - goto n131; - k132: - goto a99; - n131: + goto n156; + k157: + goto a125; + n156: break; case 65: // s407 - if (!($this->ids[$this->p] === 65)) { - if ($this->p > $this->f) { - $this->rec(407); - } - - goto n133;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 65)) { - if ($this->p >= $this->f) { - $this->rec(97); - } - - goto f134;} - $this->p++; if (!$this->s125()) { - goto f134;} - goto k134; - f134: + goto f159;} + goto k159; + f159: $this->p = $o2; - goto n133; - k134: - goto a99; - n133: + goto n158; + k159: + goto a125; + n158: break; case 66: // s441 - if (!($this->ids[$this->p] === 66)) { - if ($this->p > $this->f) { - $this->rec(441); - } - - goto n135;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 66)) { - if ($this->p >= $this->f) { - $this->rec(104); - } - - goto f136;} - $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f136;} + goto f161;} $this->p++; if (($this->ids[$this->p] === 46)) { @@ -17967,43 +15641,29 @@ private function s190(): bool $this->rec(69); } if (!$this->s199()) { - goto f136;} + goto f161;} if (!isset(self::T53b29bff[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(77); } - goto f136;} - goto k136; - f136: + goto f161;} + goto k161; + f161: $this->p = $o2; - goto n135; - k136: - goto a99; - n135: + goto n160; + k161: + goto a125; + n160: // s442 - if (!($this->ids[$this->p] === 66)) { - if ($this->p > $this->f) { - $this->rec(442); - } - - goto n137;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 66)) { - if ($this->p >= $this->f) { - $this->rec(104); - } - - goto f138;} - $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f138;} + goto f163;} $this->p++; if (($this->ids[$this->p] === 46)) { @@ -18012,32 +15672,18 @@ private function s190(): bool $this->rec(69); } if (!$this->s125()) { - goto f138;} - goto k138; - f138: + goto f163;} + goto k163; + f163: $this->p = $o2; - goto n137; - k138: - goto a99; - n137: + goto n162; + k163: + goto a125; + n162: break; case 67: // s400 - if (!($this->ids[$this->p] === 67)) { - if ($this->p > $this->f) { - $this->rec(400); - } - - goto n139;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 67)) { - if ($this->p >= $this->f) { - $this->rec(108); - } - - goto f140;} - $this->p++; // s399 if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { @@ -18045,259 +15691,147 @@ private function s190(): bool $this->rec(399); } - goto f140;} + goto f165;} $o3 = $this->p; if (!$this->s199()) { - goto f141;} + goto f166;} if (!($this->ids[$this->p] === 26)) { if ($this->p >= $this->f) { $this->rec(47); } - goto f141;} + goto f166;} $this->p++; if (!$this->s125()) { - goto f141;} - goto k141; - f141: + goto f166;} + goto k166; + f166: $this->p = $o3; - goto f140; - k141: - goto k140; - f140: + goto f165; + k166: + goto k165; + f165: $this->p = $o2; - goto n139; - k140: - goto a99; - n139: + goto n164; + k165: + goto a125; + n164: break; case 68: // s437 - if (!($this->ids[$this->p] === 68)) { - if ($this->p > $this->f) { - $this->rec(437); - } - - goto n142;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 68)) { - if ($this->p >= $this->f) { - $this->rec(101); - } - - goto f143;} - $this->p++; if (!$this->s438()) { - goto f143;} - goto k143; - f143: + goto f168;} + goto k168; + f168: $this->p = $o2; - goto n142; - k143: - goto a99; - n142: + goto n167; + k168: + goto a125; + n167: break; case 69: // s408 - if (!($this->ids[$this->p] === 69)) { - if ($this->p > $this->f) { - $this->rec(408); - } - - goto n144;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 69)) { - if ($this->p >= $this->f) { - $this->rec(99); - } - - goto f145;} - $this->p++; if (!$this->s409()) { - goto f145;} - goto k145; - f145: + goto f170;} + goto k170; + f170: $this->p = $o2; - goto n144; - k145: - goto a99; - n144: + goto n169; + k170: + goto a125; + n169: break; case 70: // s390 - if (!($this->ids[$this->p] === 70)) { - if ($this->p > $this->f) { - $this->rec(390); - } - - goto n146;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 70)) { - if ($this->p >= $this->f) { - $this->rec(91); - } - - goto f147;} - $this->p++; if (!$this->s391()) { - goto f147;} - goto k147; - f147: + goto f172;} + goto k172; + f172: $this->p = $o2; - goto n146; - k147: - goto a99; - n146: + goto n171; + k172: + goto a125; + n171: break; case 71: // s392 - if (!($this->ids[$this->p] === 71)) { - if ($this->p > $this->f) { - $this->rec(392); - } - - goto n148;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 71)) { - if ($this->p >= $this->f) { - $this->rec(92); - } - - goto f149;} - $this->p++; if (!$this->s391()) { - goto f149;} - goto k149; - f149: + goto f174;} + goto k174; + f174: $this->p = $o2; - goto n148; - k149: - goto a99; - n148: + goto n173; + k174: + goto a125; + n173: break; case 72: // s191 - if (!($this->ids[$this->p] === 72)) { - if ($this->p > $this->f) { - $this->rec(191); - } - - goto n150;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 72)) { - if ($this->p >= $this->f) { - $this->rec(84); - } - - goto f151;} - $this->p++; if (!$this->s192()) { - goto f151;} - goto k151; - f151: + goto f176;} + goto k176; + f176: $this->p = $o2; - goto n150; - k151: - goto a99; - n150: + goto n175; + k176: + goto a125; + n175: break; case 73: // s393 - if (!($this->ids[$this->p] === 73)) { - if ($this->p > $this->f) { - $this->rec(393); - } - - goto n152;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 73)) { - if ($this->p >= $this->f) { - $this->rec(93); - } - - goto f153;} - $this->p++; if (!$this->s391()) { - goto f153;} - goto k153; - f153: + goto f178;} + goto k178; + f178: $this->p = $o2; - goto n152; - k153: - goto a99; - n152: + goto n177; + k178: + goto a125; + n177: break; case 74: // s440 - if (!($this->ids[$this->p] === 74)) { - if ($this->p > $this->f) { - $this->rec(440); - } - - goto n154;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 74)) { - if ($this->p >= $this->f) { - $this->rec(103); - } - - goto f155;} - $this->p++; if (!$this->s438()) { - goto f155;} - goto k155; - f155: + goto f180;} + goto k180; + f180: $this->p = $o2; - goto n154; - k155: - goto a99; - n154: + goto n179; + k180: + goto a125; + n179: break; case 75: // s384 - if (!($this->ids[$this->p] === 75)) { - if ($this->p > $this->f) { - $this->rec(384); - } - - goto n156;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 75)) { - if ($this->p >= $this->f) { - $this->rec(90); - } - - goto f157;} - $this->p++; if (!$this->s199()) { - goto f157;} + goto f182;} if (!$this->s385()) { - goto f157;} - goto k157; - f157: + goto f182;} + goto k182; + f182: $this->p = $o2; - goto n156; - k157: - goto a99; - n156: + goto n181; + k182: + goto a125; + n181: break; } @@ -18305,13 +15839,13 @@ private function s190(): bool $this->rec(190); } - goto f98; - a99: - goto k98; - f98: + goto f124; + a125: + goto k124; + f124: $this->p = $o1; return false; - k98: + k124: return true; } @@ -18357,16 +15891,9 @@ private function s192(): bool case 32: case 82: // s198 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(198); - } - - goto n328;} - $o2 = $this->p; if (!$this->s199()) { - goto f329;} + goto f375;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -18382,37 +15909,30 @@ private function s192(): bool $this->rec(47); } - goto f329;} + goto f375;} $this->p++; if (!$this->s125()) { - goto f329;} - goto k329; - f329: + goto f375;} + goto k375; + f375: $this->p = $o2; - goto n328; - k329: - goto a327; - n328: + goto n374; + k375: + goto a373; + n374: break; case 26: case 27: case 42: // s193 - if (!isset(self::T553dc07b[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(193); - } - - goto n330;} - $o2 = $this->p; if (!isset(self::T553dc07b[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(195); } - goto f331;} + goto f377;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -18428,18 +15948,18 @@ private function s192(): bool $this->rec(47); } - goto f331;} + goto f377;} $this->p++; if (!$this->s125()) { - goto f331;} - goto k331; - f331: + goto f377;} + goto k377; + f377: $this->p = $o2; - goto n330; - k331: - goto a327; - n330: + goto n376; + k377: + goto a373; + n376: break; } @@ -18447,13 +15967,13 @@ private function s192(): bool $this->rec(192); } - goto f326; - a327: - goto k326; - f326: + goto f372; + a373: + goto k372; + f372: $this->p = $o1; return false; - k326: + k372: return true; } @@ -18498,53 +16018,32 @@ private function s199(): bool case 32: case 82: // s367 - if (!isset(self::T977f027a[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(367); - } - - goto n166;} - $o2 = $this->p; if (!$this->s201()) { - goto f167;} + goto f192;} if (!$this->s368()) { - goto f167;} - goto k167; - f167: + goto f192;} + goto k192; + f192: $this->p = $o2; - goto n166; - k167: - goto a165; - n166: + goto n191; + k192: + goto a190; + n191: break; case 30: // s200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } - - goto n168;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } - - goto f169;} - $this->p++; if (!$this->s201()) { - goto f169;} - goto k169; - f169: + goto f194;} + goto k194; + f194: $this->p = $o2; - goto n168; - k169: - goto a165; - n168: + goto n193; + k194: + goto a190; + n193: break; } @@ -18552,13 +16051,13 @@ private function s199(): bool $this->rec(199); } - goto f164; - a165: - goto k164; - f164: + goto f189; + a190: + goto k189; + f189: $this->p = $o1; return false; - k164: + k189: return true; } @@ -18591,21 +16090,7 @@ private function s201(): bool case 18: case 24: // s366 - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(366); - } - - goto n382;} - $o2 = $this->p; - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(332); - } - - goto f383;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -18613,25 +16098,18 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f383;} + goto f426;} } if (!$this->s281()) { - goto f383;} - goto k383; - f383: + goto f426;} + goto k426; + f426: $this->p = $o2; - goto n382; - k383: - goto a381; - n382: + goto n425; + k426: + goto a424; + n425: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n384;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -18646,30 +16124,23 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f385;} + goto f428;} } if (!$this->s335()) { - goto f385;} - goto k385; - f385: + goto f428;} + goto k428; + f428: $this->p = $o2; - goto n384; - k385: - goto a381; - n384: + goto n427; + k428: + goto a424; + n427: break; case 19: case 20: case 21: case 22: - // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n387;} - + // s333 $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -18684,41 +16155,27 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f388;} + goto f431;} } if (!$this->s335()) { - goto f388;} - goto k388; - f388: + goto f431;} + goto k431; + f431: $this->p = $o2; - goto n387; - k388: - goto a381; - n387: + goto n430; + k431: + goto a424; + n430: break; case 3: case 4: case 8: if (!$this->s255()) { - goto n390;} - goto a381; - n390: + goto n433;} + goto a424; + n433: // s278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n391;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f392;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -18726,7 +16183,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f392;} + goto f435;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -18734,25 +16191,18 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f392;} + goto f435;} } if (!$this->s281()) { - goto f392;} - goto k392; - f392: + goto f435;} + goto k435; + f435: $this->p = $o2; - goto n391; - k392: - goto a381; - n391: + goto n434; + k435: + goto a424; + n434: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n393;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -18767,46 +16217,32 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f394;} + goto f437;} } if (!$this->s335()) { - goto f394;} - goto k394; - f394: + goto f437;} + goto k437; + f437: $this->p = $o2; - goto n393; - k394: - goto a381; - n393: + goto n436; + k437: + goto a424; + n436: break; case 32: case 82: if (!$this->s202()) { - goto n396;} - goto a381; - n396: + goto n439;} + goto a424; + n439: break; case 6: if (!$this->s267()) { - goto n397;} - goto a381; - n397: + goto n440;} + goto a424; + n440: // s278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n398;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f399;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -18814,7 +16250,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f399;} + goto f442;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -18822,25 +16258,18 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f399;} + goto f442;} } if (!$this->s281()) { - goto f399;} - goto k399; - f399: + goto f442;} + goto k442; + f442: $this->p = $o2; - goto n398; - k399: - goto a381; - n398: + goto n441; + k442: + goto a424; + n441: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n400;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -18855,39 +16284,25 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f401;} + goto f444;} } if (!$this->s335()) { - goto f401;} - goto k401; - f401: + goto f444;} + goto k444; + f444: $this->p = $o2; - goto n400; - k401: - goto a381; - n400: + goto n443; + k444: + goto a424; + n443: break; case 7: if (!$this->s230()) { - goto n403;} - goto a381; - n403: + goto n446;} + goto a424; + n446: // s278 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(278); - } - - goto n404;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f405;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -18895,7 +16310,7 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f405;} + goto f448;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -18903,25 +16318,18 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f405;} + goto f448;} } if (!$this->s281()) { - goto f405;} - goto k405; - f405: + goto f448;} + goto k448; + f448: $this->p = $o2; - goto n404; - k405: - goto a381; - n404: + goto n447; + k448: + goto a424; + n447: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n406;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -18936,23 +16344,68 @@ private function s201(): bool $this->f = $this->p; $this->er = []; } - goto f407;} + goto f450;} } if (!$this->s335()) { - goto f407;} - goto k407; - f407: + goto f450;} + goto k450; + f450: $this->p = $o2; - goto n406; - k407: - goto a381; - n406: + goto n449; + k450: + goto a424; + n449: break; case 25: - if (!$this->s229()) { - goto n409;} - goto a381; - n409: + // s229 + $o2 = $this->p; + $this->p++; + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n454;} + + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(224); + } + + goto e456; + } + + if (!$this->s224()) { + goto e456;} + if ($this->p === $b3) { + $k3 = 1; + goto e456; + } + + $k3++; + } + e456: + + if ($k3 < 1) { + goto f455; + } + goto k455; + f455: + $this->p = $o3; + goto n454; + k455: + n454: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto a424; + n452: break; } @@ -18960,13 +16413,13 @@ private function s201(): bool $this->rec(201); } - goto f380; - a381: - goto k380; - f380: + goto f423; + a424: + goto k423; + f423: $this->p = $o1; return false; - k380: + k423: return true; } @@ -18981,13 +16434,6 @@ private function s202(): bool return false;} $o1 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f661;} - $this->p++; // s203 $o2 = $this->p; @@ -18998,14 +16444,14 @@ private function s202(): bool $this->rec(204); } - goto e663; + goto e723; } $this->p++; } - e663: + e723: if (!$this->s205()) { - goto f661;} + goto f721;} // s203 $o2 = $this->p; while (true) { @@ -19015,18 +16461,18 @@ private function s202(): bool $this->rec(204); } - goto e665; + goto e725; } $this->p++; } - e665: + e725: if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f661;} + goto f721;} $this->p++; if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -19036,7 +16482,7 @@ private function s202(): bool $this->rec(223); } - goto n666;} + goto n726;} $o2 = $this->p; $k2 = 0; @@ -19047,37 +16493,37 @@ private function s202(): bool $this->rec(224); } - goto e668; + goto e728; } if (!$this->s224()) { - goto e668;} + goto e728;} if ($this->p === $b2) { $k2 = 1; - goto e668; + goto e728; } $k2++; } - e668: + e728: if ($k2 < 1) { - goto f667; + goto f727; } - goto k667; - f667: + goto k727; + f727: $this->p = $o2; - goto n666; - k667: - n666: + goto n726; + k727: + n726: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k661; - f661: + goto k721; + f721: $this->p = $o1; return false; - k661: + k721: return true; } @@ -19122,59 +16568,38 @@ private function s205(): bool case 32: case 82: // s208 - if (!isset(self::T977f027a[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(208); - } - - goto n908;} - $o2 = $this->p; if (!$this->s201()) { - goto f909;} + goto f1014;} if (!$this->s209()) { - goto f909;} - goto k909; - f909: + goto f1014;} + goto k1014; + f1014: $this->p = $o2; - goto n908; - k909: - goto a907; - n908: + goto n1013; + k1014: + goto a1012; + n1013: break; case 26: if (!$this->s206()) { - goto n910;} - goto a907; - n910: + goto n1015;} + goto a1012; + n1015: break; case 30: // s200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } - - goto n911;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } - - goto f912;} - $this->p++; if (!$this->s201()) { - goto f912;} - goto k912; - f912: + goto f1017;} + goto k1017; + f1017: $this->p = $o2; - goto n911; - k912: - goto a907; - n911: + goto n1016; + k1017: + goto a1012; + n1016: break; } @@ -19182,13 +16607,13 @@ private function s205(): bool $this->rec(205); } - goto f906; - a907: - goto k906; - f906: + goto f1011; + a1012: + goto k1011; + f1011: $this->p = $o1; return false; - k906: + k1011: return true; } @@ -19203,20 +16628,13 @@ private function s206(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f1235;} - $this->p++; if (!($this->ids[$this->p] === 12)) { if ($this->p >= $this->f) { $this->rec(23); } - goto f1235;} + goto f1303;} $this->p++; if (($this->ids[$this->p] === 11)) { @@ -19225,7 +16643,7 @@ private function s206(): bool $this->rec(24); } if (!$this->s199()) { - goto f1235;} + goto f1303;} // s203 $o2 = $this->p; while (true) { @@ -19235,18 +16653,18 @@ private function s206(): bool $this->rec(204); } - goto e1237; + goto e1305; } $this->p++; } - e1237: + e1305: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1235;} + goto f1303;} $this->p++; // s203 @@ -19258,14 +16676,14 @@ private function s206(): bool $this->rec(204); } - goto e1239; + goto e1307; } $this->p++; } - e1239: + e1307: if (!$this->s199()) { - goto f1235;} + goto f1303;} // s203 $o2 = $this->p; while (true) { @@ -19275,18 +16693,18 @@ private function s206(): bool $this->rec(204); } - goto e1241; + goto e1309; } $this->p++; } - e1241: + e1309: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1235;} + goto f1303;} $this->p++; // s203 @@ -19298,19 +16716,19 @@ private function s206(): bool $this->rec(204); } - goto e1243; + goto e1311; } $this->p++; } - e1243: + e1311: if (!$this->s205()) { - goto f1235;} - goto k1235; - f1235: + goto f1303;} + goto k1303; + f1303: $this->p = $o1; return false; - k1235: + k1303: return true; } @@ -19320,64 +16738,20 @@ private function s209(): bool $o1 = $this->p; switch ($this->ids[$this->p]) { default: - // s211 - $o2 = $this->p; - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1227; - } - - $this->p++; - } - e1227: - if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { - if (!$this->s213()) { - goto n1228;} - n1228: - } elseif ($this->p > $this->f) { - $this->rec(213); - } - goto a1223; - n1224: + if (!$this->s211()) { + goto n1300;} + goto a1299; + n1300: break; case 12: if (!$this->s210()) { - goto n1229;} - goto a1223; - n1229: - // s211 - $o2 = $this->p; - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1233; - } - - $this->p++; - } - e1233: - if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { - if (!$this->s213()) { - goto n1234;} - n1234: - } elseif ($this->p > $this->f) { - $this->rec(213); - } - goto a1223; - n1230: + goto n1301;} + goto a1299; + n1301: + if (!$this->s211()) { + goto n1302;} + goto a1299; + n1302: break; } @@ -19385,13 +16759,13 @@ private function s209(): bool $this->rec(209); } - goto f1222; - a1223: - goto k1222; - f1222: + goto f1298; + a1299: + goto k1298; + f1298: $this->p = $o1; return false; - k1222: + k1298: return true; } @@ -19406,13 +16780,6 @@ private function s210(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 12)) { - if ($this->p >= $this->f) { - $this->rec(23); - } - - goto f1528;} - $this->p++; if (($this->ids[$this->p] === 11)) { $this->p++; @@ -19420,7 +16787,7 @@ private function s210(): bool $this->rec(24); } if (!$this->s199()) { - goto f1528;} + goto f1576;} // s203 $o2 = $this->p; while (true) { @@ -19430,18 +16797,18 @@ private function s210(): bool $this->rec(204); } - goto e1530; + goto e1578; } $this->p++; } - e1530: + e1578: if (!($this->ids[$this->p] === 30)) { if ($this->p >= $this->f) { $this->rec(51); } - goto f1528;} + goto f1576;} $this->p++; // s203 @@ -19453,14 +16820,14 @@ private function s210(): bool $this->rec(204); } - goto e1532; + goto e1580; } $this->p++; } - e1532: + e1580: if (!$this->s199()) { - goto f1528;} + goto f1576;} // s203 $o2 = $this->p; while (true) { @@ -19470,18 +16837,18 @@ private function s210(): bool $this->rec(204); } - goto e1534; + goto e1582; } $this->p++; } - e1534: + e1582: if (!($this->ids[$this->p] === 47)) { if ($this->p >= $this->f) { $this->rec(70); } - goto f1528;} + goto f1576;} $this->p++; // s203 @@ -19493,19 +16860,48 @@ private function s210(): bool $this->rec(204); } - goto e1536; + goto e1584; } $this->p++; } - e1536: + e1584: if (!$this->s205()) { - goto f1528;} - goto k1528; - f1528: + goto f1576;} + goto k1576; + f1576: $this->p = $o1; return false; - k1528: + k1576: + + return true; + } + + private function s211(): bool + { + $o1 = $this->p; + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1574; + } + + $this->p++; + } + e1574: + if (isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!$this->s213()) { + goto n1575;} + n1575: + } elseif ($this->p > $this->f) { + $this->rec(213); + } return true; } @@ -19525,59 +16921,45 @@ private function s213(): bool break; case 28: // s214 - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(214); - } - - goto n1524;} - $o2 = $this->p; if (!$this->s215()) { - goto f1525;} + goto f1703;} if (($this->ids[$this->p] === 28)) { if (($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1525;} + goto f1703;} } - goto k1525; - f1525: + goto k1703; + f1703: $this->p = $o2; - goto n1524; - k1525: - goto a1523; - n1524: + goto n1702; + k1703: + goto a1701; + n1702: break; case 29: // s218 - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(218); - } - - goto n1526;} - $o2 = $this->p; if (!$this->s219()) { - goto f1527;} + goto f1705;} if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto f1527;} + goto f1705;} } - goto k1527; - f1527: + goto k1705; + f1705: $this->p = $o2; - goto n1526; - k1527: - goto a1523; - n1526: + goto n1704; + k1705: + goto a1701; + n1704: break; } @@ -19585,13 +16967,13 @@ private function s213(): bool $this->rec(213); } - goto f1522; - a1523: - goto k1522; - f1522: + goto f1700; + a1701: + goto k1700; + f1700: $this->p = $o1; return false; - k1522: + k1700: return true; } @@ -19614,7 +16996,7 @@ private function s215(): bool $this->rec(216); } - goto e1682; + goto e1748; } // s216 @@ -19623,16 +17005,9 @@ private function s215(): bool $this->rec(216); } - goto e1682;} + goto e1748;} $o2 = $this->p; - if (!($this->ids[$this->p] === 28)) { - if ($this->p >= $this->f) { - $this->rec(49); - } - - goto f1683;} - $this->p++; // s203 $o3 = $this->p; @@ -19643,14 +17018,14 @@ private function s215(): bool $this->rec(204); } - goto e1685; + goto e1751; } $this->p++; } - e1685: + e1751: if (!$this->s201()) { - goto f1683;} + goto f1749;} // s203 $o3 = $this->p; while (true) { @@ -19660,34 +17035,34 @@ private function s215(): bool $this->rec(204); } - goto e1687; + goto e1753; } $this->p++; } - e1687: - goto k1683; - f1683: + e1753: + goto k1749; + f1749: $this->p = $o2; - goto e1682; - k1683: + goto e1748; + k1749: if ($this->p === $b1) { $k1 = 1; - goto e1682; + goto e1748; } $k1++; } - e1682: + e1748: if ($k1 < 1) { - goto f1681; + goto f1747; } - goto k1681; - f1681: + goto k1747; + f1747: $this->p = $o1; return false; - k1681: + k1747: return true; } @@ -19710,7 +17085,7 @@ private function s219(): bool $this->rec(220); } - goto e1689; + goto e1755; } // s220 @@ -19719,16 +17094,9 @@ private function s219(): bool $this->rec(220); } - goto e1689;} + goto e1755;} $o2 = $this->p; - if (!($this->ids[$this->p] === 29)) { - if ($this->p >= $this->f) { - $this->rec(50); - } - - goto f1690;} - $this->p++; // s203 $o3 = $this->p; @@ -19739,14 +17107,14 @@ private function s219(): bool $this->rec(204); } - goto e1692; + goto e1758; } $this->p++; } - e1692: + e1758: if (!$this->s201()) { - goto f1690;} + goto f1756;} // s203 $o3 = $this->p; while (true) { @@ -19756,34 +17124,34 @@ private function s219(): bool $this->rec(204); } - goto e1694; + goto e1760; } $this->p++; } - e1694: - goto k1690; - f1690: + e1760: + goto k1756; + f1756: $this->p = $o2; - goto e1689; - k1690: + goto e1755; + k1756: if ($this->p === $b1) { $k1 = 1; - goto e1689; + goto e1755; } $k1++; } - e1689: + e1755: if ($k1 < 1) { - goto f1688; + goto f1754; } - goto k1688; - f1688: + goto k1754; + f1754: $this->p = $o1; return false; - k1688: + k1754: return true; } @@ -19803,21 +17171,7 @@ private function s224(): bool break; case 36: // s225 - if (!($this->ids[$this->p] === 36)) { - if ($this->p > $this->f) { - $this->rec(225); - } - - goto n885;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 36)) { - if ($this->p >= $this->f) { - $this->rec(57); - } - - goto f886;} - $this->p++; if (($this->ids[$this->p] === 37)) { if (($this->ids[$this->p] === 37)) { @@ -19825,91 +17179,63 @@ private function s224(): bool $this->f = $this->p; $this->er = []; } - goto f886;} + goto f744;} } if (!$this->s199()) { - goto f886;} - if (!($this->ids[$this->p] === 37)) { - if ($this->p >= $this->f) { - $this->rec(59); - } - - goto f886;} - - $this->p++; - goto k886; - f886: - $this->p = $o2; - goto n885; - k886: - goto a884; - n885: - // s227 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(227); - } - - goto n887;} - - $o2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); + goto f744;} + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); } - goto f888;} + goto f744;} + $this->p++; + goto k744; + f744: + $this->p = $o2; + goto n743; + k744: + goto a742; + n743: + // s227 + $o2 = $this->p; $this->p++; if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f888;} + goto f746;} $this->p++; - goto k888; - f888: + goto k746; + f746: $this->p = $o2; - goto n887; - k888: - goto a884; - n887: + goto n745; + k746: + goto a742; + n745: break; case 84: // s227 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(227); - } - - goto n889;} - $o2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); - } - - goto f890;} - $this->p++; if (!($this->ids[$this->p] === 37)) { if ($this->p >= $this->f) { $this->rec(59); } - goto f890;} + goto f748;} $this->p++; - goto k890; - f890: + goto k748; + f748: $this->p = $o2; - goto n889; - k890: - goto a884; - n889: + goto n747; + k748: + goto a742; + n747: break; } @@ -19917,84 +17243,13 @@ private function s224(): bool $this->rec(224); } - goto f883; - a884: - goto k883; - f883: - $this->p = $o1; - return false; - k883: - - return true; - } - - private function s229(): bool - { - if (!($this->ids[$this->p] === 25)) { - if ($this->p > $this->f) { - $this->rec(229); - } - - return false;} - - $o1 = $this->p; - if (!($this->ids[$this->p] === 25)) { - if ($this->p >= $this->f) { - $this->rec(46); - } - - goto f681;} - - $this->p++; - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // s223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n682;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e684; - } - - if (!$this->s224()) { - goto e684;} - if ($this->p === $b2) { - $k2 = 1; - goto e684; - } - - $k2++; - } - e684: - - if ($k2 < 1) { - goto f683; - } - goto k683; - f683: - $this->p = $o2; - goto n682; - k683: - n682: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k681; - f681: + goto f741; + a742: + goto k741; + f741: $this->p = $o1; return false; - k681: + k741: return true; } @@ -20009,13 +17264,6 @@ private function s230(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 7)) { - if ($this->p >= $this->f) { - $this->rec(32); - } - - goto f677;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -20023,10 +17271,10 @@ private function s230(): bool $this->f = $this->p; $this->er = []; } - goto f677;} + goto f737;} } if (!$this->s231()) { - goto f677;} + goto f737;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20034,7 +17282,7 @@ private function s230(): bool $this->rec(223); } - goto n678;} + goto n738;} $o2 = $this->p; $k2 = 0; @@ -20045,37 +17293,37 @@ private function s230(): bool $this->rec(224); } - goto e680; + goto e740; } if (!$this->s224()) { - goto e680;} + goto e740;} if ($this->p === $b2) { $k2 = 1; - goto e680; + goto e740; } $k2++; } - e680: + e740: if ($k2 < 1) { - goto f679; + goto f739; } - goto k679; - f679: + goto k739; + f739: $this->p = $o2; - goto n678; - k679: - n678: + goto n738; + k739: + n738: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k677; - f677: + goto k737; + f737: $this->p = $o1; return false; - k677: + k737: return true; } @@ -20090,13 +17338,6 @@ private function s231(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f920;} - $this->p++; // s203 $o2 = $this->p; @@ -20107,77 +17348,16 @@ private function s231(): bool $this->rec(204); } - goto e922; + goto e1025; } $this->p++; } - e922: + e1025: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - // s233 - if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(233); - } - - goto n923;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 82: - if (!$this->s243()) { - goto n926;} - goto a925; - n926: - break; - case 42: - if (!$this->s234()) { - goto n927;} - goto a925; - n927: - break; - } - - if ($this->p > $this->f) { - $this->rec(233); - } - - goto f924; - a925: - goto k924; - f924: - $this->p = $o2; - goto n923; - k924: - n923: + if (!$this->s233()) { + goto n1026;} + n1026: } elseif ($this->p > $this->f) { $this->rec(233); } @@ -20190,25 +17370,25 @@ private function s231(): bool $this->rec(204); } - goto e929; + goto e1028; } $this->p++; } - e929: + e1028: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f920;} + goto f1023;} $this->p++; - goto k920; - f920: + goto k1023; + f1023: $this->p = $o1; return false; - k920: + k1023: return true; } @@ -20254,27 +17434,13 @@ private function s233(): bool case 32: case 82: if (!$this->s243()) { - goto n1543;} - goto a1542; - n1543: + goto n1321;} + goto a1320; + n1321: break; case 42: // s234 - if (!($this->ids[$this->p] === 42)) { - if ($this->p > $this->f) { - $this->rec(234); - } - - goto n1544;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1545;} - $this->p++; // s203 $o3 = $this->p; @@ -20285,26 +17451,26 @@ private function s233(): bool $this->rec(204); } - goto e1547; + goto e1325; } $this->p++; } - e1547: + e1325: if (!$this->s235()) { - goto f1545;} + goto f1323;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); } - goto k1545; - f1545: + goto k1323; + f1323: $this->p = $o2; - goto n1544; - k1545: - goto a1542; - n1544: + goto n1322; + k1323: + goto a1320; + n1322: break; } @@ -20312,62 +17478,13 @@ private function s233(): bool $this->rec(233); } - goto f1541; - a1542: - goto k1541; - f1541: - $this->p = $o1; - return false; - k1541: - - return true; - } - - private function s234(): bool - { - if (!($this->ids[$this->p] === 42)) { - if ($this->p > $this->f) { - $this->rec(234); - } - - return false;} - - $o1 = $this->p; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1266;} - - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1268; - } - - $this->p++; - } - e1268: - if (!$this->s235()) { - goto f1266;} - if (($this->ids[$this->p] === 40)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(63); - } - goto k1266; - f1266: + goto f1319; + a1320: + goto k1319; + f1319: $this->p = $o1; return false; - k1266: + k1319: return true; } @@ -20382,23 +17499,16 @@ private function s235(): bool $this->f = $this->p; $this->er = []; } - goto n1550;} - goto a1549; - n1550: + goto n1599;} + goto a1598; + n1599: break; case 34: case 86: // s236 - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(236); - } - - goto n1551;} - $o2 = $this->p; if (!$this->s237()) { - goto f1552;} + goto f1601;} // s203 $o3 = $this->p; while (true) { @@ -20408,27 +17518,27 @@ private function s235(): bool $this->rec(204); } - goto e1554; + goto e1603; } $this->p++; } - e1554: - goto k1552; - f1552: + e1603: + goto k1601; + f1601: $this->p = $o2; - goto n1551; - k1552: - goto a1549; - n1551: + goto n1600; + k1601: + goto a1598; + n1600: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1555;} - goto a1549; - n1555: + goto n1604;} + goto a1598; + n1604: break; } @@ -20436,13 +17546,13 @@ private function s235(): bool $this->rec(235); } - goto f1548; - a1549: - goto k1548; - f1548: + goto f1597; + a1598: + goto k1597; + f1597: $this->p = $o1; return false; - k1548: + k1597: return true; } @@ -20457,13 +17567,6 @@ private function s237(): bool return false;} $o1 = $this->p; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1695;} - $this->p++; // s203 $o2 = $this->p; @@ -20474,14 +17577,14 @@ private function s237(): bool $this->rec(204); } - goto e1697; + goto e1712; } $this->p++; } - e1697: + e1712: if (!$this->s199()) { - goto f1695;} + goto f1710;} // s203 $o2 = $this->p; while (true) { @@ -20491,12 +17594,12 @@ private function s237(): bool $this->rec(204); } - goto e1699; + goto e1714; } $this->p++; } - e1699: + e1714: if (($this->ids[$this->p] === 40)) { // s240 if (!($this->ids[$this->p] === 40)) { @@ -20504,16 +17607,9 @@ private function s237(): bool $this->rec(240); } - goto n1700;} + goto n1715;} $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1701;} - $this->p++; // s203 $o3 = $this->p; @@ -20524,14 +17620,14 @@ private function s237(): bool $this->rec(204); } - goto e1703; + goto e1718; } $this->p++; } - e1703: + e1718: if (!$this->s199()) { - goto f1701;} + goto f1716;} // s203 $o3 = $this->p; while (true) { @@ -20541,18 +17637,18 @@ private function s237(): bool $this->rec(204); } - goto e1705; + goto e1720; } $this->p++; } - e1705: - goto k1701; - f1701: + e1720: + goto k1716; + f1716: $this->p = $o2; - goto n1700; - k1701: - n1700: + goto n1715; + k1716: + n1715: } elseif ($this->p > $this->f) { $this->rec(240); } @@ -20561,14 +17657,14 @@ private function s237(): bool $this->rec(56); } - goto f1695;} + goto f1710;} $this->p++; - goto k1695; - f1695: + goto k1710; + f1710: $this->p = $o1; return false; - k1695: + k1710: return true; } @@ -20583,15 +17679,49 @@ private function s243(): bool return false;} $o1 = $this->p; - // s244 + if (!$this->s244()) { + goto f1593;} + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1595; + } + + $this->p++; + } + e1595: + if (($this->ids[$this->p] === 40)) { + if (!$this->s252()) { + goto n1596;} + n1596: + } elseif ($this->p > $this->f) { + $this->rec(252); + } + goto k1593; + f1593: + $this->p = $o1; + return false; + k1593: + + return true; + } + + private function s244(): bool + { if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(244); } - goto f1253;} + return false;} - $o2 = $this->p; + $o1 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -20617,14 +17747,36 @@ private function s243(): bool case 21: case 22: case 24: - if (!$this->s245()) { - goto n1256;} - goto a1255; - n1256: + // s245 + $o2 = $this->p; + if (!$this->s246()) { + goto f1685;} + if (($this->ids[$this->p] === 30)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1685;} + + $this->p++; + if (!$this->s199()) { + goto f1685;} + goto k1685; + f1685: + $this->p = $o2; + goto n1684; + k1685: + goto a1683; + n1684: if (!$this->s199()) { - goto n1257;} - goto a1255; - n1257: + goto n1686;} + goto a1683; + n1686: break; case 19: case 25: @@ -20632,9 +17784,9 @@ private function s243(): bool case 32: case 82: if (!$this->s199()) { - goto n1258;} - goto a1255; - n1258: + goto n1687;} + goto a1683; + n1687: break; } @@ -20642,110 +17794,27 @@ private function s243(): bool $this->rec(244); } - goto f1254; - a1255: - goto k1254; - f1254: - $this->p = $o2; - goto f1253; - k1254: - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1260; - } - - $this->p++; - } - e1260: - if (($this->ids[$this->p] === 40)) { - // s252 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(252); - } - - goto n1261;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1262;} - - $this->p++; - if (($this->ids[$this->p] === 41)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(254); - } - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1264; - } - - $this->p++; - } - e1264: - if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - if (!$this->s233()) { - goto n1265;} - n1265: - } elseif ($this->p > $this->f) { - $this->rec(233); - } - goto k1262; - f1262: - $this->p = $o2; - goto n1261; - k1262: - n1261: - } elseif ($this->p > $this->f) { - $this->rec(252); - } - goto k1253; - f1253: + goto f1682; + a1683: + goto k1682; + f1682: $this->p = $o1; return false; - k1253: + k1682: return true; } - private function s245(): bool + private function s246(): bool { if (!isset(self::Tce797685[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(245); + $this->rec(246); } return false;} $o1 = $this->p; - // s246 - if (!isset(self::Tce797685[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(246); - } - - goto f1503;} - - $o2 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -20768,22 +17837,51 @@ private function s245(): bool case 17: case 18: case 24: - if (!$this->s247()) { - goto n1506;} - goto a1505; - n1506: + // s247 + $o2 = $this->p; + $this->p++; + if (($this->ids[$this->p] === 43)) { + // s249 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(249); + } + + goto n1745;} + + $o3 = $this->p; + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f1746;} + + $this->p++; + goto k1746; + f1746: + $this->p = $o3; + goto n1745; + k1746: + n1745: + } elseif ($this->p > $this->f) { + $this->rec(249); + } + goto a1742; + n1743: break; case 20: $this->p++; - goto a1505; + goto a1742; break; case 21: $this->p++; - goto a1505; + goto a1742; break; case 22: $this->p++; - goto a1505; + goto a1742; break; } @@ -20791,95 +17889,55 @@ private function s245(): bool $this->rec(246); } - goto f1504; - a1505: - goto k1504; - f1504: - $this->p = $o2; - goto f1503; - k1504: - if (($this->ids[$this->p] === 30)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(51); - } - if (!($this->ids[$this->p] === 47)) { - if ($this->p >= $this->f) { - $this->rec(70); - } - - goto f1503;} - - $this->p++; - if (!$this->s199()) { - goto f1503;} - goto k1503; - f1503: + goto f1741; + a1742: + goto k1741; + f1741: $this->p = $o1; return false; - k1503: + k1741: return true; } - private function s247(): bool + private function s252(): bool { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(247); + $this->rec(252); } return false;} $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1673;} - $this->p++; - if (($this->ids[$this->p] === 43)) { - // s249 - if (!($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->rec(249); - } - - goto n1674;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 43)) { - if ($this->p >= $this->f) { - $this->rec(66); - } - - goto f1675;} - + if (($this->ids[$this->p] === 41)) { $this->p++; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); } - goto f1675;} + goto e1708; + } $this->p++; - goto k1675; - f1675: - $this->p = $o2; - goto n1674; - k1675: - n1674: + } + e1708: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->s233()) { + goto n1709;} + n1709: } elseif ($this->p > $this->f) { - $this->rec(249); + $this->rec(233); } - goto k1673; - f1673: - $this->p = $o1; - return false; - k1673: return true; } @@ -20894,13 +17952,6 @@ private function s255(): bool return false;} $o1 = $this->p; - if (!isset(self::Ta8d79561[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(256); - } - - goto f657;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -20908,10 +17959,10 @@ private function s255(): bool $this->f = $this->p; $this->er = []; } - goto f657;} + goto f717;} } if (!$this->s257()) { - goto f657;} + goto f717;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -20919,7 +17970,7 @@ private function s255(): bool $this->rec(223); } - goto n658;} + goto n718;} $o2 = $this->p; $k2 = 0; @@ -20930,37 +17981,37 @@ private function s255(): bool $this->rec(224); } - goto e660; + goto e720; } if (!$this->s224()) { - goto e660;} + goto e720;} if ($this->p === $b2) { $k2 = 1; - goto e660; + goto e720; } $k2++; } - e660: + e720: if ($k2 < 1) { - goto f659; + goto f719; } - goto k659; - f659: + goto k719; + f719: $this->p = $o2; - goto n658; - k659: - n658: + goto n718; + k719: + n718: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k657; - f657: + goto k717; + f717: $this->p = $o1; return false; - k657: + k717: return true; } @@ -20975,13 +18026,6 @@ private function s257(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f896;} - $this->p++; // s203 $o2 = $this->p; @@ -20992,77 +18036,16 @@ private function s257(): bool $this->rec(204); } - goto e898; + goto e1007; } $this->p++; } - e898: + e1007: if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - // s259 - if (!isset(self::T50fd39f8[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(259); - } - - goto n899;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 82: - if (!$this->s264()) { - goto n902;} - goto a901; - n902: - break; - case 42: - if (!$this->s260()) { - goto n903;} - goto a901; - n903: - break; - } - - if ($this->p > $this->f) { - $this->rec(259); - } - - goto f900; - a901: - goto k900; - f900: - $this->p = $o2; - goto n899; - k900: - n899: + if (!$this->s259()) { + goto n1008;} + n1008: } elseif ($this->p > $this->f) { $this->rec(259); } @@ -21075,25 +18058,25 @@ private function s257(): bool $this->rec(204); } - goto e905; + goto e1010; } $this->p++; } - e905: + e1010: if (!($this->ids[$this->p] === 39)) { if ($this->p >= $this->f) { $this->rec(62); } - goto f896;} + goto f1005;} $this->p++; - goto k896; - f896: + goto k1005; + f1005: $this->p = $o1; return false; - k896: + k1005: return true; } @@ -21139,27 +18122,13 @@ private function s259(): bool case 32: case 82: if (!$this->s264()) { - goto n1509;} - goto a1508; - n1509: + goto n1293;} + goto a1292; + n1293: break; case 42: // s260 - if (!($this->ids[$this->p] === 42)) { - if ($this->p > $this->f) { - $this->rec(260); - } - - goto n1510;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1511;} - $this->p++; // s203 $o3 = $this->p; @@ -21170,89 +18139,40 @@ private function s259(): bool $this->rec(204); } - goto e1513; + goto e1297; } $this->p++; } - e1513: + e1297: if (!$this->s261()) { - goto f1511;} + goto f1295;} if (($this->ids[$this->p] === 40)) { $this->p++; } elseif ($this->p >= $this->f) { $this->rec(63); - } - goto k1511; - f1511: - $this->p = $o2; - goto n1510; - k1511: - goto a1508; - n1510: - break; - } - - if ($this->p > $this->f) { - $this->rec(259); - } - - goto f1507; - a1508: - goto k1507; - f1507: - $this->p = $o1; - return false; - k1507: - - return true; - } - - private function s260(): bool - { - if (!($this->ids[$this->p] === 42)) { - if ($this->p > $this->f) { - $this->rec(260); - } - - return false;} - - $o1 = $this->p; - if (!($this->ids[$this->p] === 42)) { - if ($this->p >= $this->f) { - $this->rec(65); - } - - goto f1219;} - - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1221; - } - - $this->p++; + } + goto k1295; + f1295: + $this->p = $o2; + goto n1294; + k1295: + goto a1292; + n1294: + break; } - e1221: - if (!$this->s261()) { - goto f1219;} - if (($this->ids[$this->p] === 40)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(63); + + if ($this->p > $this->f) { + $this->rec(259); } - goto k1219; - f1219: + + goto f1291; + a1292: + goto k1291; + f1291: $this->p = $o1; return false; - k1219: + k1291: return true; } @@ -21267,53 +18187,24 @@ private function s261(): bool $this->f = $this->p; $this->er = []; } - goto n1516;} - goto a1515; - n1516: + goto n1569;} + goto a1568; + n1569: break; case 34: case 86: - // s262 - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(262); - } - - goto n1517;} - - $o2 = $this->p; - if (!$this->s263()) { - goto f1518;} - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1520; - } - - $this->p++; - } - e1520: - goto k1518; - f1518: - $this->p = $o2; - goto n1517; - k1518: - goto a1515; - n1517: + if (!$this->s262()) { + goto n1570;} + goto a1568; + n1570: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1521;} - goto a1515; - n1521: + goto n1571;} + goto a1568; + n1571: break; } @@ -21321,80 +18212,95 @@ private function s261(): bool $this->rec(261); } - goto f1514; - a1515: - goto k1514; - f1514: + goto f1567; + a1568: + goto k1567; + f1567: $this->p = $o1; return false; - k1514: + k1567: return true; } - private function s263(): bool + private function s262(): bool { if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(263); + $this->rec(262); } return false;} $o1 = $this->p; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1676;} - + // s263 + $o2 = $this->p; $this->p++; // s203 - $o2 = $this->p; + $o3 = $this->p; while (true) { - $b2 = $this->p; + $b3 = $this->p; if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { + if ($b3 > $this->f) { $this->rec(204); } - goto e1678; + goto e1695; } $this->p++; } - e1678: + e1695: if (!$this->s199()) { - goto f1676;} + goto f1693;} // s203 - $o2 = $this->p; + $o3 = $this->p; while (true) { - $b2 = $this->p; + $b3 = $this->p; if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { + if ($b3 > $this->f) { $this->rec(204); } - goto e1680; + goto e1697; } $this->p++; } - e1680: + e1697: if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { $this->rec(56); } - goto f1676;} + goto f1693;} $this->p++; - goto k1676; - f1676: + goto k1693; + f1693: + $this->p = $o2; + goto f1692; + k1693: + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); + } + + goto e1699; + } + + $this->p++; + } + e1699: + goto k1692; + f1692: $this->p = $o1; return false; - k1676: + k1692: return true; } @@ -21409,72 +18315,8 @@ private function s264(): bool return false;} $o1 = $this->p; - // s244 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(244); - } - - goto f1206;} - - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 20: - case 21: - case 22: - case 24: - if (!$this->s245()) { - goto n1209;} - goto a1208; - n1209: - if (!$this->s199()) { - goto n1210;} - goto a1208; - n1210: - break; - case 19: - case 25: - case 30: - case 32: - case 82: - if (!$this->s199()) { - goto n1211;} - goto a1208; - n1211: - break; - } - - if ($this->p > $this->f) { - $this->rec(244); - } - - goto f1207; - a1208: - goto k1207; - f1207: - $this->p = $o2; - goto f1206; - k1207: + if (!$this->s244()) { + goto f1563;} // s203 $o2 = $this->p; while (true) { @@ -21484,71 +18326,66 @@ private function s264(): bool $this->rec(204); } - goto e1213; + goto e1565; } $this->p++; } - e1213: + e1565: if (($this->ids[$this->p] === 40)) { - // s266 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(266); - } + if (!$this->s266()) { + goto n1566;} + n1566: + } elseif ($this->p > $this->f) { + $this->rec(266); + } + goto k1563; + f1563: + $this->p = $o1; + return false; + k1563: - goto n1214;} + return true; + } - $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } + private function s266(): bool + { + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(266); + } - goto f1215;} + return false;} + $o1 = $this->p; + $this->p++; + if (($this->ids[$this->p] === 41)) { $this->p++; - if (($this->ids[$this->p] === 41)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(254); - } - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1217; + } elseif ($this->p >= $this->f) { + $this->rec(254); + } + // s203 + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); } - $this->p++; - } - e1217: - if (isset(self::T50fd39f8[$this->ids[$this->p]])) { - if (!$this->s259()) { - goto n1218;} - n1218: - } elseif ($this->p > $this->f) { - $this->rec(259); + goto e1690; } - goto k1215; - f1215: - $this->p = $o2; - goto n1214; - k1215: - n1214: + + $this->p++; + } + e1690: + if (isset(self::T50fd39f8[$this->ids[$this->p]])) { + if (!$this->s259()) { + goto n1691;} + n1691: } elseif ($this->p > $this->f) { - $this->rec(266); + $this->rec(259); } - goto k1206; - f1206: - $this->p = $o1; - return false; - k1206: return true; } @@ -21563,13 +18400,6 @@ private function s267(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 6)) { - if ($this->p >= $this->f) { - $this->rec(37); - } - - goto f669;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -21577,7 +18407,7 @@ private function s267(): bool $this->f = $this->p; $this->er = []; } - goto f669;} + goto f729;} } // s268 if (!($this->ids[$this->p] === 38)) { @@ -21585,16 +18415,9 @@ private function s267(): bool $this->rec(268); } - goto f669;} + goto f729;} $o2 = $this->p; - if (!($this->ids[$this->p] === 38)) { - if ($this->p >= $this->f) { - $this->rec(60); - } - - goto f670;} - $this->p++; // s203 $o3 = $this->p; @@ -21605,16 +18428,16 @@ private function s267(): bool $this->rec(204); } - goto e672; + goto e732; } $this->p++; } - e672: + e732: if (isset(self::Td8017923[$this->ids[$this->p]])) { if (!$this->s270()) { - goto n673;} - n673: + goto n733;} + n733: } elseif ($this->p > $this->f) { $this->rec(270); } @@ -21623,14 +18446,14 @@ private function s267(): bool $this->rec(62); } - goto f670;} + goto f730;} $this->p++; - goto k670; - f670: + goto k730; + f730: $this->p = $o2; - goto f669; - k670: + goto f729; + k730: if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -21638,7 +18461,7 @@ private function s267(): bool $this->rec(223); } - goto n674;} + goto n734;} $o2 = $this->p; $k2 = 0; @@ -21649,37 +18472,37 @@ private function s267(): bool $this->rec(224); } - goto e676; + goto e736; } if (!$this->s224()) { - goto e676;} + goto e736;} if ($this->p === $b2) { $k2 = 1; - goto e676; + goto e736; } $k2++; } - e676: + e736: if ($k2 < 1) { - goto f675; + goto f735; } - goto k675; - f675: + goto k735; + f735: $this->p = $o2; - goto n674; - k675: - n674: + goto n734; + k735: + n734: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k669; - f669: + goto k729; + f729: $this->p = $o1; return false; - k669: + k729: return true; } @@ -21695,16 +18518,9 @@ private function s270(): bool $o1 = $this->p; // s271 - if (!isset(self::Td8017923[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(271); - } - - goto f913;} - $o2 = $this->p; if (!$this->s272()) { - goto f914;} + goto f1019;} if (($this->ids[$this->p] === 30)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -21715,80 +18531,43 @@ private function s270(): bool $this->rec(70); } - goto f914;} + goto f1019;} $this->p++; if (!$this->s199()) { - goto f914;} - goto k914; - f914: + goto f1019;} + goto k1019; + f1019: $this->p = $o2; - goto f913; - k914: + goto f1018; + k1019: // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e916; - } - - $this->p++; - } - e916: - if (($this->ids[$this->p] === 40)) { - // s274 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(274); - } - - goto n917;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b2 > $this->f) { - $this->rec(275); - } - - goto e919; - } - - if (!$this->s275()) { - goto e919;} - if ($this->p === $b2) { - $k2 = 1; - goto e919; + $o2 = $this->p; + while (true) { + $b2 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b2 > $this->f) { + $this->rec(204); } - $k2++; + goto e1021; } - e919: - if ($k2 < 1) { - goto f918; - } - goto k918; - f918: - $this->p = $o2; - goto n917; - k918: - n917: + $this->p++; + } + e1021: + if (($this->ids[$this->p] === 40)) { + if (!$this->s274()) { + goto n1022;} + n1022: } elseif ($this->p > $this->f) { $this->rec(274); } - goto k913; - f913: + goto k1018; + f1018: $this->p = $o1; return false; - k913: + k1018: return true; } @@ -21808,87 +18587,87 @@ private function s272(): bool break; case 1: $this->p++; - goto a1245; + goto a1313; break; case 2: $this->p++; - goto a1245; + goto a1313; break; case 3: $this->p++; - goto a1245; + goto a1313; break; case 4: $this->p++; - goto a1245; + goto a1313; break; case 5: $this->p++; - goto a1245; + goto a1313; break; case 6: $this->p++; - goto a1245; + goto a1313; break; case 7: $this->p++; - goto a1245; + goto a1313; break; case 8: $this->p++; - goto a1245; + goto a1313; break; case 9: $this->p++; - goto a1245; + goto a1313; break; case 10: $this->p++; - goto a1245; + goto a1313; break; case 11: $this->p++; - goto a1245; + goto a1313; break; case 12: $this->p++; - goto a1245; + goto a1313; break; case 13: $this->p++; - goto a1245; + goto a1313; break; case 14: $this->p++; - goto a1245; + goto a1313; break; case 15: $this->p++; - goto a1245; + goto a1313; break; case 16: $this->p++; - goto a1245; + goto a1313; break; case 17: $this->p++; - goto a1245; + goto a1313; break; case 18: $this->p++; - goto a1245; + goto a1313; break; case 21: $this->p++; - goto a1245; + goto a1313; break; case 22: $this->p++; - goto a1245; + goto a1313; break; case 24: $this->p++; - goto a1245; + goto a1313; break; } @@ -21896,52 +18675,94 @@ private function s272(): bool $this->rec(272); } - goto f1244; - a1245: - goto k1244; - f1244: + goto f1312; + a1313: + goto k1312; + f1312: $this->p = $o1; return false; - k1244: + k1312: return true; } - private function s275(): bool + private function s274(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(275); + $this->rec(274); } return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(275); + } + + goto e1315; } - goto f1246;} + // s275 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(275); + } - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + goto e1315;} + + $o2 = $this->p; + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1318; } - goto e1248; + $this->p++; + } + e1318: + if (!$this->s276()) { + goto f1316;} + goto k1316; + f1316: + $this->p = $o2; + goto e1315; + k1316: + if ($this->p === $b1) { + $k1 = 1; + goto e1315; } - $this->p++; + $k1++; } - e1248: - // s276 - $o2 = $this->p; + e1315: + + if ($k1 < 1) { + goto f1314; + } + goto k1314; + f1314: + $this->p = $o1; + return false; + k1314: + + return true; + } + + private function s276(): bool + { + $o1 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -21966,10 +18787,54 @@ private function s275(): bool case 21: case 22: case 24: - if (!$this->s277()) { - goto n1251;} - goto a1250; - n1251: + // s277 + $o2 = $this->p; + // s271 + $o3 = $this->p; + if (!$this->s272()) { + goto f1589;} + if (($this->ids[$this->p] === 30)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(51); + } + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f1589;} + + $this->p++; + if (!$this->s199()) { + goto f1589;} + goto k1589; + f1589: + $this->p = $o3; + goto f1588; + k1589: + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1591; + } + + $this->p++; + } + e1591: + goto k1588; + f1588: + $this->p = $o2; + goto n1587; + k1588: + goto a1586; + n1587: break; case 39: if (!($this->ids[$this->p] === 39)) { @@ -21977,9 +18842,9 @@ private function s275(): bool $this->rec(62); } - goto n1252;} - goto a1250; - n1252: + goto n1592;} + goto a1586; + n1592: break; } @@ -21987,83 +18852,13 @@ private function s275(): bool $this->rec(276); } - goto f1249; - a1250: - goto k1249; - f1249: - $this->p = $o2; - goto f1246; - k1249: - goto k1246; - f1246: - $this->p = $o1; - return false; - k1246: - - return true; - } - - private function s277(): bool - { - if (!isset(self::Td8017923[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(277); - } - - return false;} - - $o1 = $this->p; - // s271 - if (!isset(self::Td8017923[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(271); - } - - goto f1537;} - - $o2 = $this->p; - if (!$this->s272()) { - goto f1538;} - if (($this->ids[$this->p] === 30)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(51); - } - if (!($this->ids[$this->p] === 47)) { - if ($this->p >= $this->f) { - $this->rec(70); - } - - goto f1538;} - - $this->p++; - if (!$this->s199()) { - goto f1538;} - goto k1538; - f1538: - $this->p = $o2; - goto f1537; - k1538: - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1540; - } - - $this->p++; - } - e1540: - goto k1537; - f1537: + goto f1585; + a1586: + goto k1585; + f1585: $this->p = $o1; return false; - k1537: + k1585: return true; } @@ -22078,35 +18873,74 @@ private function s281(): bool $this->f = $this->p; $this->er = []; } - goto n643;} - goto a642; - n643: + goto n699;} + goto a698; + n699: break; case 32: case 82: - if (!$this->s364()) { - goto n644;} - goto a642; - n644: + // s364 + $o2 = $this->p; + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e703; + } + + $this->p++; + } + e703: + if (isset(self::T7680fe2e[$this->ids[$this->p]])) { + if (!$this->s306()) { + goto n704;} + n704: + } elseif ($this->p > $this->f) { + $this->rec(306); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); + } + + goto f701;} + + $this->p++; + if (!($this->ids[$this->p] === 47)) { + if ($this->p >= $this->f) { + $this->rec(70); + } + + goto f701;} + + $this->p++; + if (!$this->s315()) { + goto f701;} + goto k701; + f701: + $this->p = $o2; + goto n700; + k701: + goto a698; + n700: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n645;} - goto a642; - n645: + goto n705;} + goto a698; + n705: break; case 36: case 84: // s223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n646;} - $o2 = $this->p; $k2 = 0; while (true) { @@ -22116,52 +18950,52 @@ private function s281(): bool $this->rec(224); } - goto e648; + goto e708; } if (!$this->s224()) { - goto e648;} + goto e708;} if ($this->p === $b2) { $k2 = 1; - goto e648; + goto e708; } $k2++; } - e648: + e708: if ($k2 < 1) { - goto f647; + goto f707; } - goto k647; - f647: + goto k707; + f707: $this->p = $o2; - goto n646; - k647: - goto a642; - n646: + goto n706; + k707: + goto a698; + n706: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n649;} - goto a642; - n649: + goto n709;} + goto a698; + n709: break; case 34: if (!$this->s282()) { - goto n650;} - goto a642; - n650: + goto n710;} + goto a698; + n710: if (($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n651;} - goto a642; - n651: + goto n711;} + goto a698; + n711: break; } @@ -22169,13 +19003,13 @@ private function s281(): bool $this->rec(281); } - goto f641; - a642: - goto k641; - f641: + goto f697; + a698: + goto k697; + f697: $this->p = $o1; return false; - k641: + k697: return true; } @@ -22195,28 +19029,91 @@ private function s282(): bool $this->rec(54); } - goto f891;} - // s284 + goto f1004;} + if (!$this->s284()) { + goto f1004;} + goto k1004; + f1004: + $this->p = $o1; + return false; + k1004: + + return true; + } + + private function s284(): bool + { if (!($this->ids[$this->p] === 34)) { if ($this->p > $this->f) { $this->rec(284); } - goto f891;} + return false;} - $o2 = $this->p; + $o1 = $this->p; switch ($this->ids[$this->p]) { default: break; case 34: if (!$this->s285()) { - goto n894;} - goto a893; - n894: - if (!$this->s362()) { - goto n895;} - goto a893; - n895: + goto n1285;} + goto a1284; + n1285: + // s362 + $o2 = $this->p; + if (!$this->s363()) { + goto f1287;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1288;} + + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(224); + } + + goto e1290; + } + + if (!$this->s224()) { + goto e1290;} + if ($this->p === $b3) { + $k3 = 1; + goto e1290; + } + + $k3++; + } + e1290: + + if ($k3 < 1) { + goto f1289; + } + goto k1289; + f1289: + $this->p = $o3; + goto n1288; + k1289: + n1288: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1287; + f1287: + $this->p = $o2; + goto n1286; + k1287: + goto a1284; + n1286: break; } @@ -22224,18 +19121,13 @@ private function s282(): bool $this->rec(284); } - goto f892; - a893: - goto k892; - f892: - $this->p = $o2; - goto f891; - k892: - goto k891; - f891: + goto f1283; + a1284: + goto k1283; + f1283: $this->p = $o1; return false; - k891: + k1283: return true; } @@ -22250,13 +19142,6 @@ private function s285(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 34)) { - if ($this->p >= $this->f) { - $this->rec(54); - } - - goto f1190;} - $this->p++; // s203 $o2 = $this->p; @@ -22267,40 +19152,14 @@ private function s285(): bool $this->rec(204); } - goto e1192; + goto e1548; } $this->p++; } - e1192: - // s286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - goto f1190;} - - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1193;} - - $this->p++; - if (!$this->s287()) { - goto f1193;} - if (!$this->s293()) { - goto f1193;} - if (!$this->s296()) { - goto f1193;} - goto k1193; - f1193: - $this->p = $o2; - goto f1190; - k1193: + e1548: + if (!$this->s286()) { + goto f1546;} // s203 $o2 = $this->p; while (true) { @@ -22310,53 +19169,16 @@ private function s285(): bool $this->rec(204); } - goto e1195; + goto e1550; } $this->p++; } - e1195: + e1550: if (($this->ids[$this->p] === 40)) { - // s300 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(300); - } - - goto n1196;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b2 > $this->f) { - $this->rec(301); - } - - goto e1198; - } - - if (!$this->s301()) { - goto e1198;} - if ($this->p === $b2) { - $k2 = 1; - goto e1198; - } - - $k2++; - } - e1198: - - if ($k2 < 1) { - goto f1197; - } - goto k1197; - f1197: - $this->p = $o2; - goto n1196; - k1197: - n1196: + if (!$this->s300()) { + goto n1551;} + n1551: } elseif ($this->p > $this->f) { $this->rec(300); } @@ -22365,7 +19187,7 @@ private function s285(): bool $this->rec(56); } - goto f1190;} + goto f1546;} $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { @@ -22373,7 +19195,7 @@ private function s285(): bool $this->rec(16); } - goto f1190;} + goto f1546;} $this->p++; // s203 @@ -22385,16 +19207,16 @@ private function s285(): bool $this->rec(204); } - goto e1200; + goto e1553; } $this->p++; } - e1200: + e1553: if (isset(self::T7680fe2e[$this->ids[$this->p]])) { if (!$this->s306()) { - goto n1201;} - n1201: + goto n1554;} + n1554: } elseif ($this->p > $this->f) { $this->rec(306); } @@ -22403,7 +19225,7 @@ private function s285(): bool $this->rec(53); } - goto f1190;} + goto f1546;} $this->p++; if (!($this->ids[$this->p] === 47)) { @@ -22411,16 +19233,16 @@ private function s285(): bool $this->rec(70); } - goto f1190;} + goto f1546;} $this->p++; if (!$this->s315()) { - goto f1190;} - goto k1190; - f1190: + goto f1546;} + goto k1546; + f1546: $this->p = $o1; return false; - k1190: + k1546: return true; } @@ -22435,25 +19257,110 @@ private function s286(): bool return false;} $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1613;} - $this->p++; if (!$this->s287()) { - goto f1613;} - if (!$this->s293()) { - goto f1613;} - if (!$this->s296()) { - goto f1613;} - goto k1613; - f1613: + goto f1633;} + // s293 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1636;} + goto a1635; + n1636: + break; + case 5: + // s294 + $o3 = $this->p; + $this->p++; + if (!$this->s199()) { + goto f1638;} + goto k1638; + f1638: + $this->p = $o3; + goto n1637; + k1638: + goto a1635; + n1637: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1639;} + goto a1635; + n1639: + break; + } + + if ($this->p > $this->f) { + $this->rec(293); + } + + goto f1634; + a1635: + goto k1634; + f1634: + $this->p = $o2; + goto f1633; + k1634: + // s296 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1642;} + goto a1641; + n1642: + break; + case 46: + // s297 + $o3 = $this->p; + $this->p++; + if (!$this->s199()) { + goto f1644;} + goto k1644; + f1644: + $this->p = $o3; + goto n1643; + k1644: + goto a1641; + n1643: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1645;} + goto a1641; + n1645: + break; + } + + if ($this->p > $this->f) { + $this->rec(296); + } + + goto f1640; + a1641: + goto k1640; + f1640: + $this->p = $o2; + goto f1633; + k1640: + goto k1633; + f1633: $this->p = $o1; return false; - k1613: + k1633: return true; } @@ -22471,7 +19378,7 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f562;} + goto f626;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -22479,96 +19386,29 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f562;} + goto f626;} } - goto k562; - f562: + goto k626; + f626: $this->p = $o2; - goto n561; - k562: - goto a560; - n561: + goto n625; + k626: + goto a624; + n625: break; case 13: // s288 - if (!($this->ids[$this->p] === 13)) { - if ($this->p > $this->f) { - $this->rec(288); - } - - goto n563;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 13)) { - if ($this->p >= $this->f) { - $this->rec(27); - } - - goto f564;} - - $this->p++; - if (!$this->s199()) { - goto f564;} - goto k564; - f564: - $this->p = $o2; - goto n563; - k564: - goto a560; - n563: - // s290 - $o2 = $this->p; - if (($this->ids[$this->p] === 13)) { - if (($this->ids[$this->p] === 13)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f566;} - } - if (($this->ids[$this->p] === 14)) { - if (($this->ids[$this->p] === 14)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f566;} - } - goto k566; - f566: - $this->p = $o2; - goto n565; - k566: - goto a560; - n565: - break; - case 14: - // s289 - if (!($this->ids[$this->p] === 14)) { - if ($this->p > $this->f) { - $this->rec(289); - } - - goto n567;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 14)) { - if ($this->p >= $this->f) { - $this->rec(28); - } - - goto f568;} - $this->p++; if (!$this->s199()) { - goto f568;} - goto k568; - f568: + goto f628;} + goto k628; + f628: $this->p = $o2; - goto n567; - k568: - goto a560; - n567: + goto n627; + k628: + goto a624; + n627: // s290 $o2 = $this->p; if (($this->ids[$this->p] === 13)) { @@ -22577,7 +19417,7 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f570;} + goto f630;} } if (($this->ids[$this->p] === 14)) { if (($this->ids[$this->p] === 14)) { @@ -22585,202 +19425,149 @@ private function s287(): bool $this->f = $this->p; $this->er = []; } - goto f570;} - } - goto k570; - f570: - $this->p = $o2; - goto n569; - k570: - goto a560; - n569: - break; - } - - if ($this->p > $this->f) { - $this->rec(287); - } - - goto f559; - a560: - goto k559; - f559: - $this->p = $o1; - return false; - k559: - - return true; - } - - private function s293(): bool - { - $o1 = $this->p; - switch ($this->ids[$this->p]) { - default: - if (($this->ids[$this->p] === 5)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n573;} - goto a572; - n573: - break; - case 5: - // s294 - if (!($this->ids[$this->p] === 5)) { - if ($this->p > $this->f) { - $this->rec(294); - } - - goto n574;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 5)) { - if ($this->p >= $this->f) { - $this->rec(29); - } - - goto f575;} - - $this->p++; - if (!$this->s199()) { - goto f575;} - goto k575; - f575: - $this->p = $o2; - goto n574; - k575: - goto a572; - n574: - if (($this->ids[$this->p] === 5)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n576;} - goto a572; - n576: - break; - } - - if ($this->p > $this->f) { - $this->rec(293); - } - - goto f571; - a572: - goto k571; - f571: - $this->p = $o1; - return false; - k571: - - return true; - } - - private function s296(): bool - { - $o1 = $this->p; - switch ($this->ids[$this->p]) { - default: - if (($this->ids[$this->p] === 46)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n579;} - goto a578; - n579: - break; - case 46: - // s297 - if (!($this->ids[$this->p] === 46)) { - if ($this->p > $this->f) { - $this->rec(297); - } - - goto n580;} - + goto f630;} + } + goto k630; + f630: + $this->p = $o2; + goto n629; + k630: + goto a624; + n629: + break; + case 14: + // s289 $o2 = $this->p; - if (!($this->ids[$this->p] === 46)) { - if ($this->p >= $this->f) { - $this->rec(69); - } - - goto f581;} - $this->p++; if (!$this->s199()) { - goto f581;} - goto k581; - f581: + goto f632;} + goto k632; + f632: $this->p = $o2; - goto n580; - k581: - goto a578; - n580: - if (($this->ids[$this->p] === 46)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n582;} - goto a578; - n582: + goto n631; + k632: + goto a624; + n631: + // s290 + $o2 = $this->p; + if (($this->ids[$this->p] === 13)) { + if (($this->ids[$this->p] === 13)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f634;} + } + if (($this->ids[$this->p] === 14)) { + if (($this->ids[$this->p] === 14)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f634;} + } + goto k634; + f634: + $this->p = $o2; + goto n633; + k634: + goto a624; + n633: break; } if ($this->p > $this->f) { - $this->rec(296); + $this->rec(287); } - goto f577; - a578: - goto k577; - f577: + goto f623; + a624: + goto k623; + f623: $this->p = $o1; return false; - k577: + k623: return true; } - private function s301(): bool + private function s300(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(301); + $this->rec(300); } return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(301); + } + + goto e1678; } - goto f1490;} + // s301 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(301); + } - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + goto e1678;} + + $o2 = $this->p; + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1681; } - goto e1492; + $this->p++; + } + e1681: + if (!$this->s302()) { + goto f1679;} + goto k1679; + f1679: + $this->p = $o2; + goto e1678; + k1679: + if ($this->p === $b1) { + $k1 = 1; + goto e1678; } - $this->p++; + $k1++; } - e1492: - // s302 - $o2 = $this->p; + e1678: + + if ($k1 < 1) { + goto f1677; + } + goto k1677; + f1677: + $this->p = $o1; + return false; + k1677: + + return true; + } + + private function s302(): bool + { + $o1 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -22803,10 +19590,32 @@ private function s301(): bool case 17: case 18: case 24: - if (!$this->s304()) { - goto n1495;} - goto a1494; - n1495: + // s304 + $o2 = $this->p; + if (!$this->s286()) { + goto f1737;} + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1739; + } + + $this->p++; + } + e1739: + goto k1737; + f1737: + $this->p = $o2; + goto n1736; + k1737: + goto a1735; + n1736: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -22814,9 +19623,9 @@ private function s301(): bool $this->rec(56); } - goto n1496;} - goto a1494; - n1496: + goto n1740;} + goto a1735; + n1740: break; } @@ -22824,80 +19633,13 @@ private function s301(): bool $this->rec(302); } - goto f1493; - a1494: - goto k1493; - f1493: - $this->p = $o2; - goto f1490; - k1493: - goto k1490; - f1490: - $this->p = $o1; - return false; - k1490: - - return true; - } - - private function s304(): bool - { - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(304); - } - - return false;} - - $o1 = $this->p; - // s286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - goto f1664;} - - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1665;} - - $this->p++; - if (!$this->s287()) { - goto f1665;} - if (!$this->s293()) { - goto f1665;} - if (!$this->s296()) { - goto f1665;} - goto k1665; - f1665: - $this->p = $o2; - goto f1664; - k1665: - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1667; - } - - $this->p++; - } - e1667: - goto k1664; - f1664: + goto f1734; + a1735: + goto k1734; + f1734: $this->p = $o1; return false; - k1664: + k1734: return true; } @@ -22913,16 +19655,9 @@ private function s306(): bool $o1 = $this->p; // s307 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(307); - } - - goto f1151;} - $o2 = $this->p; if (!$this->s199()) { - goto f1152;} + goto f964;} if (($this->ids[$this->p] === 27)) { $this->p++; } elseif ($this->p >= $this->f) { @@ -22943,11 +19678,11 @@ private function s306(): bool } elseif ($this->p >= $this->f) { $this->rec(69); } - goto k1152; - f1152: + goto k964; + f964: $this->p = $o2; - goto f1151; - k1152: + goto f963; + k964: // s203 $o2 = $this->p; while (true) { @@ -22957,100 +19692,105 @@ private function s306(): bool $this->rec(204); } - goto e1154; + goto e966; } $this->p++; } - e1154: + e966: if (($this->ids[$this->p] === 40)) { - // s311 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(311); - } - - goto n1155;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b2 > $this->f) { - $this->rec(312); - } - - goto e1157; - } - - if (!$this->s312()) { - goto e1157;} - if ($this->p === $b2) { - $k2 = 1; - goto e1157; - } - - $k2++; - } - e1157: - - if ($k2 < 1) { - goto f1156; - } - goto k1156; - f1156: - $this->p = $o2; - goto n1155; - k1156: - n1155: + if (!$this->s311()) { + goto n967;} + n967: } elseif ($this->p > $this->f) { $this->rec(311); } - goto k1151; - f1151: + goto k963; + f963: $this->p = $o1; return false; - k1151: + k963: return true; } - private function s312(): bool + private function s311(): bool { if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(312); + $this->rec(311); } return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $k1 = 0; + while (true) { + $b1 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b1 > $this->f) { + $this->rec(312); + } + + goto e1262; } - goto f1470;} + // s312 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(312); + } - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + goto e1262;} + + $o2 = $this->p; + $this->p++; + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1265; } - goto e1472; + $this->p++; + } + e1265: + if (!$this->s313()) { + goto f1263;} + goto k1263; + f1263: + $this->p = $o2; + goto e1262; + k1263: + if ($this->p === $b1) { + $k1 = 1; + goto e1262; } - $this->p++; + $k1++; } - e1472: - // s313 - $o2 = $this->p; + e1262: + + if ($k1 < 1) { + goto f1261; + } + goto k1261; + f1261: + $this->p = $o1; + return false; + k1261: + + return true; + } + + private function s313(): bool + { + $o1 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -23081,10 +19821,59 @@ private function s312(): bool case 30: case 32: case 82: - if (!$this->s314()) { - goto n1475;} - goto a1474; - n1475: + // s314 + $o2 = $this->p; + // s307 + $o3 = $this->p; + if (!$this->s199()) { + goto f1542;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (($this->ids[$this->p] === 26)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(47); + } + if (($this->ids[$this->p] === 46)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(69); + } + goto k1542; + f1542: + $this->p = $o3; + goto f1541; + k1542: + // s203 + $o3 = $this->p; + while (true) { + $b3 = $this->p; + if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(204); + } + + goto e1544; + } + + $this->p++; + } + e1544: + goto k1541; + f1541: + $this->p = $o2; + goto n1540; + k1541: + goto a1539; + n1540: break; case 33: if (!($this->ids[$this->p] === 33)) { @@ -23092,9 +19881,9 @@ private function s312(): bool $this->rec(53); } - goto n1476;} - goto a1474; - n1476: + goto n1545;} + goto a1539; + n1545: break; } @@ -23102,88 +19891,13 @@ private function s312(): bool $this->rec(313); } - goto f1473; - a1474: - goto k1473; - f1473: - $this->p = $o2; - goto f1470; - k1473: - goto k1470; - f1470: - $this->p = $o1; - return false; - k1470: - - return true; - } - - private function s314(): bool - { - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(314); - } - - return false;} - - $o1 = $this->p; - // s307 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(307); - } - - goto f1656;} - - $o2 = $this->p; - if (!$this->s199()) { - goto f1657;} - if (($this->ids[$this->p] === 27)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(48); - } - if (($this->ids[$this->p] === 42)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(65); - } - if (($this->ids[$this->p] === 26)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(47); - } - if (($this->ids[$this->p] === 46)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(69); - } - goto k1657; - f1657: - $this->p = $o2; - goto f1656; - k1657: - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1659; - } - - $this->p++; - } - e1659: - goto k1656; - f1656: + goto f1538; + a1539: + goto k1538; + f1538: $this->p = $o1; return false; - k1656: + k1538: return true; } @@ -23216,21 +19930,7 @@ private function s315(): bool case 18: case 24: // s331 - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(331); - } - - goto n1160;} - $o2 = $this->p; - if (!isset(self::T1921405e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(332); - } - - goto f1161;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -23238,25 +19938,18 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1161;} + goto f971;} } if (!$this->s318()) { - goto f1161;} - goto k1161; - f1161: + goto f971;} + goto k971; + f971: $this->p = $o2; - goto n1160; - k1161: - goto a1159; - n1160: + goto n970; + k971: + goto a969; + n970: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1162;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -23271,30 +19964,23 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1163;} + goto f973;} } if (!$this->s335()) { - goto f1163;} - goto k1163; - f1163: + goto f973;} + goto k973; + f973: $this->p = $o2; - goto n1162; - k1163: - goto a1159; - n1162: + goto n972; + k973: + goto a969; + n972: break; case 19: case 20: case 21: case 22: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1165;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -23309,41 +19995,27 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1166;} + goto f976;} } if (!$this->s335()) { - goto f1166;} - goto k1166; - f1166: + goto f976;} + goto k976; + f976: $this->p = $o2; - goto n1165; - k1166: - goto a1159; - n1165: + goto n975; + k976: + goto a969; + n975: break; case 3: case 4: case 8: if (!$this->s255()) { - goto n1168;} - goto a1159; - n1168: + goto n978;} + goto a969; + n978: // s317 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(317); - } - - goto n1169;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f1170;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -23351,7 +20023,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1170;} + goto f980;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -23359,25 +20031,18 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1170;} + goto f980;} } if (!$this->s318()) { - goto f1170;} - goto k1170; - f1170: + goto f980;} + goto k980; + f980: $this->p = $o2; - goto n1169; - k1170: - goto a1159; - n1169: + goto n979; + k980: + goto a969; + n979: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1171;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -23392,46 +20057,32 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1172;} + goto f982;} } if (!$this->s335()) { - goto f1172;} - goto k1172; - f1172: + goto f982;} + goto k982; + f982: $this->p = $o2; - goto n1171; - k1172: - goto a1159; - n1171: + goto n981; + k982: + goto a969; + n981: break; case 32: case 82: if (!$this->s316()) { - goto n1174;} - goto a1159; - n1174: + goto n984;} + goto a969; + n984: break; case 6: if (!$this->s267()) { - goto n1175;} - goto a1159; - n1175: + goto n985;} + goto a969; + n985: // s317 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(317); - } - - goto n1176;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f1177;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -23439,7 +20090,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1177;} + goto f987;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -23447,25 +20098,18 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1177;} + goto f987;} } if (!$this->s318()) { - goto f1177;} - goto k1177; - f1177: + goto f987;} + goto k987; + f987: $this->p = $o2; - goto n1176; - k1177: - goto a1159; - n1176: + goto n986; + k987: + goto a969; + n986: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1178;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -23480,39 +20124,25 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1179;} + goto f989;} } if (!$this->s335()) { - goto f1179;} - goto k1179; - f1179: + goto f989;} + goto k989; + f989: $this->p = $o2; - goto n1178; - k1179: - goto a1159; - n1178: + goto n988; + k989: + goto a969; + n988: break; case 7: if (!$this->s230()) { - goto n1181;} - goto a1159; - n1181: + goto n991;} + goto a969; + n991: // s317 - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(317); - } - - goto n1182;} - $o2 = $this->p; - if (!isset(self::T4020d016[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(279); - } - - goto f1183;} - $this->p++; if (($this->ids[$this->p] === 43)) { if (($this->ids[$this->p] === 43)) { @@ -23520,7 +20150,7 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1183;} + goto f993;} } if (($this->ids[$this->p] === 38)) { if (($this->ids[$this->p] === 38)) { @@ -23528,25 +20158,18 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1183;} + goto f993;} } if (!$this->s318()) { - goto f1183;} - goto k1183; - f1183: + goto f993;} + goto k993; + f993: $this->p = $o2; - goto n1182; - k1183: - goto a1159; - n1182: + goto n992; + k993: + goto a969; + n992: // s333 - if (!isset(self::T4546fd6c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(333); - } - - goto n1184;} - $o2 = $this->p; if (isset(self::T83e30518[$this->ids[$this->p]])) { $sf = $this->f; @@ -23561,51 +20184,82 @@ private function s315(): bool $this->f = $this->p; $this->er = []; } - goto f1185;} + goto f995;} } if (!$this->s335()) { - goto f1185;} - goto k1185; - f1185: + goto f995;} + goto k995; + f995: $this->p = $o2; - goto n1184; - k1185: - goto a1159; - n1184: + goto n994; + k995: + goto a969; + n994: break; case 25: - if (!$this->s229()) { - goto n1187;} - goto a1159; - n1187: - break; - case 30: - // s200 - if (!($this->ids[$this->p] === 30)) { - if ($this->p > $this->f) { - $this->rec(200); - } + // s229 + $o2 = $this->p; + $this->p++; + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } - goto n1188;} + goto n999;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 30)) { - if ($this->p >= $this->f) { - $this->rec(51); - } + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(224); + } + + goto e1001; + } + + if (!$this->s224()) { + goto e1001;} + if ($this->p === $b3) { + $k3 = 1; + goto e1001; + } - goto f1189;} + $k3++; + } + e1001: + if ($k3 < 1) { + goto f1000; + } + goto k1000; + f1000: + $this->p = $o3; + goto n999; + k1000: + n999: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto a969; + n997: + break; + case 30: + // s200 + $o2 = $this->p; $this->p++; if (!$this->s201()) { - goto f1189;} - goto k1189; - f1189: + goto f1003;} + goto k1003; + f1003: $this->p = $o2; - goto n1188; - k1189: - goto a1159; - n1188: + goto n1002; + k1003: + goto a969; + n1002: break; } @@ -23613,13 +20267,13 @@ private function s315(): bool $this->rec(315); } - goto f1158; - a1159: - goto k1158; - f1158: + goto f968; + a969: + goto k968; + f968: $this->p = $o1; return false; - k1158: + k968: return true; } @@ -23634,22 +20288,15 @@ private function s316(): bool return false;} $o1 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f1486;} - $this->p++; if (!$this->s205()) { - goto f1486;} + goto f1279;} if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f1486;} + goto f1279;} $this->p++; if (isset(self::T885cd349[$this->ids[$this->p]])) { @@ -23659,7 +20306,7 @@ private function s316(): bool $this->rec(223); } - goto n1487;} + goto n1280;} $o2 = $this->p; $k2 = 0; @@ -23670,37 +20317,37 @@ private function s316(): bool $this->rec(224); } - goto e1489; + goto e1282; } if (!$this->s224()) { - goto e1489;} + goto e1282;} if ($this->p === $b2) { $k2 = 1; - goto e1489; + goto e1282; } $k2++; } - e1489: + e1282: if ($k2 < 1) { - goto f1488; + goto f1281; } - goto k1488; - f1488: + goto k1281; + f1281: $this->p = $o2; - goto n1487; - k1488: - n1487: + goto n1280; + k1281: + n1280: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k1486; - f1486: + goto k1279; + f1279: $this->p = $o1; return false; - k1486: + k1279: return true; } @@ -23715,35 +20362,79 @@ private function s318(): bool $this->f = $this->p; $this->er = []; } - goto n1479;} - goto a1478; - n1479: + goto n1268;} + goto a1267; + n1268: break; case 34: case 86: - if (!$this->s319()) { - goto n1480;} - goto a1478; - n1480: + // s319 + $o2 = $this->p; + if (!$this->s320()) { + goto f1270;} + if (isset(self::T885cd349[$this->ids[$this->p]])) { + // s223 + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(223); + } + + goto n1271;} + + $o3 = $this->p; + $k3 = 0; + while (true) { + $b3 = $this->p; + if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if ($b3 > $this->f) { + $this->rec(224); + } + + goto e1273; + } + + if (!$this->s224()) { + goto e1273;} + if ($this->p === $b3) { + $k3 = 1; + goto e1273; + } + + $k3++; + } + e1273: + + if ($k3 < 1) { + goto f1272; + } + goto k1272; + f1272: + $this->p = $o3; + goto n1271; + k1272: + n1271: + } elseif ($this->p > $this->f) { + $this->rec(223); + } + goto k1270; + f1270: + $this->p = $o2; + goto n1269; + k1270: + goto a1267; + n1269: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1481;} - goto a1478; - n1481: - break; - case 36: - case 84: - // s223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n1482;} - + goto n1274;} + goto a1267; + n1274: + break; + case 36: + case 84: + // s223 $o2 = $this->p; $k2 = 0; while (true) { @@ -23753,38 +20444,38 @@ private function s318(): bool $this->rec(224); } - goto e1484; + goto e1277; } if (!$this->s224()) { - goto e1484;} + goto e1277;} if ($this->p === $b2) { $k2 = 1; - goto e1484; + goto e1277; } $k2++; } - e1484: + e1277: if ($k2 < 1) { - goto f1483; + goto f1276; } - goto k1483; - f1483: + goto k1276; + f1276: $this->p = $o2; - goto n1482; - k1483: - goto a1478; - n1482: + goto n1275; + k1276: + goto a1267; + n1275: if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1485;} - goto a1478; - n1485: + goto n1278;} + goto a1267; + n1278: break; } @@ -23792,78 +20483,13 @@ private function s318(): bool $this->rec(318); } - goto f1477; - a1478: - goto k1477; - f1477: - $this->p = $o1; - return false; - k1477: - - return true; - } - - private function s319(): bool - { - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(319); - } - - return false;} - - $o1 = $this->p; - if (!$this->s320()) { - goto f1660;} - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // s223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(223); - } - - goto n1661;} - - $o2 = $this->p; - $k2 = 0; - while (true) { - $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(224); - } - - goto e1663; - } - - if (!$this->s224()) { - goto e1663;} - if ($this->p === $b2) { - $k2 = 1; - goto e1663; - } - - $k2++; - } - e1663: - - if ($k2 < 1) { - goto f1662; - } - goto k1662; - f1662: - $this->p = $o2; - goto n1661; - k1662: - n1661: - } elseif ($this->p > $this->f) { - $this->rec(223); - } - goto k1660; - f1660: + goto f1266; + a1267: + goto k1266; + f1266: $this->p = $o1; return false; - k1660: + k1266: return true; } @@ -23878,13 +20504,6 @@ private function s320(): bool return false;} $o1 = $this->p; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f583;} - $this->p++; // s203 $o2 = $this->p; @@ -23895,14 +20514,14 @@ private function s320(): bool $this->rec(204); } - goto e585; + goto e637; } $this->p++; } - e585: + e637: if (!$this->s321()) { - goto f583;} + goto f635;} // s203 $o2 = $this->p; while (true) { @@ -23912,12 +20531,12 @@ private function s320(): bool $this->rec(204); } - goto e587; + goto e639; } $this->p++; } - e587: + e639: if (($this->ids[$this->p] === 40)) { // s327 if (!($this->ids[$this->p] === 40)) { @@ -23925,7 +20544,7 @@ private function s320(): bool $this->rec(327); } - goto n588;} + goto n640;} $o2 = $this->p; $k2 = 0; @@ -23936,29 +20555,29 @@ private function s320(): bool $this->rec(328); } - goto e590; + goto e642; } if (!$this->s328()) { - goto e590;} + goto e642;} if ($this->p === $b2) { $k2 = 1; - goto e590; + goto e642; } $k2++; } - e590: + e642: if ($k2 < 1) { - goto f589; + goto f641; } - goto k589; - f589: + goto k641; + f641: $this->p = $o2; - goto n588; - k589: - n588: + goto n640; + k641: + n640: } elseif ($this->p > $this->f) { $this->rec(327); } @@ -23967,14 +20586,14 @@ private function s320(): bool $this->rec(56); } - goto f583;} + goto f635;} $this->p++; - goto k583; - f583: + goto k635; + f635: $this->p = $o1; return false; - k583: + k635: return true; } @@ -24018,13 +20637,6 @@ private function s321(): bool case 32: case 82: // s324 - if (!isset(self::Tfc0ac6dd[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(324); - } - - goto n799;} - $o2 = $this->p; if (isset(self::T05cf281c[$this->ids[$this->p]])) { if (isset(self::T05cf281c[$this->ids[$this->p]])) { @@ -24032,54 +20644,40 @@ private function s321(): bool $this->f = $this->p; $this->er = []; } - goto f800;} + goto f874;} } if (!$this->s199()) { - goto f800;} - goto k800; - f800: + goto f874;} + goto k874; + f874: $this->p = $o2; - goto n799; - k800: - goto a798; - n799: + goto n873; + k874: + goto a872; + n873: break; case 1: case 2: // s322 - if (!isset(self::T05cf281c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(322); - } - - goto n801;} - $o2 = $this->p; - if (!isset(self::T05cf281c[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(323); - } - - goto f802;} - $this->p++; if (!$this->s199()) { - goto f802;} - goto k802; - f802: + goto f876;} + goto k876; + f876: $this->p = $o2; - goto n801; - k802: - goto a798; - n801: + goto n875; + k876: + goto a872; + n875: break; case 50: $this->p++; - goto a798; + goto a872; break; case 85: $this->p++; - goto a798; + goto a872; break; } @@ -24087,94 +20685,13 @@ private function s321(): bool $this->rec(321); } - goto f797; - a798: - goto k797; - f797: - $this->p = $o1; - return false; - k797: - - return true; - } - - private function s327(): bool - { - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(327); - } - - return false;} - - $o1 = $this->p; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(328); - } - - goto e1669; - } - - // s328 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(328); - } - - goto e1669;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f1670;} - - $this->p++; - // s203 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(204); - } - - goto e1672; - } - - $this->p++; - } - e1672: - if (!$this->s329()) { - goto f1670;} - goto k1670; - f1670: - $this->p = $o2; - goto e1669; - k1670: - if ($this->p === $b1) { - $k1 = 1; - goto e1669; - } - - $k1++; - } - e1669: - - if ($k1 < 1) { - goto f1668; - } - goto k1668; - f1668: + goto f871; + a872: + goto k871; + f871: $this->p = $o1; return false; - k1668: + k871: return true; } @@ -24189,13 +20706,6 @@ private function s328(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f803;} - $this->p++; // s203 $o2 = $this->p; @@ -24206,79 +20716,19 @@ private function s328(): bool $this->rec(204); } - goto e805; + goto e879; } $this->p++; } - e805: - // s329 - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 24: - case 25: - case 30: - case 32: - case 50: - case 82: - case 85: - if (!$this->s330()) { - goto n808;} - goto a807; - n808: - break; - case 35: - if (!($this->ids[$this->p] === 35)) { - if ($this->p > $this->f) { - $this->rec(56); - } - - goto n809;} - goto a807; - n809: - break; - } - - if ($this->p > $this->f) { - $this->rec(329); - } - - goto f806; - a807: - goto k806; - f806: - $this->p = $o2; - goto f803; - k806: - goto k803; - f803: + e879: + if (!$this->s329()) { + goto f877;} + goto k877; + f877: $this->p = $o1; return false; - k803: + k877: return true; } @@ -24319,16 +20769,9 @@ private function s329(): bool case 82: case 85: // s330 - if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(330); - } - - goto n1744;} - $o2 = $this->p; if (!$this->s321()) { - goto f1745;} + goto f1137;} // s203 $o3 = $this->p; while (true) { @@ -24338,19 +20781,19 @@ private function s329(): bool $this->rec(204); } - goto e1747; + goto e1139; } $this->p++; } - e1747: - goto k1745; - f1745: + e1139: + goto k1137; + f1137: $this->p = $o2; - goto n1744; - k1745: - goto a1743; - n1744: + goto n1136; + k1137: + goto a1135; + n1136: break; case 35: if (!($this->ids[$this->p] === 35)) { @@ -24358,9 +20801,9 @@ private function s329(): bool $this->rec(56); } - goto n1748;} - goto a1743; - n1748: + goto n1140;} + goto a1135; + n1140: break; } @@ -24368,49 +20811,13 @@ private function s329(): bool $this->rec(329); } - goto f1742; - a1743: - goto k1742; - f1742: - $this->p = $o1; - return false; - k1742: - - return true; - } - - private function s330(): bool - { - if (!isset(self::Tb3cd2a63[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(330); - } - - return false;} - - $o1 = $this->p; - if (!$this->s321()) { - goto f1035;} - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); - } - - goto e1037; - } - - $this->p++; - } - e1037: - goto k1035; - f1035: + goto f1134; + a1135: + goto k1134; + f1134: $this->p = $o1; return false; - k1035: + k1134: return true; } @@ -24438,10 +20845,10 @@ private function s335(): bool $this->f = $this->p; $this->er = []; } - goto f652;} + goto f712;} } if (!$this->s340()) { - goto f652;} + goto f712;} if (isset(self::T885cd349[$this->ids[$this->p]])) { // s223 if (!isset(self::T885cd349[$this->ids[$this->p]])) { @@ -24449,7 +20856,7 @@ private function s335(): bool $this->rec(223); } - goto n654;} + goto n714;} $o2 = $this->p; $k2 = 0; @@ -24460,37 +20867,37 @@ private function s335(): bool $this->rec(224); } - goto e656; + goto e716; } if (!$this->s224()) { - goto e656;} + goto e716;} if ($this->p === $b2) { $k2 = 1; - goto e656; + goto e716; } $k2++; } - e656: + e716: if ($k2 < 1) { - goto f655; + goto f715; } - goto k655; - f655: + goto k715; + f715: $this->p = $o2; - goto n654; - k655: - n654: + goto n714; + k715: + n714: } elseif ($this->p > $this->f) { $this->rec(223); } - goto k652; - f652: + goto k712; + f712: $this->p = $o1; return false; - k652: + k712: return true; } @@ -24511,45 +20918,31 @@ private function s337(): bool case 7: case 18: // s338 - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(338); - } - - goto n844;} - $o2 = $this->p; - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(339); - } - - goto f845;} - $this->p++; if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(16); } - goto f845;} + goto f921;} $this->p++; - goto k845; - f845: + goto k921; + f921: $this->p = $o2; - goto n844; - k845: - goto a843; - n844: + goto n920; + k921: + goto a919; + n920: break; case 36: $this->p++; - goto a843; + goto a919; break; case 84: $this->p++; - goto a843; + goto a919; break; } @@ -24557,13 +20950,13 @@ private function s337(): bool $this->rec(337); } - goto f842; - a843: - goto k842; - f842: + goto f918; + a919: + goto k918; + f918: $this->p = $o1; return false; - k842: + k918: return true; } @@ -24593,16 +20986,9 @@ private function s340(): bool case 11: case 12: case 13: - case 14: - case 24: - // s357 - if (!isset(self::Td08a6883[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(357); - } - - goto n178;} - + case 14: + case 24: + // s357 $o2 = $this->p; if (isset(self::T1ad6c327[$this->ids[$this->p]])) { if (isset(self::T1ad6c327[$this->ids[$this->p]])) { @@ -24610,59 +20996,96 @@ private function s340(): bool $this->f = $this->p; $this->er = []; } - goto f179;} + goto f206;} } if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f179;} + goto f206;} $this->p++; if (($this->ids[$this->p] === 43)) { - if (!$this->s360()) { - goto n180;} - n180: + // s360 + if (!($this->ids[$this->p] === 43)) { + if ($this->p > $this->f) { + $this->rec(360); + } + + goto n207;} + + $o3 = $this->p; + $this->p++; + if (!$this->s163()) { + goto f208;} + goto k208; + f208: + $this->p = $o3; + goto n207; + k208: + n207: } elseif ($this->p > $this->f) { $this->rec(360); } - goto k179; - f179: + goto k206; + f206: $this->p = $o2; - goto n178; - k179: - goto a177; - n178: + goto n205; + k206: + goto a204; + n205: break; case 7: case 18: - if (!$this->s347()) { - goto n181;} - goto a177; - n181: - break; - case 21: - case 22: - // s343 - if (!isset(self::T24d0f25b[$this->ids[$this->p]])) { + // s347 + $o2 = $this->p; + $this->p++; + if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(343); + $this->rec(16); + } + + goto f210;} + + $this->p++; + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->s349()) { + goto n211;} + n211: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 33)) { + if ($this->p >= $this->f) { + $this->rec(53); } - goto n182;} + goto f210;} + $this->p++; + goto k210; + f210: + $this->p = $o2; + goto n209; + k210: + goto a204; + n209: + break; + case 21: + case 22: + // s343 $o2 = $this->p; switch ($this->ids[$this->p]) { default: break; case 21: $this->p++; - goto a184; + goto a214; break; case 22: $this->p++; - goto a184; + goto a214; break; } @@ -24670,42 +21093,63 @@ private function s340(): bool $this->rec(343); } - goto f183; - a184: - goto k183; - f183: + goto f213; + a214: + goto k213; + f213: $this->p = $o2; - goto n182; - k183: - goto a177; - n182: + goto n212; + k213: + goto a204; + n212: break; case 36: case 84: - if (!$this->s361()) { - goto n185;} - goto a177; - n185: + // s361 + $o2 = $this->p; + $this->p++; + if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { + if (!$this->s349()) { + goto n217;} + n217: + } elseif ($this->p > $this->f) { + $this->rec(349); + } + if (!($this->ids[$this->p] === 37)) { + if ($this->p >= $this->f) { + $this->rec(59); + } + + goto f216;} + + $this->p++; + goto k216; + f216: + $this->p = $o2; + goto n215; + k216: + goto a204; + n215: break; case 15: $this->p++; - goto a177; + goto a204; break; case 16: $this->p++; - goto a177; + goto a204; break; case 17: $this->p++; - goto a177; + goto a204; break; case 19: $this->p++; - goto a177; + goto a204; break; case 20: $this->p++; - goto a177; + goto a204; break; } @@ -24713,63 +21157,13 @@ private function s340(): bool $this->rec(340); } - goto f176; - a177: - goto k176; - f176: - $this->p = $o1; - return false; - k176: - - return true; - } - - private function s347(): bool - { - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(347); - } - - return false;} - - $o1 = $this->p; - if (!isset(self::T1ad6c327[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(339); - } - - goto f430;} - - $this->p++; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f430;} - - $this->p++; - if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if (!$this->s349()) { - goto n431;} - n431: - } elseif ($this->p > $this->f) { - $this->rec(349); - } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - - goto f430;} - - $this->p++; - goto k430; - f430: + goto f203; + a204: + goto k203; + f203: $this->p = $o1; return false; - k430: + k203: return true; } @@ -24785,47 +21179,11 @@ private function s349(): bool $o1 = $this->p; // s350 - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(350); - } - - goto f712;} - $o2 = $this->p; if (!$this->s340()) { - goto f713;} - if (!$this->s351()) { - goto f713;} - goto k713; - f713: - $this->p = $o2; - goto f712; - k713: - if (($this->ids[$this->p] === 40)) { - if (!$this->s355()) { - goto n714;} - n714: - } elseif ($this->p > $this->f) { - $this->rec(355); - } - if (($this->ids[$this->p] === 40)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(63); - } - goto k712; - f712: - $this->p = $o1; - return false; - k712: - - return true; - } - - private function s351(): bool - { - $o1 = $this->p; + goto f490;} + // s351 + $o3 = $this->p; switch ($this->ids[$this->p]) { default: if (($this->ids[$this->p] === 44)) { @@ -24833,45 +21191,31 @@ private function s351(): bool $this->f = $this->p; $this->er = []; } - goto n964;} - goto a963; - n964: + goto n493;} + goto a492; + n493: break; case 44: // s352 - if (!($this->ids[$this->p] === 44)) { - if ($this->p > $this->f) { - $this->rec(352); - } - - goto n965;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 44)) { - if ($this->p >= $this->f) { - $this->rec(67); - } - - goto f966;} - + $o4 = $this->p; $this->p++; if (!$this->s340()) { - goto f966;} - goto k966; - f966: - $this->p = $o2; - goto n965; - k966: - goto a963; - n965: + goto f495;} + goto k495; + f495: + $this->p = $o4; + goto n494; + k495: + goto a492; + n494: if (($this->ids[$this->p] === 44)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n967;} - goto a963; - n967: + goto n496;} + goto a492; + n496: break; } @@ -24879,252 +21223,170 @@ private function s351(): bool $this->rec(351); } - goto f962; - a963: - goto k962; - f962: - $this->p = $o1; - return false; - k962: - - return true; - } - - private function s355(): bool - { - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(355); - } - - return false;} - - $o1 = $this->p; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(356); - } - - goto e969; - } - - // s356 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(356); - } - - goto e969;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } - - goto f970;} - - $this->p++; - // s350 - if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(350); - } - - goto f970;} - - $o3 = $this->p; - if (!$this->s340()) { - goto f971;} - if (!$this->s351()) { - goto f971;} - goto k971; - f971: - $this->p = $o3; - goto f970; - k971: - goto k970; - f970: - $this->p = $o2; - goto e969; - k970: - if ($this->p === $b1) { - $k1 = 1; - goto e969; - } - - $k1++; - } - e969: - - if ($k1 < 1) { - goto f968; - } - goto k968; - f968: - $this->p = $o1; - return false; - k968: - - return true; - } - - private function s360(): bool - { - if (!($this->ids[$this->p] === 43)) { - if ($this->p > $this->f) { - $this->rec(360); - } - - return false;} - - $o1 = $this->p; - if (!($this->ids[$this->p] === 43)) { - if ($this->p >= $this->f) { - $this->rec(66); - } - - goto f429;} - - $this->p++; - if (!$this->s163()) { - goto f429;} - goto k429; - f429: - $this->p = $o1; - return false; - k429: - - return true; - } - - private function s361(): bool - { - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(361); - } - - return false;} - - $o1 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(228); - } - - goto f432;} - - $this->p++; - if (isset(self::T69bf8cc4[$this->ids[$this->p]])) { - if (!$this->s349()) { - goto n433;} - n433: - } elseif ($this->p > $this->f) { - $this->rec(349); - } - if (!($this->ids[$this->p] === 37)) { - if ($this->p >= $this->f) { - $this->rec(59); - } - - goto f432;} - - $this->p++; - goto k432; - f432: - $this->p = $o1; - return false; - k432: - - return true; - } - - private function s362(): bool - { - if (!($this->ids[$this->p] === 34)) { - if ($this->p > $this->f) { - $this->rec(362); - } - - return false;} - - $o1 = $this->p; - if (!$this->s363()) { - goto f1202;} - if (isset(self::T885cd349[$this->ids[$this->p]])) { - // s223 - if (!isset(self::T885cd349[$this->ids[$this->p]])) { + goto f491; + a492: + goto k491; + f491: + $this->p = $o3; + goto f490; + k491: + goto k490; + f490: + $this->p = $o2; + goto f489; + k490: + if (($this->ids[$this->p] === 40)) { + // s355 + if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(223); + $this->rec(355); } - goto n1203;} + goto n497;} $o2 = $this->p; $k2 = 0; while (true) { $b2 = $this->p; - if (!isset(self::T885cd349[$this->ids[$this->p]])) { + if (!($this->ids[$this->p] === 40)) { if ($b2 > $this->f) { - $this->rec(224); + $this->rec(356); } - goto e1205; + goto e499; } - if (!$this->s224()) { - goto e1205;} + // s356 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(356); + } + + goto e499;} + + $o3 = $this->p; + $this->p++; + if (!$this->s350()) { + goto f500;} + goto k500; + f500: + $this->p = $o3; + goto e499; + k500: if ($this->p === $b2) { $k2 = 1; - goto e1205; + goto e499; } $k2++; } - e1205: + e499: if ($k2 < 1) { - goto f1204; + goto f498; } - goto k1204; - f1204: + goto k498; + f498: $this->p = $o2; - goto n1203; - k1204: - n1203: + goto n497; + k498: + n497: } elseif ($this->p > $this->f) { - $this->rec(223); + $this->rec(355); + } + if (($this->ids[$this->p] === 40)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(63); } - goto k1202; - f1202: + goto k489; + f489: $this->p = $o1; return false; - k1202: + k489: return true; } - private function s363(): bool + private function s350(): bool { - if (!($this->ids[$this->p] === 34)) { + if (!isset(self::T69bf8cc4[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(363); + $this->rec(350); } return false;} $o1 = $this->p; + if (!$this->s340()) { + goto f776;} + // s351 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n779;} + goto a778; + n779: + break; + case 44: + // s352 + $o3 = $this->p; + $this->p++; + if (!$this->s340()) { + goto f781;} + goto k781; + f781: + $this->p = $o3; + goto n780; + k781: + goto a778; + n780: + if (($this->ids[$this->p] === 44)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n782;} + goto a778; + n782: + break; + } + + if ($this->p > $this->f) { + $this->rec(351); + } + + goto f777; + a778: + goto k777; + f777: + $this->p = $o2; + goto f776; + k777: + goto k776; + f776: + $this->p = $o1; + return false; + k776: + + return true; + } + + private function s363(): bool + { if (!($this->ids[$this->p] === 34)) { - if ($this->p >= $this->f) { - $this->rec(54); + if ($this->p > $this->f) { + $this->rec(363); } - goto f1497;} + return false;} + $o1 = $this->p; $this->p++; // s203 $o2 = $this->p; @@ -25135,14 +21397,14 @@ private function s363(): bool $this->rec(204); } - goto e1499; + goto e1557; } $this->p++; } - e1499: + e1557: if (!$this->s321()) { - goto f1497;} + goto f1555;} // s203 $o2 = $this->p; while (true) { @@ -25152,99 +21414,69 @@ private function s363(): bool $this->rec(204); } - goto e1501; + goto e1559; } $this->p++; } - e1501: + e1559: if (($this->ids[$this->p] === 40)) { - if (!$this->s327()) { - goto n1502;} - n1502: - } elseif ($this->p > $this->f) { - $this->rec(327); - } - if (!($this->ids[$this->p] === 35)) { - if ($this->p >= $this->f) { - $this->rec(56); - } - - goto f1497;} - - $this->p++; - goto k1497; - f1497: - $this->p = $o1; - return false; - k1497: - - return true; - } - - private function s364(): bool - { - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(364); - } + // s327 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(327); + } - return false;} + goto n1560;} - $o1 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(328); + } - goto f879;} + goto e1562; + } - $this->p++; - // s203 - $o2 = $this->p; - while (true) { - $b2 = $this->p; - if (!isset(self::T5448ab4c[$this->ids[$this->p]])) { - if ($b2 > $this->f) { - $this->rec(204); + if (!$this->s328()) { + goto e1562;} + if ($this->p === $b2) { + $k2 = 1; + goto e1562; } - goto e881; + $k2++; } + e1562: - $this->p++; - } - e881: - if (isset(self::T7680fe2e[$this->ids[$this->p]])) { - if (!$this->s306()) { - goto n882;} - n882: + if ($k2 < 1) { + goto f1561; + } + goto k1561; + f1561: + $this->p = $o2; + goto n1560; + k1561: + n1560: } elseif ($this->p > $this->f) { - $this->rec(306); + $this->rec(327); } - if (!($this->ids[$this->p] === 33)) { - if ($this->p >= $this->f) { - $this->rec(53); - } - - goto f879;} - - $this->p++; - if (!($this->ids[$this->p] === 47)) { + if (!($this->ids[$this->p] === 35)) { if ($this->p >= $this->f) { - $this->rec(70); + $this->rec(56); } - goto f879;} + goto f1555;} $this->p++; - if (!$this->s315()) { - goto f879;} - goto k879; - f879: + goto k1555; + f1555: $this->p = $o1; return false; - k879: + k1555: return true; } @@ -25262,7 +21494,7 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f413;} + goto f460;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25270,28 +21502,21 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f413;} + goto f460;} } - goto k413; - f413: + goto k460; + f460: $this->p = $o2; - goto n412; - k413: - goto a411; - n412: + goto n459; + k460: + goto a458; + n459: break; case 28: case 29: case 41: case 80: // s369 - if (!isset(self::T8458d590[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(369); - } - - goto n414;} - $o2 = $this->p; // s203 $o3 = $this->p; @@ -25302,21 +21527,56 @@ private function s368(): bool $this->rec(204); } - goto e417; + goto e464; } $this->p++; } - e417: - if (!$this->s370()) { - goto f415;} - goto k415; - f415: + e464: + // s370 + if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(370); + } + + goto f462;} + + $o3 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 28: + if (!$this->s371()) { + goto n467;} + goto a466; + n467: + break; + case 29: + if (!$this->s377()) { + goto n468;} + goto a466; + n468: + break; + } + + if ($this->p > $this->f) { + $this->rec(370); + } + + goto f465; + a466: + goto k465; + f465: + $this->p = $o3; + goto f462; + k465: + goto k462; + f462: $this->p = $o2; - goto n414; - k415: - goto a411; - n414: + goto n461; + k462: + goto a458; + n461: // s383 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -25325,7 +21585,7 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f419;} + goto f470;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25333,15 +21593,15 @@ private function s368(): bool $this->f = $this->p; $this->er = []; } - goto f419;} + goto f470;} } - goto k419; - f419: + goto k470; + f470: $this->p = $o2; - goto n418; - k419: - goto a411; - n418: + goto n469; + k470: + goto a458; + n469: break; } @@ -25349,99 +21609,42 @@ private function s368(): bool $this->rec(368); } - goto f410; - a411: - goto k410; - f410: + goto f457; + a458: + goto k457; + f457: $this->p = $o1; return false; - k410: + k457: return true; } - private function s370(): bool + private function s371(): bool { - if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { + if (!($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { - $this->rec(370); + $this->rec(371); } return false;} $o1 = $this->p; - switch ($this->ids[$this->p]) { - default: - break; - case 28: - // s371 - if (!($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->rec(371); - } - - goto n687;} - - $o2 = $this->p; - if (!$this->s372()) { - goto f688;} - if (($this->ids[$this->p] === 28)) { - if (($this->ids[$this->p] === 28)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f688;} - } - goto k688; - f688: - $this->p = $o2; - goto n687; - k688: - goto a686; - n687: - break; - case 29: - // s377 - if (!($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->rec(377); - } - - goto n689;} - - $o2 = $this->p; - if (!$this->s378()) { - goto f690;} - if (($this->ids[$this->p] === 29)) { - if (($this->ids[$this->p] === 29)) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto f690;} + if (!$this->s372()) { + goto f749;} + if (($this->ids[$this->p] === 28)) { + if (($this->ids[$this->p] === 28)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; } - goto k690; - f690: - $this->p = $o2; - goto n689; - k690: - goto a686; - n689: - break; - } - - if ($this->p > $this->f) { - $this->rec(370); + goto f749;} } - - goto f685; - a686: - goto k685; - f685: + goto k749; + f749: $this->p = $o1; return false; - k685: + k749: return true; } @@ -25464,7 +21667,7 @@ private function s372(): bool $this->rec(373); } - goto e931; + goto e1030; } // s373 @@ -25473,19 +21676,12 @@ private function s372(): bool $this->rec(373); } - goto e931;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 28)) { - if ($this->p >= $this->f) { - $this->rec(49); - } - - goto f932;} + goto e1030;} + $o2 = $this->p; $this->p++; if (!$this->s201()) { - goto f932;} + goto f1031;} // s375 $o3 = $this->p; // s203 @@ -25497,46 +21693,75 @@ private function s372(): bool $this->rec(204); } - goto e936; + goto e1035; } $this->p++; } - e936: + e1035: if (!($this->ids[$this->p] === 28)) { if ($this->p > $this->f) { $this->rec(49); } - goto f934;} - goto k934; - f934: + goto f1033;} + goto k1033; + f1033: $this->p = $o3; - goto n933; - k934: - n933: - goto k932; - f932: + goto n1032; + k1033: + n1032: + goto k1031; + f1031: $this->p = $o2; - goto e931; - k932: + goto e1030; + k1031: if ($this->p === $b1) { $k1 = 1; - goto e931; + goto e1030; } $k1++; } - e931: + e1030: if ($k1 < 1) { - goto f930; + goto f1029; + } + goto k1029; + f1029: + $this->p = $o1; + return false; + k1029: + + return true; + } + + private function s377(): bool + { + if (!($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->rec(377); + } + + return false;} + + $o1 = $this->p; + if (!$this->s378()) { + goto f750;} + if (($this->ids[$this->p] === 29)) { + if (($this->ids[$this->p] === 29)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto f750;} } - goto k930; - f930: + goto k750; + f750: $this->p = $o1; return false; - k930: + k750: return true; } @@ -25559,7 +21784,7 @@ private function s378(): bool $this->rec(379); } - goto e938; + goto e1037; } // s379 @@ -25568,19 +21793,12 @@ private function s378(): bool $this->rec(379); } - goto e938;} + goto e1037;} $o2 = $this->p; - if (!($this->ids[$this->p] === 29)) { - if ($this->p >= $this->f) { - $this->rec(50); - } - - goto f939;} - $this->p++; if (!$this->s201()) { - goto f939;} + goto f1038;} // s381 $o3 = $this->p; // s203 @@ -25592,46 +21810,46 @@ private function s378(): bool $this->rec(204); } - goto e943; + goto e1042; } $this->p++; } - e943: + e1042: if (!($this->ids[$this->p] === 29)) { if ($this->p > $this->f) { $this->rec(50); } - goto f941;} - goto k941; - f941: + goto f1040;} + goto k1040; + f1040: $this->p = $o3; - goto n940; - k941: - n940: - goto k939; - f939: + goto n1039; + k1040: + n1039: + goto k1038; + f1038: $this->p = $o2; - goto e938; - k939: + goto e1037; + k1038: if ($this->p === $b1) { $k1 = 1; - goto e938; + goto e1037; } $k1++; } - e938: + e1037: if ($k1 < 1) { - goto f937; + goto f1036; } - goto k937; - f937: + goto k1036; + f1036: $this->p = $o1; return false; - k937: + k1036: return true; } @@ -25649,7 +21867,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f335;} + goto f381;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25657,7 +21875,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f335;} + goto f381;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -25665,46 +21883,32 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f335;} + goto f381;} } if (!$this->s125()) { - goto f335;} - goto k335; - f335: + goto f381;} + goto k381; + f381: $this->p = $o2; - goto n334; - k335: - goto a333; - n334: + goto n380; + k381: + goto a379; + n380: break; case 25: case 26: // s386 - if (!isset(self::T29c7f960[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(386); - } - - goto n336;} - $o2 = $this->p; - if (!isset(self::T29c7f960[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(387); - } - - goto f337;} - $this->p++; if (!$this->s125()) { - goto f337;} - goto k337; - f337: + goto f383;} + goto k383; + f383: $this->p = $o2; - goto n336; - k337: - goto a333; - n336: + goto n382; + k383: + goto a379; + n382: // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -25713,7 +21917,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f339;} + goto f385;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25721,7 +21925,7 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f339;} + goto f385;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -25729,17 +21933,17 @@ private function s385(): bool $this->f = $this->p; $this->er = []; } - goto f339;} + goto f385;} } if (!$this->s125()) { - goto f339;} - goto k339; - f339: + goto f385;} + goto k385; + f385: $this->p = $o2; - goto n338; - k339: - goto a333; - n338: + goto n384; + k385: + goto a379; + n384: break; } @@ -25747,13 +21951,13 @@ private function s385(): bool $this->rec(385); } - goto f332; - a333: - goto k332; - f332: + goto f378; + a379: + goto k378; + f378: $this->p = $o1; return false; - k332: + k378: return true; } @@ -25769,7 +21973,7 @@ private function s391(): bool $o1 = $this->p; if (!$this->s199()) { - goto f299;} + goto f332;} // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -25778,7 +21982,7 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f300;} + goto f333;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -25786,7 +21990,7 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f300;} + goto f333;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -25794,20 +21998,20 @@ private function s391(): bool $this->f = $this->p; $this->er = []; } - goto f300;} + goto f333;} } if (!$this->s125()) { - goto f300;} - goto k300; - f300: + goto f333;} + goto k333; + f333: $this->p = $o2; - goto f299; - k300: - goto k299; - f299: + goto f332; + k333: + goto k332; + f332: $this->p = $o1; return false; - k299: + k332: return true; } @@ -25852,43 +22056,22 @@ private function s409(): bool case 32: case 82: // s435 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(435); - } - - goto n319;} - $o2 = $this->p; if (!$this->s199()) { - goto f320;} + goto f366;} if (!$this->s415()) { - goto f320;} - goto k320; - f320: + goto f366;} + goto k366; + f366: $this->p = $o2; - goto n319; - k320: - goto a318; - n319: + goto n365; + k366: + goto a364; + n365: break; case 9: // s410 - if (!($this->ids[$this->p] === 9)) { - if ($this->p > $this->f) { - $this->rec(410); - } - - goto n321;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 9)) { - if ($this->p >= $this->f) { - $this->rec(25); - } - - goto f322;} - $this->p++; if (isset(self::T648acf56[$this->ids[$this->p]])) { $sf = $this->f; @@ -25903,39 +22086,32 @@ private function s409(): bool $this->f = $this->p; $this->er = []; } - goto f322;} + goto f368;} } if (!$this->s199()) { - goto f322;} + goto f368;} if (!$this->s415()) { - goto f322;} - goto k322; - f322: + goto f368;} + goto k368; + f368: $this->p = $o2; - goto n321; - k322: - goto a318; - n321: + goto n367; + k368: + goto a364; + n367: // s435 - if (!isset(self::T7680fe2e[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(435); - } - - goto n324;} - $o2 = $this->p; if (!$this->s199()) { - goto f325;} + goto f371;} if (!$this->s415()) { - goto f325;} - goto k325; - f325: + goto f371;} + goto k371; + f371: $this->p = $o2; - goto n324; - k325: - goto a318; - n324: + goto n370; + k371: + goto a364; + n370: break; } @@ -25943,13 +22119,13 @@ private function s409(): bool $this->rec(409); } - goto f317; - a318: - goto k317; - f317: + goto f363; + a364: + goto k363; + f363: $this->p = $o1; return false; - k317: + k363: return true; } @@ -25972,13 +22148,6 @@ private function s412(): bool case 41: case 80: // s413 - if (!isset(self::T8458d590[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(413); - } - - goto n538;} - $o2 = $this->p; // s203 $o3 = $this->p; @@ -25989,51 +22158,51 @@ private function s412(): bool $this->rec(204); } - goto e541; + goto e612; } $this->p++; } - e541: + e612: if (!isset(self::Tc8c984b6[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(414); } - goto f539;} + goto f610;} $this->p++; - goto k539; - f539: + goto k610; + f610: $this->p = $o2; - goto n538; - k539: - goto a537; - n538: + goto n609; + k610: + goto a608; + n609: break; case 32: $this->p++; - goto a537; + goto a608; break; case 34: $this->p++; - goto a537; + goto a608; break; case 36: $this->p++; - goto a537; + goto a608; break; case 43: $this->p++; - goto a537; + goto a608; break; case 82: $this->p++; - goto a537; + goto a608; break; case 84: $this->p++; - goto a537; + goto a608; break; } @@ -26041,13 +22210,13 @@ private function s412(): bool $this->rec(412); } - goto f536; - a537: - goto k536; - f536: + goto f607; + a608: + goto k607; + f607: $this->p = $o1; return false; - k536: + k607: return true; } @@ -26085,40 +22254,26 @@ private function s415(): bool case 18: case 24: // s416 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(416); - } - - goto n593;} - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f594;} - $this->p++; if (!$this->s417()) { - goto f594;} - goto k594; - f594: + goto f646;} + goto k646; + f646: $this->p = $o2; - goto n593; - k594: - goto a592; - n593: + goto n645; + k646: + goto a644; + n645: break; case 32: case 34: case 82: case 86: if (!$this->s417()) { - goto n595;} - goto a592; - n595: + goto n647;} + goto a644; + n647: break; } @@ -26126,13 +22281,13 @@ private function s415(): bool $this->rec(415); } - goto f591; - a592: - goto k591; - f591: + goto f643; + a644: + goto k643; + f643: $this->p = $o1; return false; - k591: + k643: return true; } @@ -26147,59 +22302,20 @@ private function s417(): bool return false;} $o1 = $this->p; - // s418 - $o2 = $this->p; - switch ($this->ids[$this->p]) { - default: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n813;} - goto a812; - n813: - break; - case 34: - case 86: - if (!$this->s419()) { - goto n814;} - goto a812; - n814: - if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->f = $this->p; - $this->er = []; - } - goto n815;} - goto a812; - n815: - break; - } - - if ($this->p > $this->f) { - $this->rec(418); - } - - goto f811; - a812: - goto k811; - f811: - $this->p = $o2; - goto f810; - k811: + if (!$this->s418()) { + goto f880;} if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(16); } - goto f810;} + goto f880;} $this->p++; if (isset(self::T9373805c[$this->ids[$this->p]])) { if (!$this->s424()) { - goto n816;} - n816: + goto n881;} + n881: } elseif ($this->p > $this->f) { $this->rec(424); } @@ -26208,198 +22324,87 @@ private function s417(): bool $this->rec(53); } - goto f810;} - - $this->p++; - // s125 - $o2 = $this->p; - // s126 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(116); - } - - goto e819; - } - - $this->p++; - } - e819: - if (($this->ids[$this->p] === 80)) { - if (!$this->s128()) { - goto n820;} - n820: - } elseif ($this->p > $this->f) { - $this->rec(128); - } - goto k810; - f810: - $this->p = $o1; - return false; - k810: - - return true; - } - - private function s419(): bool - { - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(419); - } - - return false;} - - $o1 = $this->p; - if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(238); - } - - goto f1038;} - - $this->p++; - // s286 - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(286); - } - - goto f1038;} - - $o2 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f1039;} - - $this->p++; - if (!$this->s287()) { - goto f1039;} - if (!$this->s293()) { - goto f1039;} - if (!$this->s296()) { - goto f1039;} - goto k1039; - f1039: - $this->p = $o2; - goto f1038; - k1039: - if (($this->ids[$this->p] === 40)) { - if (!$this->s421()) { - goto n1040;} - n1040: - } elseif ($this->p > $this->f) { - $this->rec(421); - } - if (!($this->ids[$this->p] === 35)) { - if ($this->p >= $this->f) { - $this->rec(56); - } - - goto f1038;} - - $this->p++; - goto k1038; - f1038: - $this->p = $o1; - return false; - k1038: - - return true; - } - - private function s421(): bool - { - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(421); - } - - return false;} - - $o1 = $this->p; - $k1 = 0; - while (true) { - $b1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($b1 > $this->f) { - $this->rec(422); - } - - goto e1387; - } - - // s422 - if (!($this->ids[$this->p] === 40)) { - if ($this->p > $this->f) { - $this->rec(422); - } - - goto e1387;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); - } + goto f880;} - goto f1388;} + $this->p++; + if (!$this->s125()) { + goto f880;} + goto k880; + f880: + $this->p = $o1; + return false; + k880: - $this->p++; - if (!$this->s286()) { - goto f1388;} - goto k1388; - f1388: - $this->p = $o2; - goto e1387; - k1388: - if ($this->p === $b1) { - $k1 = 1; - goto e1387; - } + return true; + } - $k1++; + private function s418(): bool + { + $o1 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1143;} + goto a1142; + n1143: + break; + case 34: + case 86: + if (!$this->s419()) { + goto n1144;} + goto a1142; + n1144: + if (isset(self::Tb46fb4f7[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n1145;} + goto a1142; + n1145: + break; } - e1387: - if ($k1 < 1) { - goto f1386; + if ($this->p > $this->f) { + $this->rec(418); } - goto k1386; - f1386: + + goto f1141; + a1142: + goto k1141; + f1141: $this->p = $o1; return false; - k1386: + k1141: return true; } - private function s424(): bool + private function s419(): bool { - if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if (!isset(self::Tb46fb4f7[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(424); + $this->rec(419); } return false;} $o1 = $this->p; - if (!$this->s425()) { - goto f1041;} + $this->p++; + if (!$this->s286()) { + goto f1425;} if (($this->ids[$this->p] === 40)) { - // s433 + // s421 if (!($this->ids[$this->p] === 40)) { if ($this->p > $this->f) { - $this->rec(433); + $this->rec(421); } - goto n1042;} + goto n1426;} $o2 = $this->p; $k2 = 0; @@ -26407,54 +22412,79 @@ private function s424(): bool $b2 = $this->p; if (!($this->ids[$this->p] === 40)) { if ($b2 > $this->f) { - $this->rec(434); + $this->rec(422); } - goto e1044; + goto e1428; } - if (!$this->s434()) { - goto e1044;} + // s422 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(422); + } + + goto e1428;} + + $o3 = $this->p; + $this->p++; + if (!$this->s286()) { + goto f1429;} + goto k1429; + f1429: + $this->p = $o3; + goto e1428; + k1429: if ($this->p === $b2) { $k2 = 1; - goto e1044; + goto e1428; } $k2++; } - e1044: + e1428: if ($k2 < 1) { - goto f1043; + goto f1427; } - goto k1043; - f1043: + goto k1427; + f1427: $this->p = $o2; - goto n1042; - k1043: - n1042: + goto n1426; + k1427: + n1426: } elseif ($this->p > $this->f) { - $this->rec(433); + $this->rec(421); } - goto k1041; - f1041: + if (!($this->ids[$this->p] === 35)) { + if ($this->p >= $this->f) { + $this->rec(56); + } + + goto f1425;} + + $this->p++; + goto k1425; + f1425: $this->p = $o1; return false; - k1041: + k1425: return true; } - private function s425(): bool + private function s424(): bool { if (!isset(self::T9373805c[$this->ids[$this->p]])) { if ($this->p > $this->f) { - $this->rec(425); + $this->rec(424); } return false;} $o1 = $this->p; + // s425 + $o2 = $this->p; switch ($this->ids[$this->p]) { default: break; @@ -26480,111 +22510,123 @@ private function s425(): bool case 30: case 32: case 82: - // s426 - if (!isset(self::T34c34eee[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(426); - } - - goto n1391;} - - $o2 = $this->p; - if (!isset(self::T34c34eee[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(428); - } - - goto f1392;} - if (!$this->s199()) { - goto f1392;} - if (($this->ids[$this->p] === 27)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(48); - } - if (($this->ids[$this->p] === 42)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(65); - } - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); - } - - goto f1392;} - - $this->p++; - if (!$this->s429()) { - goto f1392;} - goto k1392; - f1392: - $this->p = $o2; - goto n1391; - k1392: - goto a1390; - n1391: + if (!$this->s426()) { + goto n1149;} + goto a1148; + n1149: break; case 26: case 27: case 42: - // s431 - if (!isset(self::T553dc07b[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(431); - } + if (!$this->s431()) { + goto n1150;} + goto a1148; + n1150: + break; + } - goto n1393;} + if ($this->p > $this->f) { + $this->rec(425); + } - $o2 = $this->p; - if (($this->ids[$this->p] === 27)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(48); - } - if (($this->ids[$this->p] === 42)) { - $this->p++; - } elseif ($this->p >= $this->f) { - $this->rec(65); + goto f1147; + a1148: + goto k1147; + f1147: + $this->p = $o2; + goto f1146; + k1147: + if (($this->ids[$this->p] === 40)) { + // s433 + if (!($this->ids[$this->p] === 40)) { + if ($this->p > $this->f) { + $this->rec(433); } - if (!($this->ids[$this->p] === 26)) { - if ($this->p >= $this->f) { - $this->rec(47); + + goto n1151;} + + $o2 = $this->p; + $k2 = 0; + while (true) { + $b2 = $this->p; + if (!($this->ids[$this->p] === 40)) { + if ($b2 > $this->f) { + $this->rec(434); } - goto f1394;} + goto e1153; + } - $this->p++; - if (!$this->s429()) { - goto f1394;} - goto k1394; - f1394: - $this->p = $o2; - goto n1393; - k1394: - goto a1390; - n1393: - break; - } + if (!$this->s434()) { + goto e1153;} + if ($this->p === $b2) { + $k2 = 1; + goto e1153; + } - if ($this->p > $this->f) { - $this->rec(425); - } + $k2++; + } + e1153: - goto f1389; - a1390: - goto k1389; - f1389: + if ($k2 < 1) { + goto f1152; + } + goto k1152; + f1152: + $this->p = $o2; + goto n1151; + k1152: + n1151: + } elseif ($this->p > $this->f) { + $this->rec(433); + } + goto k1146; + f1146: $this->p = $o1; return false; - k1389: + k1146: return true; } - private function s429(): bool + private function s426(): bool { + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(426); + } + + return false;} + $o1 = $this->p; + if (!isset(self::T34c34eee[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(428); + } + + goto f1430;} + if (!$this->s199()) { + goto f1430;} + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1430;} + + $this->p++; + // s429 + $o2 = $this->p; switch ($this->ids[$this->p]) { default: if (($this->ids[$this->p] === 46)) { @@ -26592,45 +22634,116 @@ private function s429(): bool $this->f = $this->p; $this->er = []; } - goto n1616;} - goto a1615; - n1616: + goto n1433;} + goto a1432; + n1433: break; case 46: // s430 - if (!($this->ids[$this->p] === 46)) { + $o3 = $this->p; + $this->p++; + if (!$this->s340()) { + goto f1435;} + goto k1435; + f1435: + $this->p = $o3; + goto n1434; + k1435: + goto a1432; + n1434: + if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { - $this->rec(430); + $this->f = $this->p; + $this->er = []; } + goto n1436;} + goto a1432; + n1436: + break; + } - goto n1617;} + if ($this->p > $this->f) { + $this->rec(429); + } - $o2 = $this->p; - if (!($this->ids[$this->p] === 46)) { - if ($this->p >= $this->f) { - $this->rec(69); + goto f1431; + a1432: + goto k1431; + f1431: + $this->p = $o2; + goto f1430; + k1431: + goto k1430; + f1430: + $this->p = $o1; + return false; + k1430: + + return true; + } + + private function s431(): bool + { + if (!isset(self::T553dc07b[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(431); + } + + return false;} + + $o1 = $this->p; + if (($this->ids[$this->p] === 27)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(48); + } + if (($this->ids[$this->p] === 42)) { + $this->p++; + } elseif ($this->p >= $this->f) { + $this->rec(65); + } + if (!($this->ids[$this->p] === 26)) { + if ($this->p >= $this->f) { + $this->rec(47); + } + + goto f1437;} + + $this->p++; + // s429 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; } - - goto f1618;} - + goto n1440;} + goto a1439; + n1440: + break; + case 46: + // s430 + $o3 = $this->p; $this->p++; if (!$this->s340()) { - goto f1618;} - goto k1618; - f1618: - $this->p = $o2; - goto n1617; - k1618: - goto a1615; - n1617: + goto f1442;} + goto k1442; + f1442: + $this->p = $o3; + goto n1441; + k1442: + goto a1439; + n1441: if (($this->ids[$this->p] === 46)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n1619;} - goto a1615; - n1619: + goto n1443;} + goto a1439; + n1443: break; } @@ -26638,13 +22751,18 @@ private function s429(): bool $this->rec(429); } - goto f1614; - a1615: - goto k1614; - f1614: + goto f1438; + a1439: + goto k1438; + f1438: + $this->p = $o2; + goto f1437; + k1438: + goto k1437; + f1437: $this->p = $o1; return false; - k1614: + k1437: return true; } @@ -26659,21 +22777,72 @@ private function s434(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 40)) { - if ($this->p >= $this->f) { - $this->rec(63); + $this->p++; + // s425 + if (!isset(self::T9373805c[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(425); } - goto f1395;} + goto f1444;} - $this->p++; - if (!$this->s425()) { - goto f1395;} - goto k1395; - f1395: + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 24: + case 30: + case 32: + case 82: + if (!$this->s426()) { + goto n1447;} + goto a1446; + n1447: + break; + case 26: + case 27: + case 42: + if (!$this->s431()) { + goto n1448;} + goto a1446; + n1448: + break; + } + + if ($this->p > $this->f) { + $this->rec(425); + } + + goto f1445; + a1446: + goto k1445; + f1445: + $this->p = $o2; + goto f1444; + k1445: + goto k1444; + f1444: $this->p = $o1; return false; - k1395: + k1444: return true; } @@ -26688,28 +22857,113 @@ private function s436(): bool return false;} $o1 = $this->p; - if (!($this->ids[$this->p] === 62)) { - if ($this->p >= $this->f) { - $this->rec(100); - } - - goto f313;} - $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f313;} + goto f347;} $this->p++; if (!$this->s287()) { - goto f313;} - if (!$this->s293()) { - goto f313;} - if (!$this->s296()) { - goto f313;} + goto f347;} + // s293 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n350;} + goto a349; + n350: + break; + case 5: + // s294 + $o3 = $this->p; + $this->p++; + if (!$this->s199()) { + goto f352;} + goto k352; + f352: + $this->p = $o3; + goto n351; + k352: + goto a349; + n351: + if (($this->ids[$this->p] === 5)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n353;} + goto a349; + n353: + break; + } + + if ($this->p > $this->f) { + $this->rec(293); + } + + goto f348; + a349: + goto k348; + f348: + $this->p = $o2; + goto f347; + k348: + // s296 + $o2 = $this->p; + switch ($this->ids[$this->p]) { + default: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n356;} + goto a355; + n356: + break; + case 46: + // s297 + $o3 = $this->p; + $this->p++; + if (!$this->s199()) { + goto f358;} + goto k358; + f358: + $this->p = $o3; + goto n357; + k358: + goto a355; + n357: + if (($this->ids[$this->p] === 46)) { + if ($this->p > $this->f) { + $this->f = $this->p; + $this->er = []; + } + goto n359;} + goto a355; + n359: + break; + } + + if ($this->p > $this->f) { + $this->rec(296); + } + + goto f354; + a355: + goto k354; + f354: + $this->p = $o2; + goto f347; + k354: // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -26718,7 +22972,7 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f314;} + goto f360;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -26726,7 +22980,7 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f314;} + goto f360;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -26734,20 +22988,20 @@ private function s436(): bool $this->f = $this->p; $this->er = []; } - goto f314;} + goto f360;} } if (!$this->s125()) { - goto f314;} - goto k314; - f314: + goto f360;} + goto k360; + f360: $this->p = $o2; - goto f313; - k314: - goto k313; - f313: + goto f347; + k360: + goto k347; + f347: $this->p = $o1; return false; - k313: + k347: return true; } @@ -26762,16 +23016,9 @@ private function s438(): bool return false;} $o1 = $this->p; - if (!isset(self::T83e30518[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(144); - } - - goto f315;} - $this->p++; if (!$this->s320()) { - goto f315;} + goto f361;} // s388 $o2 = $this->p; if (($this->ids[$this->p] === 28)) { @@ -26780,7 +23027,7 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f316;} + goto f362;} } if (($this->ids[$this->p] === 29)) { if (($this->ids[$this->p] === 29)) { @@ -26788,7 +23035,7 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f316;} + goto f362;} } if (($this->ids[$this->p] === 32)) { if (($this->ids[$this->p] === 32)) { @@ -26796,27 +23043,61 @@ private function s438(): bool $this->f = $this->p; $this->er = []; } - goto f316;} + goto f362;} } if (!$this->s125()) { - goto f316;} - goto k316; - f316: + goto f362;} + goto k362; + f362: $this->p = $o2; - goto f315; - k316: - goto k315; - f315: + goto f361; + k362: + goto k361; + f361: $this->p = $o1; return false; - k315: + k361: return true; } - private function s444(): bool + private function s443(): bool { + if (!($this->ids[$this->p] === 58)) { + if ($this->p > $this->f) { + $this->rec(443); + } + + return false;} + $o1 = $this->p; + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f334;} + + $this->p++; + if (!($this->ids[$this->p] === 10)) { + if ($this->p >= $this->f) { + $this->rec(26); + } + + goto f334;} + + $this->p++; + if (!isset(self::T83e30518[$this->ids[$this->p]])) { + if ($this->p > $this->f) { + $this->rec(144); + } + + goto f334;} + + $this->p++; + // s444 + $o2 = $this->p; switch ($this->ids[$this->p]) { default: if (($this->ids[$this->p] === 14)) { @@ -26824,51 +23105,37 @@ private function s444(): bool $this->f = $this->p; $this->er = []; } - goto n303;} - goto a302; - n303: + goto n337;} + goto a336; + n337: break; case 14: // s445 - if (!($this->ids[$this->p] === 14)) { - if ($this->p > $this->f) { - $this->rec(445); - } - - goto n304;} - - $o2 = $this->p; - if (!($this->ids[$this->p] === 14)) { - if ($this->p >= $this->f) { - $this->rec(28); - } - - goto f305;} - + $o3 = $this->p; $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f305;} + goto f339;} $this->p++; - goto k305; - f305: - $this->p = $o2; - goto n304; - k305: - goto a302; - n304: + goto k339; + f339: + $this->p = $o3; + goto n338; + k339: + goto a336; + n338: if (($this->ids[$this->p] === 14)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n306;} - goto a302; - n306: + goto n340;} + goto a336; + n340: break; } @@ -26876,13 +23143,18 @@ private function s444(): bool $this->rec(444); } - goto f301; - a302: - goto k301; - f301: + goto f335; + a336: + goto k335; + f335: + $this->p = $o2; + goto f334; + k335: + goto k334; + f334: $this->p = $o1; return false; - k301: + k334: return true; } @@ -26897,53 +23169,39 @@ private function s449(): bool $this->f = $this->p; $this->er = []; } - goto n309;} - goto a308; - n309: + goto n343;} + goto a342; + n343: break; case 45: // s450 - if (!($this->ids[$this->p] === 45)) { - if ($this->p > $this->f) { - $this->rec(450); - } - - goto n310;} - $o2 = $this->p; - if (!($this->ids[$this->p] === 45)) { - if ($this->p >= $this->f) { - $this->rec(68); - } - - goto f311;} - $this->p++; if (!isset(self::T83e30518[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->rec(144); } - goto f311;} + goto f345;} $this->p++; if (!$this->s451()) { - goto f311;} - goto k311; - f311: + goto f345;} + goto k345; + f345: $this->p = $o2; - goto n310; - k311: - goto a308; - n310: + goto n344; + k345: + goto a342; + n344: if (($this->ids[$this->p] === 45)) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n312;} - goto a308; - n312: + goto n346;} + goto a342; + n346: break; } @@ -26951,13 +23209,13 @@ private function s449(): bool $this->rec(449); } - goto f307; - a308: - goto k307; - f307: + goto f341; + a342: + goto k341; + f341: $this->p = $o1; return false; - k307: + k341: return true; } @@ -26972,52 +23230,38 @@ private function s451(): bool $this->f = $this->p; $this->er = []; } - goto n555;} - goto a554; - n555: + goto n619;} + goto a618; + n619: break; case 32: case 82: // s452 - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(452); - } - - goto n556;} - $o2 = $this->p; - if (!isset(self::Tc8cfa1df[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(16); - } - - goto f557;} - $this->p++; if (!($this->ids[$this->p] === 33)) { if ($this->p >= $this->f) { $this->rec(53); } - goto f557;} + goto f621;} $this->p++; - goto k557; - f557: + goto k621; + f621: $this->p = $o2; - goto n556; - k557: - goto a554; - n556: + goto n620; + k621: + goto a618; + n620: if (isset(self::Tc8cfa1df[$this->ids[$this->p]])) { if ($this->p > $this->f) { $this->f = $this->p; $this->er = []; } - goto n558;} - goto a554; - n558: + goto n622;} + goto a618; + n622: break; } @@ -27025,13 +23269,13 @@ private function s451(): bool $this->rec(451); } - goto f553; - a554: - goto k553; - f553: + goto f617; + a618: + goto k617; + f617: $this->p = $o1; return false; - k553: + k617: return true; } @@ -27046,43 +23290,14 @@ private function s454(): bool return false;} $o1 = $this->p; - if (!isset(self::Tf4b693bf[$this->ids[$this->p]])) { - if ($this->p > $this->f) { - $this->rec(119); - } - - goto f247;} - $this->p++; - // s125 - $o2 = $this->p; - // s126 - $o3 = $this->p; - while (true) { - $b3 = $this->p; - if (!isset(self::T61cd0e44[$this->ids[$this->p]])) { - if ($b3 > $this->f) { - $this->rec(116); - } - - goto e250; - } - - $this->p++; - } - e250: - if (($this->ids[$this->p] === 80)) { - if (!$this->s128()) { - goto n251;} - n251: - } elseif ($this->p > $this->f) { - $this->rec(128); - } - goto k247; - f247: + if (!$this->s125()) { + goto f288;} + goto k288; + f288: $this->p = $o1; return false; - k247: + k288: return true; } diff --git a/tools/phplrt/GeneratedParser.template.php b/tools/phplrt/GeneratedParser.template.php index 2cdf63e2..df283f39 100644 --- a/tools/phplrt/GeneratedParser.template.php +++ b/tools/phplrt/GeneratedParser.template.php @@ -5,7 +5,6 @@ use PHPStan\PhpDocParser\Ast\Comment; use PHPStan\PhpDocParser\Parser\Phplrt\Token; use function array_keys; -use function is_array; use function ksort; /** @@ -129,28 +128,5 @@ private function rec(int $rule): void $this->er[] = $rule; } - /** - * The values pushed since the given size, the lists among them flattened. - * - * @return list - */ - private function merge(int $from): array - { - $result = []; - for ($i = $from, $n = $this->n; $i < $n; $i++) { - $value = $this->v[$i]; - if (!is_array($value)) { - $result[] = $value; - continue; - } - - foreach ($value as $nested) { - $result[] = $nested; - } - } - - return $result; - } - /*METHODS*/ } diff --git a/tools/phplrt/ParserGenerator.php b/tools/phplrt/ParserGenerator.php index 7ea8899a..751eaa38 100644 --- a/tools/phplrt/ParserGenerator.php +++ b/tools/phplrt/ParserGenerator.php @@ -60,7 +60,7 @@ final class ParserGenerator /** @var array */ private array $kept; - /** @var array the reducer of each rule, and whether it reads the children */ + /** @var array the reducer of each rule, whether it reads the children, and whether it builds nothing */ private array $reducers; /** @var list every token id, along with the end of the input */ @@ -80,12 +80,18 @@ final class ParserGenerator private int $labels = 0; + /** + * @var array|null the tokens the reading is known to be at + * where the code being written starts, or null when nothing is known + */ + private ?array $known = null; + /** @var array the rules being written out into each other */ private array $stack = []; /** * @param array>> $choicePrediction - * @param array $reducers + * @param array $reducers * @param list $tokenIds * @param list $silent the tokens no reducer reads */ @@ -218,6 +224,31 @@ private function request(int $id, bool $build): string return $name; } + /** + * The tokens the reading is known to be at, which the code written next + * is the only one to be told about. + * + * @return array|null + */ + private function takeKnown(): ?array + { + $known = $this->known; + $this->known = null; + + return $known; + } + + /** + * Whether a check for the given tokens is known to pass. + * + * @param array|null $known + * @param list $tokens + */ + private static function implied(?array $known, array $tokens): bool + { + return $known !== null && array_diff_key($known, array_flip($tokens)) === []; + } + private function unique(): int { return ++$this->labels; @@ -228,6 +259,7 @@ private function unique(): int private function method(int $id, bool $build): string { $this->stack = [($build ? 'b' : 's') . $id => true]; + $this->known = null; return sprintf("\tprivate function %s%d(): bool\n\t{\n", $build ? 'b' : 's', $id) . self::indent($this->body($id, $build, 'return false;'), 2) @@ -251,16 +283,22 @@ private function body(int $id, bool $build, string $fail): string // call, so there are as few of them as possible $d = count($this->stack); + $known = $this->takeKnown(); + // A rule whose reducer reads nothing of what it contains is only read if ($kept && !$reducer[1]) { + $this->known = $known; return "\$o{$d} = \$this->p;\n" . $this->match($id, false, $fail) - . sprintf("\$this->v[\$this->n++] = \$this->%s(%s);\n", $reducer[0], self::span("\$o{$d}")); + . sprintf($reducer[2] ? "\$this->%s(%s);\n" : "\$this->v[\$this->n++] = \$this->%s(%s);\n", $reducer[0], self::span("\$o{$d}")); } $code = ''; $start = $this->start[$id] ?? null; - if ($start !== null) { + if ($start !== null && self::implied($known, array_keys($start))) { + // the token is known to be one the rule may begin with + } elseif ($start !== null) { + $known = $known === null ? $start : array_intersect_key($known, $start); $code .= sprintf( "if (!%s) {\n\tif (\$this->p > \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n\n", $this->in(array_keys($start)), @@ -278,6 +316,7 @@ private function body(int $id, bool $build, string $fail): string } $failure = "goto f{$u};"; + $this->known = $known; if ($rule instanceof Concatenation) { $code .= $this->concatenation($id, $rule, $build, $failure); } elseif ($rule instanceof Alternation) { @@ -300,7 +339,7 @@ private function body(int $id, bool $build, string $fail): string if ($kept) { $code .= sprintf( - "\$this->v[\$m%1\$d] = \$this->%2\$s(%3\$s, \$this->n === \$m%1\$d + 1 && !\\is_array(\$this->v[\$m%1\$d]) ? [\$this->v[\$m%1\$d]] : \$this->merge(\$m%1\$d));\n\$this->n = \$m%1\$d + 1;\n", + "\$this->v[\$m%1\$d] = \$this->%2\$s(%3\$s, \$this->n === \$m%1\$d + 1 ? [\$this->v[\$m%1\$d]] : \\array_slice(\$this->v, \$m%1\$d, \$this->n - \$m%1\$d));\n\$this->n = \$m%1\$d + 1;\n", $d, $reducer[0], self::span("\$o{$d}"), @@ -319,6 +358,10 @@ private function match(int $inner, bool $build, string $fail): string $definition = $this->grammar[$inner]; $tokens = $this->tokens($inner); if ($tokens !== null) { + if (self::implied($this->takeKnown(), $tokens[0])) { + return $this->read($inner, $build); + } + return sprintf( "if (!%s) {\n\tif (\$this->p %s \$this->f) {\n\t\t\$this->rec(%d);\n\t}\n\n%s}\n\n%s", $this->in($tokens[0]), @@ -330,6 +373,8 @@ private function match(int $inner, bool $build, string $fail): string } if ($definition instanceof Predicate) { + $this->known = null; + return $this->predicate($definition, $fail); } @@ -348,26 +393,36 @@ private function match(int $inner, bool $build, string $fail): string } // Too much to write out: the methods asked for along the way are - // not asked for after all + // not asked for after all, and the method called is told nothing + $this->known = null; $this->labels = $labels; $this->sets = $sets; $this->requested = $requested; $this->queue = $queue; } + $this->known = null; + return sprintf("if (!\$this->%s()) {\n%s}\n", $this->request($inner, $build), self::indent($fail, 1)); } private function concatenation(int $id, Concatenation $rule, bool $build, string $fail): string { $code = ''; + $first = true; foreach ($this->sequence[$id] ?? $rule->ruleIds as $inner) { + if (!$first) { + $this->known = null; + } + + $first = false; if ($inner >= 0) { $code .= $this->match($inner, $build, $fail); continue; } // An element that may be left out + $this->known = null; $inner = -$inner - 1; $element = $this->grammar[$inner]; if ($element instanceof Predicate) { @@ -393,6 +448,8 @@ private function concatenation(int $id, Concatenation $rule, bool $build, string } } + $this->known = null; + return $code; } @@ -412,23 +469,26 @@ private function alternation(int $id, Alternation $rule, bool $build, string $fa uasort($groups, static fn (array $a, array $b): int => count($b) <=> count($a)); + $known = $this->takeKnown(); $code = ''; if (count($groups) === 1) { - $code .= $this->attempts($lists[array_key_first($groups)], $build, $ok); + $code .= $this->attempts($lists[array_key_first($groups)], $build, $ok, $known); } else { $code .= "switch (\$this->ids[\$this->p]) {\n"; $first = true; foreach ($groups as $key => $tokens) { + $caseKnown = null; if ($first) { $code .= "\tdefault:\n"; $first = false; } else { + $caseKnown = array_fill_keys($tokens, true); foreach ($tokens as $token) { $code .= sprintf("\tcase %d:\n", $token); } } - $code .= self::indent($this->attempts($lists[$key], $build, $ok), 2) . "\t\tbreak;\n"; + $code .= self::indent($this->attempts($lists[$key], $build, $ok, $caseKnown), 2) . "\t\tbreak;\n"; } $code .= "}\n"; @@ -439,17 +499,25 @@ private function alternation(int $id, Alternation $rule, bool $build, string $fa /** * @param list $alternatives + * @param array|null $known the tokens the reading is known to + * be at, which it is at again whenever an alternative is given up */ - private function attempts(array $alternatives, bool $build, string $ok): string + private function attempts(array $alternatives, bool $build, string $ok, ?array $known): string { $code = ''; foreach ($alternatives as $inner) { + $this->known = null; if ($inner < 0) { // A token predicted by the very token the reading is at return $code . $this->push(-$inner - 1, $build) . "goto {$ok};\n"; } $tokens = $this->tokens($inner); + if ($tokens !== null && self::implied($known, $tokens[0])) { + // the alternative cannot fail, so nothing after it is tried + return $code . $this->read($inner, $build) . "goto {$ok};\n"; + } + if ($tokens !== null) { $code .= sprintf( "if (%s) {\n%s\tgoto %s;\n}\n\nif (\$this->p %s \$this->f) {\n\t\$this->rec(%d);\n}\n", @@ -463,15 +531,19 @@ private function attempts(array $alternatives, bool $build, string $ok): string } $next = 'n' . $this->unique(); + $this->known = $known; $read = $this->match($inner, $build, "goto {$next};") . "goto {$ok};\n"; $code .= $read . "{$next}:\n"; } + $this->known = null; + return $code; } private function repetition(Repetition $rule, bool $build, string $fail): string { + $this->known = null; $inner = $rule->ruleId; $min = $rule->min; $max = $rule->max; @@ -526,6 +598,7 @@ private function repetition(Repetition $rule, bool $build, string $fail): string private function optional(int $inner, bool $build): string { + $this->known = null; $tokens = $this->tokens($inner); if ($tokens !== null) { return sprintf( @@ -548,6 +621,7 @@ private function optional(int $inner, bool $build): string */ private function predicate(Predicate $rule, string $fail, bool $predicted = false): string { + $this->known = null; $inner = $rule->ruleId; $tokens = $this->start[$inner] ?? null; @@ -660,7 +734,9 @@ private function push(int $lexeme, bool $build): string $reducer = $this->reducers[$lexeme] ?? null; if ($reducer !== null) { return sprintf( - "\$this->v[\$this->n++] = \$this->%s(\$this->indexes[\$this->p], \$this->indexes[\$this->p]%s);\n\$this->p++;\n", + $reducer[2] + ? "\$this->%s(\$this->indexes[\$this->p], \$this->indexes[\$this->p]%s);\n\$this->p++;\n" + : "\$this->v[\$this->n++] = \$this->%s(\$this->indexes[\$this->p], \$this->indexes[\$this->p]%s);\n\$this->p++;\n", $reducer[0], $reducer[1] ? ', [$this->token($this->p)]' : '', ); diff --git a/tools/phplrt/build.php b/tools/phplrt/build.php index a0f01403..ed1c94a7 100644 --- a/tools/phplrt/build.php +++ b/tools/phplrt/build.php @@ -55,12 +55,15 @@ * reduce, along with whether they read what the rule contains. The source is * read rather than the class, which extends the very class written here. * - * @var array $reducers + * @var array $reducers */ $reducers = []; -preg_match_all('/function (reduce(\w+))\(([^)]*)\)/', file_get_contents(__DIR__ . '/../../src/Parser/AstBuilder.php'), $matches, PREG_SET_ORDER); -foreach ($matches as [, $method, $rule, $parameters]) { - $reducers[$rule] = [$method, strpos($parameters, '$children') !== false]; +preg_match_all('/function (reduce(\w+))\(([^)]*)\)(: \??\w+)?/', file_get_contents(__DIR__ . '/../../src/Parser/AstBuilder.php'), $matches, PREG_SET_ORDER); +foreach ($matches as $match) { + [, $method, $rule, $parameters] = $match; + // A reducer returning nothing builds nothing: the value of the rule is + // left out of the values of the rule around it + $reducers[$rule] = [$method, strpos($parameters, '$children') !== false, ($match[4] ?? '') === ': void']; } /** @var array $entrypoints */ @@ -302,7 +305,9 @@ function export($value): string $reducerIds[$id] = $reducer; $abstracts[] = $reducer[1] ? sprintf("\t/**\n\t * @param list \$children\n\t * @return mixed\n\t */\n\tabstract protected function %s(int \$begin, int \$end, \$children);\n", $reducer[0]) - : sprintf("\t/**\n\t * @return mixed\n\t */\n\tabstract protected function %s(int \$begin, int \$end);\n", $reducer[0]); + : ($reducer[2] + ? sprintf("\tabstract protected function %s(int \$begin, int \$end): void;\n", $reducer[0]) + : sprintf("\t/**\n\t * @return mixed\n\t */\n\tabstract protected function %s(int \$begin, int \$end);\n", $reducer[0])); } // The tokens no reducer reads: they are only what the other tokens are