Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 6374 |
|
0.00% |
0 / 243 |
CRAP | |
0.00% |
0 / 1 |
Grammar | |
0.00% |
0 / 6374 |
|
0.00% |
0 / 243 |
3461460 | |
0.00% |
0 / 1 |
load | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
6 | |||
withComments | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
setType | |
0.00% |
0 / 10 |
|
0.00% |
0 / 1 |
56 | |||
a0 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a1 | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 | |||
a2 | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
2 | |||
a3 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a4 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a5 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a6 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a7 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a8 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a9 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a10 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a11 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a12 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a13 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a14 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a15 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a16 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a17 | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 | |||
a18 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a19 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a20 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |||
a21 | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
2 | |||
a22 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a23 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a24 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a25 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a26 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a27 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a28 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a29 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a30 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a31 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a32 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a33 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a34 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a35 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a36 | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
a37 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a38 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a39 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a40 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a41 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a42 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a43 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a44 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a45 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a46 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a47 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a48 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a49 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a50 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a51 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a52 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a53 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a54 | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
a55 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a56 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a57 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a58 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a59 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a60 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a61 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a62 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a63 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a64 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a65 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a66 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a67 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a68 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a69 | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
2 | |||
a70 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a71 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a72 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a73 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a74 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a75 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a76 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a77 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a78 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a79 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a80 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
6 | |||
a81 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a82 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a83 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a84 | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
a85 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a86 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a87 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a88 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a89 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a90 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a91 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a92 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a93 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a94 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
6 | |||
a95 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
6 | |||
a96 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a97 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a98 | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
2 | |||
a99 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a100 | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
a101 | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
a102 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a103 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a104 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a105 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a106 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
a107 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |||
parsestart | |
0.00% |
0 / 16 |
|
0.00% |
0 / 1 |
20 | |||
discard_ | |
0.00% |
0 / 21 |
|
0.00% |
0 / 1 |
42 | |||
parseDefinitions | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
discardwhitespace | |
0.00% |
0 / 12 |
|
0.00% |
0 / 1 |
42 | |||
discardcomment | |
0.00% |
0 / 80 |
|
0.00% |
0 / 1 |
870 | |||
parseleadingComments | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
6 | |||
parseExtendedAttributeList | |
0.00% |
0 / 60 |
|
0.00% |
0 / 1 |
182 | |||
parseDefinition | |
0.00% |
0 / 20 |
|
0.00% |
0 / 1 |
56 | |||
discardeol | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
90 | |||
parseExtendedAttribute | |
0.00% |
0 / 18 |
|
0.00% |
0 / 1 |
42 | |||
parseExtendedAttributes | |
0.00% |
0 / 35 |
|
0.00% |
0 / 1 |
72 | |||
parseCallbackOrInterfaceOrMixin | |
0.00% |
0 / 48 |
|
0.00% |
0 / 1 |
182 | |||
parseNamespace | |
0.00% |
0 / 73 |
|
0.00% |
0 / 1 |
342 | |||
parsePartial | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
56 | |||
parseDictionary | |
0.00% |
0 / 78 |
|
0.00% |
0 / 1 |
380 | |||
parseEnum | |
0.00% |
0 / 73 |
|
0.00% |
0 / 1 |
342 | |||
parseTypedef | |
0.00% |
0 / 47 |
|
0.00% |
0 / 1 |
156 | |||
parseIncludesStatement | |
0.00% |
0 / 52 |
|
0.00% |
0 / 1 |
182 | |||
parseExtendedAttributeNoArgs | |
0.00% |
0 / 28 |
|
0.00% |
0 / 1 |
56 | |||
parseExtendedAttributeArgList | |
0.00% |
0 / 47 |
|
0.00% |
0 / 1 |
132 | |||
parseExtendedAttributeIdent | |
0.00% |
0 / 34 |
|
0.00% |
0 / 1 |
72 | |||
parseExtendedAttributeNamedArgList | |
0.00% |
0 / 70 |
|
0.00% |
0 / 1 |
272 | |||
discardSpecCompliantExtendedAttribute | |
0.00% |
0 / 133 |
|
0.00% |
0 / 1 |
1056 | |||
discardi_ | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
30 | |||
parseCallbackRestOrInterface | |
0.00% |
0 / 76 |
|
0.00% |
0 / 1 |
380 | |||
parseInterfaceOrMixin | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
6 | |||
parseidentifier | |
0.00% |
0 / 87 |
|
0.00% |
0 / 1 |
600 | |||
parseNamespaceMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parsePartialDefinition | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
72 | |||
parseInheritance | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
56 | |||
parseDictionaryMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parseEnumValueList | |
0.00% |
0 / 21 |
|
0.00% |
0 / 1 |
30 | |||
parseTypeWithExtendedAttributes | |
0.00% |
0 / 16 |
|
0.00% |
0 / 1 |
20 | |||
parseArgumentList | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
30 | |||
parseExtendedAttributeRHS | |
0.00% |
0 / 407 |
|
0.00% |
0 / 1 |
6642 | |||
discardExtendedAttributeInner | |
0.00% |
0 / 132 |
|
0.00% |
0 / 1 |
992 | |||
discardExtendedAttributeRest | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
discardOther | |
0.00% |
0 / 43 |
|
0.00% |
0 / 1 |
156 | |||
parse_ | |
0.00% |
0 / 21 |
|
0.00% |
0 / 1 |
42 | |||
parseCallbackRest | |
0.00% |
0 / 78 |
|
0.00% |
0 / 1 |
342 | |||
parseCallbackInterfaceMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parseInterfaceRest | |
0.00% |
0 / 65 |
|
0.00% |
0 / 1 |
240 | |||
parseMixinRest | |
0.00% |
0 / 73 |
|
0.00% |
0 / 1 |
342 | |||
discardArgumentNameKeyword | |
0.00% |
0 / 184 |
|
0.00% |
0 / 1 |
6806 | |||
discardBufferRelatedType | |
0.00% |
0 / 83 |
|
0.00% |
0 / 1 |
1406 | |||
discardOtherIdLike | |
0.00% |
0 / 185 |
|
0.00% |
0 / 1 |
7832 | |||
parseNamespaceMember | |
0.00% |
0 / 27 |
|
0.00% |
0 / 1 |
72 | |||
parsePartialInterfaceOrPartialMixin | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
6 | |||
parsePartialDictionary | |
0.00% |
0 / 73 |
|
0.00% |
0 / 1 |
342 | |||
parseDictionaryMemberRest | |
0.00% |
0 / 86 |
|
0.00% |
0 / 1 |
420 | |||
parsestring | |
0.00% |
0 / 36 |
|
0.00% |
0 / 1 |
132 | |||
parseEnumValueListComma | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
56 | |||
parseType | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
30 | |||
parseArgument | |
0.00% |
0 / 16 |
|
0.00% |
0 / 1 |
20 | |||
parseArguments | |
0.00% |
0 / 35 |
|
0.00% |
0 / 1 |
72 | |||
discardstring | |
0.00% |
0 / 36 |
|
0.00% |
0 / 1 |
132 | |||
discardinteger | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
42 | |||
discarddecimal | |
0.00% |
0 / 161 |
|
0.00% |
0 / 1 |
2862 | |||
discardOtherOrComma | |
0.00% |
0 / 18 |
|
0.00% |
0 / 1 |
30 | |||
discardidentifier | |
0.00% |
0 / 87 |
|
0.00% |
0 / 1 |
600 | |||
discardotherchar | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
42 | |||
discardotherterminals | |
0.00% |
0 / 60 |
|
0.00% |
0 / 1 |
552 | |||
parseCallbackInterfaceMember | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
6 | |||
parseInterfaceMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parsec_ | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
90 | |||
parseMixinMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parseRegularOperation | |
0.00% |
0 / 16 |
|
0.00% |
0 / 1 |
20 | |||
parseAttributeRest | |
0.00% |
0 / 42 |
|
0.00% |
0 / 1 |
132 | |||
parsePartialInterfaceRest | |
0.00% |
0 / 60 |
|
0.00% |
0 / 1 |
210 | |||
parseDefault | |
0.00% |
0 / 25 |
|
0.00% |
0 / 1 |
42 | |||
parseEnumValueListString | |
0.00% |
0 / 27 |
|
0.00% |
0 / 1 |
42 | |||
parseSingleType | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
12 | |||
parseUnionType | |
0.00% |
0 / 69 |
|
0.00% |
0 / 1 |
342 | |||
parseNull | |
0.00% |
0 / 20 |
|
0.00% |
0 / 1 |
30 | |||
parseArgumentRest | |
0.00% |
0 / 55 |
|
0.00% |
0 / 1 |
182 | |||
parseopt_minus | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
20 | |||
parsedecimal_integer | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
90 | |||
parsehex_integer | |
0.00% |
0 / 36 |
|
0.00% |
0 / 1 |
182 | |||
parseoctal_integer | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
90 | |||
parseConst | |
0.00% |
0 / 65 |
|
0.00% |
0 / 1 |
272 | |||
parseInterfaceMember | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
6 | |||
parseMixinMember | |
0.00% |
0 / 25 |
|
0.00% |
0 / 1 |
56 | |||
parseOperationRest | |
0.00% |
0 / 55 |
|
0.00% |
0 / 1 |
182 | |||
parseAttributeName | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
30 | |||
parsePartialInterfaceMembers | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
42 | |||
parseDefaultValue | |
0.00% |
0 / 102 |
|
0.00% |
0 / 1 |
600 | |||
parseDistinguishableType | |
0.00% |
0 / 143 |
|
0.00% |
0 / 1 |
1560 | |||
parseAnyType | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
42 | |||
parsePromiseType | |
0.00% |
0 / 50 |
|
0.00% |
0 / 1 |
182 | |||
parseUnionMemberType | |
0.00% |
0 / 32 |
|
0.00% |
0 / 1 |
56 | |||
parseArgumentName | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
30 | |||
parseEllipsis | |
0.00% |
0 / 17 |
|
0.00% |
0 / 1 |
42 | |||
parseConstType | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
30 | |||
parseConstValue | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
12 | |||
parsePartialInterfaceMember | |
0.00% |
0 / 32 |
|
0.00% |
0 / 1 |
132 | |||
parseConstructor | |
0.00% |
0 / 63 |
|
0.00% |
0 / 1 |
272 | |||
parseStringifier | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
56 | |||
parseOptionalReadOnly | |
0.00% |
0 / 20 |
|
0.00% |
0 / 1 |
42 | |||
parseOptionalOperationName | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
parseAttributeNameKeyword | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
110 | |||
parsePrimitiveType | |
0.00% |
0 / 53 |
|
0.00% |
0 / 1 |
462 | |||
parseStringType | |
0.00% |
0 / 35 |
|
0.00% |
0 / 1 |
182 | |||
parseBufferRelatedType | |
0.00% |
0 / 83 |
|
0.00% |
0 / 1 |
1406 | |||
parseRecordType | |
0.00% |
0 / 68 |
|
0.00% |
0 / 1 |
306 | |||
parseArgumentNameKeyword | |
0.00% |
0 / 184 |
|
0.00% |
0 / 1 |
6806 | |||
parseBooleanLiteral | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
110 | |||
parseFloatLiteral | |
0.00% |
0 / 76 |
|
0.00% |
0 / 1 |
380 | |||
parseIntLiteral | |
0.00% |
0 / 20 |
|
0.00% |
0 / 1 |
20 | |||
parseOperation | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
6 | |||
parseStaticMember | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
56 | |||
parseIterable | |
0.00% |
0 / 68 |
|
0.00% |
0 / 1 |
306 | |||
parseAsyncIterable | |
0.00% |
0 / 86 |
|
0.00% |
0 / 1 |
506 | |||
parseReadOnlyMember | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
56 | |||
parseMaplikeRest | |
0.00% |
0 / 81 |
|
0.00% |
0 / 1 |
420 | |||
parseSetlikeRest | |
0.00% |
0 / 63 |
|
0.00% |
0 / 1 |
272 | |||
parseInheritAttribute | |
0.00% |
0 / 24 |
|
0.00% |
0 / 1 |
56 | |||
parseStringifierRest | |
0.00% |
0 / 38 |
|
0.00% |
0 / 1 |
90 | |||
parseOperationName | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
30 | |||
parseUnsignedIntegerType | |
0.00% |
0 / 26 |
|
0.00% |
0 / 1 |
56 | |||
parseUnrestrictedFloatType | |
0.00% |
0 / 26 |
|
0.00% |
0 / 1 |
56 | |||
parseinteger | |
0.00% |
0 / 22 |
|
0.00% |
0 / 1 |
42 | |||
parseSpecialOperation | |
0.00% |
0 / 16 |
|
0.00% |
0 / 1 |
20 | |||
parseStaticMemberRest | |
0.00% |
0 / 18 |
|
0.00% |
0 / 1 |
20 | |||
parseOptionalType | |
0.00% |
0 / 25 |
|
0.00% |
0 / 1 |
42 | |||
parseOptionalArgumentList | |
0.00% |
0 / 38 |
|
0.00% |
0 / 1 |
90 | |||
parseReadOnlyMemberRest | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
12 | |||
parseOperationNameKeyword | |
0.00% |
0 / 19 |
|
0.00% |
0 / 1 |
42 | |||
parseIntegerType | |
0.00% |
0 / 57 |
|
0.00% |
0 / 1 |
272 | |||
parseFloatType | |
0.00% |
0 / 29 |
|
0.00% |
0 / 1 |
110 | |||
parseSpecial | |
0.00% |
0 / 35 |
|
0.00% |
0 / 1 |
182 | |||
parsei_ | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
30 | |||
parse | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
110 |
1 | <?php |
2 | /* |
3 | * Generated by WikiPEG |
4 | */ |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | /* File-scope initializer */ |
11 | namespace Wikimedia\WebIDL; |
12 | |
13 | |
14 | class Grammar extends \Wikimedia\WikiPEG\PEGParserBase { |
15 | // initializer |
16 | |
17 | /** @var string */ |
18 | private $filename = ''; |
19 | /** @var int */ |
20 | private $lineNum = 1; |
21 | /** @var bool */ |
22 | private $keepComments = true; |
23 | /** @var string[]|null */ |
24 | private $lastComments = null; |
25 | /** @var ?string */ |
26 | private $lastWS = null; |
27 | |
28 | /** |
29 | * @param string $contents |
30 | * @param array $options |
31 | * @return array |
32 | */ |
33 | public static function load( string $contents, array $options = [] ) { |
34 | $g = new Grammar(); |
35 | $g->filename = $options['sourceName'] ?? "<unknown>"; |
36 | $g->keepComments = $options['keepComments'] ?? true; |
37 | $ast = $g->parse( $contents ); |
38 | if ( $options['concrete'] ?? false ) { |
39 | $ast[] = [ |
40 | 'type' => 'eof', |
41 | 'value' => '', |
42 | 'trivia' => $g->lastWS ?? '' |
43 | ]; |
44 | } |
45 | return $ast; |
46 | } |
47 | |
48 | private function withComments( $ast ) { |
49 | if ( !$this->keepComments ) { |
50 | unset( $ast['leadingComments'] ); |
51 | unset( $ast['trailingComments'] ); |
52 | } |
53 | return $ast; |
54 | } |
55 | |
56 | private static $basicType = [ |
57 | 'type' => null, |
58 | 'extAttrs' => [], |
59 | 'generic' => '', |
60 | 'nullable' => false, |
61 | 'union' => false, |
62 | 'idlType' => null, |
63 | ]; |
64 | |
65 | private static $basicExtAttr = [ |
66 | 'type' => 'extended-attribute', |
67 | 'name' => null, |
68 | 'arguments' => [], |
69 | 'rhs' => null, |
70 | ]; |
71 | |
72 | private static function setType(array &$t, string $val): array { |
73 | if ( ($t['type'] ?? null) !== null) { |
74 | return $t; |
75 | } |
76 | $t['type'] = $val; |
77 | if (is_array($t['idlType'] ?? null)) { |
78 | if ($t['generic'] === '' && $t['union'] === false) { |
79 | self::setType($t['idlType'], $val); |
80 | } else if ($t['union'] === false) { |
81 | foreach ($t['idlType'] as &$tt) { |
82 | self::setType($tt, $val); |
83 | } |
84 | } |
85 | } |
86 | return $t; |
87 | } |
88 | |
89 | |
90 | // cache init |
91 | |
92 | |
93 | // expectations |
94 | protected $expectations = [ |
95 | 0 => ["type" => "end", "description" => "end of input"], |
96 | 1 => ["type" => "class", "value" => "[\\t ]", "description" => "[\\t ]"], |
97 | 2 => ["type" => "literal", "value" => "//", "description" => "\"//\""], |
98 | 3 => ["type" => "class", "value" => "[^\\n\\r]", "description" => "[^\\n\\r]"], |
99 | 4 => ["type" => "literal", "value" => "/*", "description" => "\"/*\""], |
100 | 5 => ["type" => "class", "value" => "[^\\n\\r*]", "description" => "[^\\n\\r*]"], |
101 | 6 => ["type" => "literal", "value" => "*", "description" => "\"*\""], |
102 | 7 => ["type" => "literal", "value" => "*/", "description" => "\"*/\""], |
103 | 8 => ["type" => "literal", "value" => "[", "description" => "\"[\""], |
104 | 9 => ["type" => "literal", "value" => "]", "description" => "\"]\""], |
105 | 10 => ["type" => "literal", "value" => "\x0a", "description" => "\"\\n\""], |
106 | 11 => ["type" => "literal", "value" => "\x0d\x0a", "description" => "\"\\r\\n\""], |
107 | 12 => ["type" => "literal", "value" => "\x0d", "description" => "\"\\r\""], |
108 | 13 => ["type" => "literal", "value" => ",", "description" => "\",\""], |
109 | 14 => ["type" => "literal", "value" => "callback", "description" => "\"callback\""], |
110 | 15 => ["type" => "literal", "value" => "interface", "description" => "\"interface\""], |
111 | 16 => ["type" => "literal", "value" => "namespace", "description" => "\"namespace\""], |
112 | 17 => ["type" => "literal", "value" => "{", "description" => "\"{\""], |
113 | 18 => ["type" => "literal", "value" => "}", "description" => "\"}\""], |
114 | 19 => ["type" => "literal", "value" => ";", "description" => "\";\""], |
115 | 20 => ["type" => "literal", "value" => "partial", "description" => "\"partial\""], |
116 | 21 => ["type" => "literal", "value" => "dictionary", "description" => "\"dictionary\""], |
117 | 22 => ["type" => "literal", "value" => "enum", "description" => "\"enum\""], |
118 | 23 => ["type" => "literal", "value" => "typedef", "description" => "\"typedef\""], |
119 | 24 => ["type" => "literal", "value" => "includes", "description" => "\"includes\""], |
120 | 25 => ["type" => "literal", "value" => "(", "description" => "\"(\""], |
121 | 26 => ["type" => "literal", "value" => ")", "description" => "\")\""], |
122 | 27 => ["type" => "literal", "value" => "=", "description" => "\"=\""], |
123 | 28 => ["type" => "class", "value" => "[-_]", "description" => "[-_]"], |
124 | 29 => ["type" => "class", "value" => "[A-Za-z]", "description" => "[A-Za-z]"], |
125 | 30 => ["type" => "class", "value" => "[-_0-9A-Za-z]", "description" => "[-_0-9A-Za-z]"], |
126 | 31 => ["type" => "literal", "value" => ":", "description" => "\":\""], |
127 | 32 => ["type" => "literal", "value" => "mixin", "description" => "\"mixin\""], |
128 | 33 => ["type" => "literal", "value" => "async", "description" => "\"async\""], |
129 | 34 => ["type" => "literal", "value" => "attribute", "description" => "\"attribute\""], |
130 | 35 => ["type" => "literal", "value" => "const", "description" => "\"const\""], |
131 | 36 => ["type" => "literal", "value" => "constructor", "description" => "\"constructor\""], |
132 | 37 => ["type" => "literal", "value" => "deleter", "description" => "\"deleter\""], |
133 | 38 => ["type" => "literal", "value" => "getter", "description" => "\"getter\""], |
134 | 39 => ["type" => "literal", "value" => "inherit", "description" => "\"inherit\""], |
135 | 40 => ["type" => "literal", "value" => "iterable", "description" => "\"iterable\""], |
136 | 41 => ["type" => "literal", "value" => "maplike", "description" => "\"maplike\""], |
137 | 42 => ["type" => "literal", "value" => "readonly", "description" => "\"readonly\""], |
138 | 43 => ["type" => "literal", "value" => "required", "description" => "\"required\""], |
139 | 44 => ["type" => "literal", "value" => "setlike", "description" => "\"setlike\""], |
140 | 45 => ["type" => "literal", "value" => "setter", "description" => "\"setter\""], |
141 | 46 => ["type" => "literal", "value" => "static", "description" => "\"static\""], |
142 | 47 => ["type" => "literal", "value" => "stringifier", "description" => "\"stringifier\""], |
143 | 48 => ["type" => "literal", "value" => "unrestricted", "description" => "\"unrestricted\""], |
144 | 49 => ["type" => "literal", "value" => "ArrayBuffer", "description" => "\"ArrayBuffer\""], |
145 | 50 => ["type" => "literal", "value" => "DataView", "description" => "\"DataView\""], |
146 | 51 => ["type" => "literal", "value" => "Int8Array", "description" => "\"Int8Array\""], |
147 | 52 => ["type" => "literal", "value" => "Int16Array", "description" => "\"Int16Array\""], |
148 | 53 => ["type" => "literal", "value" => "Int32Array", "description" => "\"Int32Array\""], |
149 | 54 => ["type" => "literal", "value" => "Uint8Array", "description" => "\"Uint8Array\""], |
150 | 55 => ["type" => "literal", "value" => "Uint16Array", "description" => "\"Uint16Array\""], |
151 | 56 => ["type" => "literal", "value" => "Uint32Array", "description" => "\"Uint32Array\""], |
152 | 57 => ["type" => "literal", "value" => "Uint8ClampedArray", "description" => "\"Uint8ClampedArray\""], |
153 | 58 => ["type" => "literal", "value" => "Float32Array", "description" => "\"Float32Array\""], |
154 | 59 => ["type" => "literal", "value" => "Float64Array", "description" => "\"Float64Array\""], |
155 | 60 => ["type" => "literal", "value" => "ByteString", "description" => "\"ByteString\""], |
156 | 61 => ["type" => "literal", "value" => "DOMString", "description" => "\"DOMString\""], |
157 | 62 => ["type" => "literal", "value" => "FrozenArray", "description" => "\"FrozenArray\""], |
158 | 63 => ["type" => "literal", "value" => "Infinity", "description" => "\"Infinity\""], |
159 | 64 => ["type" => "literal", "value" => "NaN", "description" => "\"NaN\""], |
160 | 65 => ["type" => "literal", "value" => "ObservableArray", "description" => "\"ObservableArray\""], |
161 | 66 => ["type" => "literal", "value" => "Promise", "description" => "\"Promise\""], |
162 | 67 => ["type" => "literal", "value" => "USVString", "description" => "\"USVString\""], |
163 | 68 => ["type" => "literal", "value" => "any", "description" => "\"any\""], |
164 | 69 => ["type" => "literal", "value" => "bigint", "description" => "\"bigint\""], |
165 | 70 => ["type" => "literal", "value" => "boolean", "description" => "\"boolean\""], |
166 | 71 => ["type" => "literal", "value" => "byte", "description" => "\"byte\""], |
167 | 72 => ["type" => "literal", "value" => "double", "description" => "\"double\""], |
168 | 73 => ["type" => "literal", "value" => "false", "description" => "\"false\""], |
169 | 74 => ["type" => "literal", "value" => "float", "description" => "\"float\""], |
170 | 75 => ["type" => "literal", "value" => "long", "description" => "\"long\""], |
171 | 76 => ["type" => "literal", "value" => "null", "description" => "\"null\""], |
172 | 77 => ["type" => "literal", "value" => "object", "description" => "\"object\""], |
173 | 78 => ["type" => "literal", "value" => "octet", "description" => "\"octet\""], |
174 | 79 => ["type" => "literal", "value" => "or", "description" => "\"or\""], |
175 | 80 => ["type" => "literal", "value" => "optional", "description" => "\"optional\""], |
176 | 81 => ["type" => "literal", "value" => "record", "description" => "\"record\""], |
177 | 82 => ["type" => "literal", "value" => "sequence", "description" => "\"sequence\""], |
178 | 83 => ["type" => "literal", "value" => "short", "description" => "\"short\""], |
179 | 84 => ["type" => "literal", "value" => "symbol", "description" => "\"symbol\""], |
180 | 85 => ["type" => "literal", "value" => "true", "description" => "\"true\""], |
181 | 86 => ["type" => "literal", "value" => "unsigned", "description" => "\"unsigned\""], |
182 | 87 => ["type" => "literal", "value" => "undefined", "description" => "\"undefined\""], |
183 | 88 => ["type" => "literal", "value" => "\"", "description" => "\"\\\"\""], |
184 | 89 => ["type" => "class", "value" => "[^\\\"]", "description" => "[^\\\"]"], |
185 | 90 => ["type" => "class", "value" => "[0-9]", "description" => "[0-9]"], |
186 | 91 => ["type" => "literal", "value" => ".", "description" => "\".\""], |
187 | 92 => ["type" => "class", "value" => "[Ee]", "description" => "[Ee]"], |
188 | 93 => ["type" => "class", "value" => "[+-]", "description" => "[+-]"], |
189 | 94 => ["type" => "class", "value" => "[^\\t\\n\\r 0-9A-Za-z]", "description" => "[^\\t\\n\\r 0-9A-Za-z]"], |
190 | 95 => ["type" => "literal", "value" => "-", "description" => "\"-\""], |
191 | 96 => ["type" => "literal", "value" => "-Infinity", "description" => "\"-Infinity\""], |
192 | 97 => ["type" => "literal", "value" => "...", "description" => "\"...\""], |
193 | 98 => ["type" => "literal", "value" => "<", "description" => "\"<\""], |
194 | 99 => ["type" => "literal", "value" => ">", "description" => "\">\""], |
195 | 100 => ["type" => "literal", "value" => "?", "description" => "\"?\""], |
196 | 101 => ["type" => "class", "value" => "[ \\t]", "description" => "[ \\t]"], |
197 | 102 => ["type" => "class", "value" => "[1-9]", "description" => "[1-9]"], |
198 | 103 => ["type" => "literal", "value" => "0x", "description" => "\"0x\""], |
199 | 104 => ["type" => "literal", "value" => "0X", "description" => "\"0X\""], |
200 | 105 => ["type" => "class", "value" => "[0-9A-Fa-f]", "description" => "[0-9A-Fa-f]"], |
201 | 106 => ["type" => "literal", "value" => "0", "description" => "\"0\""], |
202 | 107 => ["type" => "class", "value" => "[0-7]", "description" => "[0-7]"], |
203 | ]; |
204 | |
205 | // actions |
206 | private function a0($d) { |
207 | return $d; |
208 | } |
209 | private function a1($r) { |
210 | |
211 | $c = array_values(array_filter($r, function($v) { return $v[0] === '/'; })); |
212 | $this->lastComments = $c; |
213 | $this->lastWS = implode( '', $r ); |
214 | return $c; |
215 | |
216 | } |
217 | private function a2($c, $e, $d) { |
218 | |
219 | $d['extAttrs'] = $e; |
220 | $d['leadingComments'] = $c; |
221 | return $this->withComments($d); |
222 | |
223 | } |
224 | private function a3() { |
225 | |
226 | $r = $this->lastComments; $this->lastComments = null; return $r; |
227 | |
228 | } |
229 | private function a4($e, $rest) { |
230 | array_unshift($rest, $e); return $rest; |
231 | } |
232 | private function a5() { |
233 | return []; |
234 | } |
235 | private function a6($nl) { |
236 | $this->lineNum++; return $nl; |
237 | } |
238 | private function a7($c) { |
239 | return $c; |
240 | } |
241 | private function a8($im) { |
242 | return $im; |
243 | } |
244 | private function a9($name, $m) { |
245 | |
246 | return [ |
247 | 'type' => 'namespace', |
248 | 'name' => $name, |
249 | 'inheritance' => null, |
250 | 'partial' => false, |
251 | 'members' => $m, |
252 | ]; |
253 | |
254 | } |
255 | private function a10($p) { |
256 | |
257 | $p['partial'] = true; return $p; |
258 | |
259 | } |
260 | private function a11($name, $inh, $m) { |
261 | |
262 | return [ |
263 | 'type' => 'dictionary', |
264 | 'name' => $name, |
265 | 'partial' => false, |
266 | 'members' => $m, |
267 | 'inheritance' => $inh, |
268 | ]; |
269 | |
270 | } |
271 | private function a12($name, $vals) { |
272 | |
273 | return [ |
274 | 'type' => 'enum', |
275 | 'name' => $name, |
276 | 'values' => $vals, |
277 | ]; |
278 | |
279 | } |
280 | private function a13($t, $name) { |
281 | |
282 | return [ |
283 | 'type' => 'typedef', |
284 | 'name' => $name, |
285 | 'idlType' => self::setType($t, 'typedef-type'), |
286 | ]; |
287 | |
288 | } |
289 | private function a14($target, $incl) { |
290 | |
291 | return [ |
292 | 'type' => 'includes', |
293 | 'target' => $target, |
294 | 'includes' => $incl, |
295 | ]; |
296 | |
297 | } |
298 | private function a15($name) { |
299 | |
300 | return [ 'name' => $name ] + self::$basicExtAttr; |
301 | |
302 | } |
303 | private function a16($name, $args) { |
304 | |
305 | return [ 'name' => $name, 'arguments' => $args ] + self::$basicExtAttr; |
306 | |
307 | } |
308 | private function a17($name, $rhs) { |
309 | |
310 | return [ |
311 | 'name' => $name, |
312 | 'rhs' => $rhs, |
313 | ] + self::$basicExtAttr; |
314 | |
315 | } |
316 | private function a18($name, $rhs, $args) { |
317 | |
318 | return [ |
319 | 'name' => $name, |
320 | 'arguments' => $args, |
321 | 'rhs' => [ 'type' => 'identifier', 'value' => $rhs ], |
322 | ] + self::$basicExtAttr; |
323 | |
324 | } |
325 | private function a19($name, $m) { |
326 | |
327 | return [ |
328 | 'type' => 'callback interface', |
329 | 'name' => $name, |
330 | 'inheritance' => null, |
331 | 'members' => $m, |
332 | 'partial' => false, |
333 | ]; |
334 | |
335 | } |
336 | private function a20($s) { |
337 | |
338 | return $s[0] == "_" ? substr($s, 1) : $s ; |
339 | |
340 | } |
341 | private function a21($c, $e, $m) { |
342 | |
343 | $m['extAttrs'] = $e; |
344 | $m['leadingComments'] = $c; |
345 | return $this->withComments( $m ); |
346 | |
347 | } |
348 | private function a22($p) { |
349 | return $p; |
350 | } |
351 | private function a23($name) { |
352 | return $name; |
353 | } |
354 | private function a24($s, $vals) { |
355 | |
356 | array_unshift( $vals, [ |
357 | 'type' => 'enum-value', |
358 | 'value' => $s, |
359 | ] ); |
360 | return $vals; |
361 | |
362 | } |
363 | private function a25($e, $t) { |
364 | |
365 | $t['extAttrs'] = $e; return $t; |
366 | |
367 | } |
368 | private function a26($a, $rest) { |
369 | array_unshift($rest, $a); return $rest; |
370 | } |
371 | private function a27($rhs) { |
372 | |
373 | return [ 'type' => 'identifier', 'value' => $rhs ]; |
374 | |
375 | } |
376 | private function a28($s, $s2) { |
377 | return $s2; |
378 | } |
379 | private function a29($s, $rest) { |
380 | |
381 | array_unshift($rest, $s); |
382 | $val = array_map(function($item) { |
383 | return [ 'value' => $item ]; |
384 | }, $rest); |
385 | return [ 'type' => 'identifier-list', 'value' => $val ]; |
386 | |
387 | } |
388 | private function a30($s) { |
389 | |
390 | return [ 'type' => 'string', 'value' => $s ]; |
391 | |
392 | } |
393 | private function a31($s, $rest) { |
394 | |
395 | array_unshift($rest, $s); |
396 | $val = array_map(function($item) { |
397 | return [ 'value' => $item ]; |
398 | }, $rest); |
399 | return [ 'type' => 'string-list', 'value' => $val ]; |
400 | |
401 | } |
402 | private function a32($s) { |
403 | |
404 | return [ 'type' => 'integer', 'value' => $s ]; |
405 | |
406 | } |
407 | private function a33($s, $rest) { |
408 | |
409 | array_unshift($rest, $s); |
410 | $val = array_map(function($item) { |
411 | return [ 'value' => $item ]; |
412 | }, $rest); |
413 | return [ 'type' => 'integer-list', 'value' => $val ]; |
414 | |
415 | } |
416 | private function a34($s) { |
417 | |
418 | return [ 'type' => 'decimal', 'value' => $s ]; |
419 | |
420 | } |
421 | private function a35($s, $rest) { |
422 | |
423 | array_unshift($rest, $s); |
424 | $val = array_map(function($item) { |
425 | return [ 'value' => $item ]; |
426 | }, $rest); |
427 | return [ 'type' => 'decimal-list', 'value' => $val ]; |
428 | |
429 | } |
430 | private function a36($name, $t, $args) { |
431 | |
432 | return [ |
433 | 'type' => 'callback', |
434 | 'name' => $name, |
435 | 'idlType' => self::setType($t, 'return-type'), |
436 | 'arguments' => $args, |
437 | ]; |
438 | |
439 | } |
440 | private function a37($name, $inh, $m, $c) { |
441 | |
442 | return $this->withComments( [ |
443 | 'type' => 'interface', |
444 | 'name' => $name, |
445 | 'inheritance' => $inh, |
446 | 'members' => $m, |
447 | 'partial' => false, |
448 | 'trailingComments' => $c, |
449 | ] ); |
450 | |
451 | } |
452 | private function a38($name, $m) { |
453 | |
454 | return [ |
455 | 'type' => 'interface mixin', |
456 | 'name' => $name, |
457 | 'inheritance' => null, |
458 | 'partial' => false, |
459 | 'members' => $m, |
460 | ]; |
461 | |
462 | } |
463 | private function a39($k) { |
464 | return $k; |
465 | } |
466 | private function a40($s) { |
467 | return $s; |
468 | } |
469 | private function a41($a) { |
470 | $a['readonly'] = true; return $a; |
471 | } |
472 | private function a42($name, $m) { |
473 | |
474 | return [ |
475 | 'type' => 'dictionary', |
476 | 'name' => $name, |
477 | 'partial' => true, |
478 | 'members' => $m, |
479 | 'inheritance' => null, |
480 | ]; |
481 | |
482 | } |
483 | private function a43($t, $name) { |
484 | |
485 | return [ |
486 | 'type' => 'field', |
487 | 'name' => $name, |
488 | 'required' => true, |
489 | 'idlType' => self::setType($t, 'dictionary-type'), |
490 | 'default' => null, |
491 | ]; |
492 | |
493 | } |
494 | private function a44($t, $name, $d) { |
495 | |
496 | return [ |
497 | 'type' => 'field', |
498 | 'name' => $name, |
499 | 'required' => false, |
500 | 'idlType' => self::setType($t, 'dictionary-type'), |
501 | 'default' => $d |
502 | ]; |
503 | |
504 | } |
505 | private function a45($vals) { |
506 | return $vals; |
507 | } |
508 | private function a46($t, $n) { |
509 | $t['nullable'] = ($n !== null); return $t; |
510 | } |
511 | private function a47($e, $a) { |
512 | |
513 | $a['extAttrs'] = $e; return $a; |
514 | |
515 | } |
516 | private function a48($m, $n) { |
517 | |
518 | return $m * $n; |
519 | |
520 | } |
521 | private function a49($s) { |
522 | return floatval( $s ); |
523 | } |
524 | private function a50() { |
525 | return null; |
526 | } |
527 | private function a51($r) { |
528 | |
529 | return array_values(array_filter($r, function($v) { return $v !== null; })); |
530 | |
531 | } |
532 | private function a52($t, $o) { |
533 | |
534 | $o['idlType'] = self::setType($t, 'return-type'); |
535 | return $o; |
536 | |
537 | } |
538 | private function a53($t, $name, $c) { |
539 | |
540 | return $this->withComments( [ |
541 | 'type' => 'attribute', |
542 | 'name' => $name, |
543 | 'special' => '', |
544 | 'readonly' => false, |
545 | 'idlType' => self::setType($t, 'attribute-type'), |
546 | 'trailingComments' => $c, |
547 | ] ); |
548 | |
549 | } |
550 | private function a54($name, $m) { |
551 | |
552 | return [ |
553 | 'type' => 'interface', |
554 | 'name' => $name, |
555 | 'inheritance' => null, |
556 | 'members' => $m, |
557 | ]; |
558 | |
559 | } |
560 | private function a55($val) { |
561 | return $val; |
562 | } |
563 | private function a56($s, $vals) { |
564 | |
565 | array_unshift( $vals, [ |
566 | 'type' => 'enum-value', |
567 | 'value' => $s, |
568 | ] ); |
569 | return $vals; |
570 | |
571 | } |
572 | private function a57($t, $t2) { |
573 | return $t2; |
574 | } |
575 | private function a58($t, $rest) { |
576 | |
577 | array_unshift($rest, $t); |
578 | return [ 'idlType' => $rest, 'union' => true ] + self::$basicType; |
579 | |
580 | } |
581 | private function a59() { |
582 | return true; |
583 | } |
584 | private function a60($t, $name, $d) { |
585 | |
586 | return [ |
587 | 'type' => 'argument', |
588 | 'default' => $d, |
589 | 'optional' => true, |
590 | 'variadic' => false, |
591 | 'idlType' => self::setType($t, 'argument-type'), |
592 | 'name' => $name, |
593 | ]; |
594 | |
595 | } |
596 | private function a61($t, $e, $name) { |
597 | |
598 | return [ |
599 | 'type' => 'argument', |
600 | 'default' => null, |
601 | 'optional' => false, |
602 | 'variadic' => ($e !== null), |
603 | 'idlType' => self::setType($t, 'argument-type'), |
604 | 'name' => $name, |
605 | ]; |
606 | |
607 | } |
608 | private function a62() { |
609 | return -1; |
610 | } |
611 | private function a63() { |
612 | return 1; |
613 | } |
614 | private function a64($s) { |
615 | return intval($s); |
616 | } |
617 | private function a65($s) { |
618 | return hexdec($s); |
619 | } |
620 | private function a66($s) { |
621 | return octdec( $s ); |
622 | } |
623 | private function a67($t, $name, $v, $c) { |
624 | |
625 | return $this->withComments( [ |
626 | 'type' => 'const', |
627 | 'idlType' => $t, |
628 | 'name' => $name, |
629 | 'value' => $v, |
630 | 'trailingComments' => $c, |
631 | ] ); |
632 | |
633 | } |
634 | private function a68($ro, $a) { |
635 | |
636 | $a['readonly'] = ($ro !== null); |
637 | return $a; |
638 | |
639 | } |
640 | private function a69($name, $args, $c) { |
641 | |
642 | return $this->withComments( [ |
643 | 'type' => 'operation', |
644 | 'special' => '', |
645 | 'idlType' => null, |
646 | 'name' => $name, |
647 | 'arguments' => $args, |
648 | 'extAttrs' => null, |
649 | 'trailingComments' => $c, |
650 | ] ); |
651 | |
652 | } |
653 | private function a70($id) { |
654 | return $id; |
655 | } |
656 | private function a71($s) { |
657 | return [ 'type' => 'string', 'value' => $s ]; |
658 | } |
659 | private function a72() { |
660 | return [ 'type' => 'sequence', 'value' => [] ]; |
661 | } |
662 | private function a73() { |
663 | return [ 'type' => 'dictionary' ]; |
664 | } |
665 | private function a74() { |
666 | return [ 'type' => 'null' ]; |
667 | } |
668 | private function a75($t) { |
669 | |
670 | return [ 'idlType' => $t ] + self::$basicType; |
671 | |
672 | } |
673 | private function a76($g, $t) { |
674 | |
675 | return [ 'idlType' => [$t], 'generic' => $g ] + self::$basicType; |
676 | |
677 | } |
678 | private function a77($t) { |
679 | |
680 | return [ 'idlType' => $t ] + self::$basicType; |
681 | |
682 | } |
683 | private function a78($dt, $n) { |
684 | $dt['nullable'] = ($n !== null); return $dt; |
685 | } |
686 | private function a79() { |
687 | |
688 | return [ 'idlType' => 'any' ] + self::$basicType; |
689 | |
690 | } |
691 | private function a80($t) { |
692 | |
693 | if ( $t['idlType'] === 'void' ) { $t['type'] = 'return-type'; } |
694 | return [ 'idlType' => [$t], 'generic' => 'Promise' ] + self::$basicType; |
695 | |
696 | } |
697 | private function a81($t, $n) { |
698 | |
699 | $t['nullable'] = ($n !== null); return $t; |
700 | |
701 | } |
702 | private function a82($name) { |
703 | return $name; |
704 | } |
705 | private function a83($t) { |
706 | |
707 | return [ 'type' => 'const-type', 'idlType' => $t ] + self::$basicType; |
708 | |
709 | } |
710 | private function a84($args, $c) { |
711 | |
712 | return $this->withComments( [ |
713 | 'type' => 'constructor', |
714 | 'arguments' => $args, |
715 | 'trailingComments' => $c, |
716 | ] ); |
717 | |
718 | } |
719 | private function a85($rest) { |
720 | |
721 | $rest['special'] = 'stringifier'; |
722 | return $rest; |
723 | |
724 | } |
725 | private function a86($v) { |
726 | return $v; |
727 | } |
728 | private function a87($t1, $t2) { |
729 | |
730 | $t1 = [ 'idlType' => $t1 ] + self::$basicType; |
731 | return [ 'idlType' => [$t1,$t2], 'generic' => 'record' ] + self::$basicType; |
732 | |
733 | } |
734 | private function a88($v) { |
735 | |
736 | return [ 'type' => 'boolean', 'value' => ($v === "true") ]; |
737 | |
738 | } |
739 | private function a89($s) { |
740 | |
741 | return [ 'type' => 'number', 'value' => $s ]; |
742 | |
743 | } |
744 | private function a90() { |
745 | |
746 | return [ 'type' => 'Infinity', 'negative' => true ]; |
747 | |
748 | } |
749 | private function a91() { |
750 | |
751 | return [ 'type' => 'Infinity', 'negative' => false ]; |
752 | |
753 | } |
754 | private function a92() { |
755 | |
756 | return [ 'type' => 'NaN' ]; |
757 | |
758 | } |
759 | private function a93($rest) { |
760 | |
761 | $rest['special'] = 'static'; |
762 | return $rest; |
763 | |
764 | } |
765 | private function a94($t1, $t2, $c) { |
766 | |
767 | return $this->withComments( [ |
768 | 'type' => 'iterable', |
769 | 'idlType' => $t2 ? [ $t1, $t2 ] : [ $t1 ], |
770 | 'readonly' => false, |
771 | 'async' => false, |
772 | 'arguments' => [], |
773 | 'trailingComments' => $c, |
774 | ] ); |
775 | |
776 | } |
777 | private function a95($t1, $t2, $args, $c) { |
778 | |
779 | return $this->withComments( [ |
780 | 'type' => 'iterable', |
781 | 'idlType' => $t2 ? [ $t1, $t2 ] : [ $t1 ], |
782 | 'readonly' => false, |
783 | 'async' => true, |
784 | 'arguments' => $args ?? [], |
785 | 'trailingComments' => $c, |
786 | ] ); |
787 | |
788 | } |
789 | private function a96($m) { |
790 | |
791 | $m['readonly'] = true; return $m; |
792 | |
793 | } |
794 | private function a97($t1, $t2, $c) { |
795 | |
796 | return $this->withComments( [ |
797 | 'type' => 'maplike', |
798 | 'idlType' => [ $t1, $t2 ], |
799 | 'readonly' => false, |
800 | 'async' => false, |
801 | 'arguments' => [], |
802 | 'trailingComments' => $c, |
803 | ] ); |
804 | |
805 | } |
806 | private function a98($t, $c) { |
807 | |
808 | return $this->withComments( [ |
809 | 'type' => 'setlike', |
810 | 'idlType' => [ $t ], |
811 | 'readonly' => false, |
812 | 'async' => false, |
813 | 'arguments' => [], |
814 | 'trailingComments' => $c, |
815 | ] ); |
816 | |
817 | } |
818 | private function a99($a) { |
819 | |
820 | $a['special'] = 'inherit'; |
821 | return $a; |
822 | |
823 | } |
824 | private function a100($ro, $a) { |
825 | |
826 | $a['readonly'] = ($ro !== null); |
827 | return $a; |
828 | |
829 | } |
830 | private function a101($c) { |
831 | |
832 | return $this->withComments( [ |
833 | 'type' => 'operation', |
834 | 'name' => '', |
835 | 'arguments' => [], |
836 | 'special' => 'stringifier', |
837 | 'trailingComments' => $c, |
838 | ] ); |
839 | |
840 | } |
841 | private function a102($t) { |
842 | return "unsigned $t"; |
843 | } |
844 | private function a103($t) { |
845 | return "unrestricted $t"; |
846 | } |
847 | private function a104($s, $o) { |
848 | |
849 | $o['special'] = $s; return $o; |
850 | |
851 | } |
852 | private function a105($t) { |
853 | return $t; |
854 | } |
855 | private function a106($args) { |
856 | return $args; |
857 | } |
858 | private function a107($l) { |
859 | return $l ? "long long" : "long"; |
860 | } |
861 | |
862 | // generated |
863 | private function parsestart($silence) { |
864 | $p2 = $this->currPos; |
865 | // start seq_1 |
866 | $p3 = $this->currPos; |
867 | $r4 = $this->discard_($silence); |
868 | if ($r4===self::$FAILED) { |
869 | $r1 = self::$FAILED; |
870 | goto seq_1; |
871 | } |
872 | $r5 = $this->parseDefinitions($silence); |
873 | // d <- $r5 |
874 | if ($r5===self::$FAILED) { |
875 | $this->currPos = $p3; |
876 | $r1 = self::$FAILED; |
877 | goto seq_1; |
878 | } |
879 | $r1 = true; |
880 | seq_1: |
881 | if ($r1!==self::$FAILED) { |
882 | $this->savedPos = $p2; |
883 | $r1 = $this->a0($r5); |
884 | } |
885 | // free $p3 |
886 | return $r1; |
887 | } |
888 | private function discard_($silence) { |
889 | $p2 = $this->currPos; |
890 | $r3 = []; |
891 | for (;;) { |
892 | // start choice_1 |
893 | $p5 = $this->currPos; |
894 | $r4 = $this->discardwhitespace($silence); |
895 | if ($r4!==self::$FAILED) { |
896 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
897 | goto choice_1; |
898 | } else { |
899 | $r4 = self::$FAILED; |
900 | } |
901 | // free $p5 |
902 | $p5 = $this->currPos; |
903 | $r4 = $this->discardcomment($silence); |
904 | if ($r4!==self::$FAILED) { |
905 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
906 | } else { |
907 | $r4 = self::$FAILED; |
908 | } |
909 | // free $p5 |
910 | choice_1: |
911 | if ($r4!==self::$FAILED) { |
912 | $r3[] = $r4; |
913 | } else { |
914 | break; |
915 | } |
916 | } |
917 | // r <- $r3 |
918 | // free $r4 |
919 | $r1 = $r3; |
920 | if ($r1!==self::$FAILED) { |
921 | $this->savedPos = $p2; |
922 | $r1 = $this->a1($r3); |
923 | } |
924 | return $r1; |
925 | } |
926 | private function parseDefinitions($silence) { |
927 | $r1 = []; |
928 | for (;;) { |
929 | $p3 = $this->currPos; |
930 | // start seq_1 |
931 | $p4 = $this->currPos; |
932 | $r5 = $this->parseleadingComments($silence); |
933 | // c <- $r5 |
934 | if ($r5===self::$FAILED) { |
935 | $r2 = self::$FAILED; |
936 | goto seq_1; |
937 | } |
938 | $r6 = $this->parseExtendedAttributeList($silence); |
939 | // e <- $r6 |
940 | if ($r6===self::$FAILED) { |
941 | $this->currPos = $p4; |
942 | $r2 = self::$FAILED; |
943 | goto seq_1; |
944 | } |
945 | $r7 = $this->parseDefinition($silence); |
946 | // d <- $r7 |
947 | if ($r7===self::$FAILED) { |
948 | $this->currPos = $p4; |
949 | $r2 = self::$FAILED; |
950 | goto seq_1; |
951 | } |
952 | $r2 = true; |
953 | seq_1: |
954 | if ($r2!==self::$FAILED) { |
955 | $this->savedPos = $p3; |
956 | $r2 = $this->a2($r5, $r6, $r7); |
957 | $r1[] = $r2; |
958 | } else { |
959 | break; |
960 | } |
961 | // free $p4 |
962 | } |
963 | // free $r2 |
964 | return $r1; |
965 | } |
966 | private function discardwhitespace($silence) { |
967 | $r1 = self::$FAILED; |
968 | for (;;) { |
969 | // start choice_1 |
970 | $r2 = $this->input[$this->currPos] ?? ''; |
971 | if ($r2 === "\x09" || $r2 === " ") { |
972 | $this->currPos++; |
973 | goto choice_1; |
974 | } else { |
975 | $r2 = self::$FAILED; |
976 | if (!$silence) {$this->fail(1);} |
977 | } |
978 | $r2 = $this->discardeol($silence); |
979 | choice_1: |
980 | if ($r2!==self::$FAILED) { |
981 | $r1 = true; |
982 | } else { |
983 | break; |
984 | } |
985 | } |
986 | // free $r2 |
987 | return $r1; |
988 | } |
989 | private function discardcomment($silence) { |
990 | // start choice_1 |
991 | // start seq_1 |
992 | $p2 = $this->currPos; |
993 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "//", $this->currPos, 2, false) === 0) { |
994 | $r3 = "//"; |
995 | $this->currPos += 2; |
996 | } else { |
997 | if (!$silence) {$this->fail(2);} |
998 | $r3 = self::$FAILED; |
999 | $r1 = self::$FAILED; |
1000 | goto seq_1; |
1001 | } |
1002 | for (;;) { |
1003 | $r5 = self::charAt($this->input, $this->currPos); |
1004 | if ($r5 !== '' && !($r5 === "\x0a" || $r5 === "\x0d")) { |
1005 | $this->currPos += strlen($r5); |
1006 | } else { |
1007 | $r5 = self::$FAILED; |
1008 | if (!$silence) {$this->fail(3);} |
1009 | break; |
1010 | } |
1011 | } |
1012 | // free $r5 |
1013 | $r4 = true; |
1014 | if ($r4===self::$FAILED) { |
1015 | $this->currPos = $p2; |
1016 | $r1 = self::$FAILED; |
1017 | goto seq_1; |
1018 | } |
1019 | // free $r4 |
1020 | $r1 = true; |
1021 | seq_1: |
1022 | if ($r1!==self::$FAILED) { |
1023 | goto choice_1; |
1024 | } |
1025 | // free $p2 |
1026 | // start seq_2 |
1027 | $p2 = $this->currPos; |
1028 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "/*", $this->currPos, 2, false) === 0) { |
1029 | $r4 = "/*"; |
1030 | $this->currPos += 2; |
1031 | } else { |
1032 | if (!$silence) {$this->fail(4);} |
1033 | $r4 = self::$FAILED; |
1034 | $r1 = self::$FAILED; |
1035 | goto seq_2; |
1036 | } |
1037 | for (;;) { |
1038 | // start choice_2 |
1039 | $r6 = self::$FAILED; |
1040 | for (;;) { |
1041 | if (strcspn($this->input, "\x0a\x0d*", $this->currPos, 1) !== 0) { |
1042 | $r7 = self::consumeChar($this->input, $this->currPos); |
1043 | $r6 = true; |
1044 | } else { |
1045 | $r7 = self::$FAILED; |
1046 | if (!$silence) {$this->fail(5);} |
1047 | break; |
1048 | } |
1049 | } |
1050 | if ($r6!==self::$FAILED) { |
1051 | goto choice_2; |
1052 | } |
1053 | // free $r7 |
1054 | $r6 = $this->discardeol($silence); |
1055 | if ($r6!==self::$FAILED) { |
1056 | goto choice_2; |
1057 | } |
1058 | // start seq_3 |
1059 | $p8 = $this->currPos; |
1060 | if (($this->input[$this->currPos] ?? null) === "*") { |
1061 | $this->currPos++; |
1062 | $r7 = "*"; |
1063 | } else { |
1064 | if (!$silence) {$this->fail(6);} |
1065 | $r7 = self::$FAILED; |
1066 | $r6 = self::$FAILED; |
1067 | goto seq_3; |
1068 | } |
1069 | $p9 = $this->currPos; |
1070 | if (($this->input[$this->currPos] ?? null) === "/") { |
1071 | $this->currPos++; |
1072 | $r10 = "/"; |
1073 | } else { |
1074 | $r10 = self::$FAILED; |
1075 | } |
1076 | if ($r10 === self::$FAILED) { |
1077 | $r10 = false; |
1078 | } else { |
1079 | $r10 = self::$FAILED; |
1080 | $this->currPos = $p9; |
1081 | $this->currPos = $p8; |
1082 | $r6 = self::$FAILED; |
1083 | goto seq_3; |
1084 | } |
1085 | // free $p9 |
1086 | $r6 = true; |
1087 | seq_3: |
1088 | // free $p8 |
1089 | choice_2: |
1090 | if ($r6===self::$FAILED) { |
1091 | break; |
1092 | } |
1093 | } |
1094 | // free $r6 |
1095 | $r5 = true; |
1096 | if ($r5===self::$FAILED) { |
1097 | $this->currPos = $p2; |
1098 | $r1 = self::$FAILED; |
1099 | goto seq_2; |
1100 | } |
1101 | // free $r5 |
1102 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "*/", $this->currPos, 2, false) === 0) { |
1103 | $r5 = "*/"; |
1104 | $this->currPos += 2; |
1105 | } else { |
1106 | if (!$silence) {$this->fail(7);} |
1107 | $r5 = self::$FAILED; |
1108 | $this->currPos = $p2; |
1109 | $r1 = self::$FAILED; |
1110 | goto seq_2; |
1111 | } |
1112 | $r1 = true; |
1113 | seq_2: |
1114 | // free $p2 |
1115 | choice_1: |
1116 | return $r1; |
1117 | } |
1118 | private function parseleadingComments($silence) { |
1119 | $p2 = $this->currPos; |
1120 | $r1 = ''; |
1121 | if ($r1!==self::$FAILED) { |
1122 | $this->savedPos = $p2; |
1123 | $r1 = $this->a3(); |
1124 | } |
1125 | return $r1; |
1126 | } |
1127 | private function parseExtendedAttributeList($silence) { |
1128 | // start choice_1 |
1129 | $p2 = $this->currPos; |
1130 | // start seq_1 |
1131 | $p3 = $this->currPos; |
1132 | if (($this->input[$this->currPos] ?? null) === "[") { |
1133 | $this->currPos++; |
1134 | $r4 = "["; |
1135 | } else { |
1136 | if (!$silence) {$this->fail(8);} |
1137 | $r4 = self::$FAILED; |
1138 | $r1 = self::$FAILED; |
1139 | goto seq_1; |
1140 | } |
1141 | $r5 = $this->discard_($silence); |
1142 | if ($r5===self::$FAILED) { |
1143 | $this->currPos = $p3; |
1144 | $r1 = self::$FAILED; |
1145 | goto seq_1; |
1146 | } |
1147 | $r6 = $this->parseExtendedAttribute($silence); |
1148 | // e <- $r6 |
1149 | if ($r6===self::$FAILED) { |
1150 | $this->currPos = $p3; |
1151 | $r1 = self::$FAILED; |
1152 | goto seq_1; |
1153 | } |
1154 | $r7 = $this->parseExtendedAttributes($silence); |
1155 | // rest <- $r7 |
1156 | if ($r7===self::$FAILED) { |
1157 | $this->currPos = $p3; |
1158 | $r1 = self::$FAILED; |
1159 | goto seq_1; |
1160 | } |
1161 | if (($this->input[$this->currPos] ?? null) === "]") { |
1162 | $this->currPos++; |
1163 | $r8 = "]"; |
1164 | } else { |
1165 | if (!$silence) {$this->fail(9);} |
1166 | $r8 = self::$FAILED; |
1167 | $this->currPos = $p3; |
1168 | $r1 = self::$FAILED; |
1169 | goto seq_1; |
1170 | } |
1171 | $r9 = $this->discard_($silence); |
1172 | if ($r9===self::$FAILED) { |
1173 | $this->currPos = $p3; |
1174 | $r1 = self::$FAILED; |
1175 | goto seq_1; |
1176 | } |
1177 | $r1 = true; |
1178 | seq_1: |
1179 | if ($r1!==self::$FAILED) { |
1180 | $this->savedPos = $p2; |
1181 | $r1 = $this->a4($r6, $r7); |
1182 | goto choice_1; |
1183 | } |
1184 | // free $p3 |
1185 | $p3 = $this->currPos; |
1186 | // start seq_2 |
1187 | $p10 = $this->currPos; |
1188 | $p11 = $this->currPos; |
1189 | if (($this->input[$this->currPos] ?? null) === "[") { |
1190 | $this->currPos++; |
1191 | $r12 = "["; |
1192 | } else { |
1193 | $r12 = self::$FAILED; |
1194 | } |
1195 | if ($r12 === self::$FAILED) { |
1196 | $r12 = false; |
1197 | } else { |
1198 | $r12 = self::$FAILED; |
1199 | $this->currPos = $p11; |
1200 | $r1 = self::$FAILED; |
1201 | goto seq_2; |
1202 | } |
1203 | // free $p11 |
1204 | $r1 = true; |
1205 | seq_2: |
1206 | if ($r1!==self::$FAILED) { |
1207 | $this->savedPos = $p3; |
1208 | $r1 = $this->a5(); |
1209 | } |
1210 | // free $p10 |
1211 | choice_1: |
1212 | return $r1; |
1213 | } |
1214 | private function parseDefinition($silence) { |
1215 | // start choice_1 |
1216 | $r1 = $this->parseCallbackOrInterfaceOrMixin($silence); |
1217 | if ($r1!==self::$FAILED) { |
1218 | goto choice_1; |
1219 | } |
1220 | $r1 = $this->parseNamespace($silence); |
1221 | if ($r1!==self::$FAILED) { |
1222 | goto choice_1; |
1223 | } |
1224 | $r1 = $this->parsePartial($silence); |
1225 | if ($r1!==self::$FAILED) { |
1226 | goto choice_1; |
1227 | } |
1228 | $r1 = $this->parseDictionary($silence); |
1229 | if ($r1!==self::$FAILED) { |
1230 | goto choice_1; |
1231 | } |
1232 | $r1 = $this->parseEnum($silence); |
1233 | if ($r1!==self::$FAILED) { |
1234 | goto choice_1; |
1235 | } |
1236 | $r1 = $this->parseTypedef($silence); |
1237 | if ($r1!==self::$FAILED) { |
1238 | goto choice_1; |
1239 | } |
1240 | $r1 = $this->parseIncludesStatement($silence); |
1241 | choice_1: |
1242 | return $r1; |
1243 | } |
1244 | private function discardeol($silence) { |
1245 | $p2 = $this->currPos; |
1246 | // start choice_1 |
1247 | if (($this->input[$this->currPos] ?? null) === "\x0a") { |
1248 | $this->currPos++; |
1249 | $r3 = "\x0a"; |
1250 | goto choice_1; |
1251 | } else { |
1252 | if (!$silence) {$this->fail(10);} |
1253 | $r3 = self::$FAILED; |
1254 | } |
1255 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "\x0d\x0a", $this->currPos, 2, false) === 0) { |
1256 | $r3 = "\x0d\x0a"; |
1257 | $this->currPos += 2; |
1258 | goto choice_1; |
1259 | } else { |
1260 | if (!$silence) {$this->fail(11);} |
1261 | $r3 = self::$FAILED; |
1262 | } |
1263 | if (($this->input[$this->currPos] ?? null) === "\x0d") { |
1264 | $this->currPos++; |
1265 | $r3 = "\x0d"; |
1266 | } else { |
1267 | if (!$silence) {$this->fail(12);} |
1268 | $r3 = self::$FAILED; |
1269 | } |
1270 | choice_1: |
1271 | // nl <- $r3 |
1272 | $r1 = $r3; |
1273 | if ($r1!==self::$FAILED) { |
1274 | $this->savedPos = $p2; |
1275 | $r1 = $this->a6($r3); |
1276 | } |
1277 | return $r1; |
1278 | } |
1279 | private function parseExtendedAttribute($silence) { |
1280 | // start choice_1 |
1281 | $r1 = $this->parseExtendedAttributeNoArgs($silence); |
1282 | if ($r1!==self::$FAILED) { |
1283 | goto choice_1; |
1284 | } |
1285 | $r1 = $this->parseExtendedAttributeArgList($silence); |
1286 | if ($r1!==self::$FAILED) { |
1287 | goto choice_1; |
1288 | } |
1289 | $r1 = $this->parseExtendedAttributeIdent($silence); |
1290 | if ($r1!==self::$FAILED) { |
1291 | goto choice_1; |
1292 | } |
1293 | $r1 = $this->parseExtendedAttributeNamedArgList($silence); |
1294 | if ($r1!==self::$FAILED) { |
1295 | goto choice_1; |
1296 | } |
1297 | $p2 = $this->currPos; |
1298 | $r1 = $this->discardSpecCompliantExtendedAttribute($silence); |
1299 | if ($r1!==self::$FAILED) { |
1300 | $r1 = substr($this->input, $p2, $this->currPos - $p2); |
1301 | } else { |
1302 | $r1 = self::$FAILED; |
1303 | } |
1304 | // free $p2 |
1305 | choice_1: |
1306 | return $r1; |
1307 | } |
1308 | private function parseExtendedAttributes($silence) { |
1309 | // start choice_1 |
1310 | $p2 = $this->currPos; |
1311 | // start seq_1 |
1312 | $p3 = $this->currPos; |
1313 | if (($this->input[$this->currPos] ?? null) === ",") { |
1314 | $this->currPos++; |
1315 | $r4 = ","; |
1316 | } else { |
1317 | if (!$silence) {$this->fail(13);} |
1318 | $r4 = self::$FAILED; |
1319 | $r1 = self::$FAILED; |
1320 | goto seq_1; |
1321 | } |
1322 | $r5 = $this->discard_($silence); |
1323 | if ($r5===self::$FAILED) { |
1324 | $this->currPos = $p3; |
1325 | $r1 = self::$FAILED; |
1326 | goto seq_1; |
1327 | } |
1328 | $r6 = $this->parseExtendedAttribute($silence); |
1329 | // e <- $r6 |
1330 | if ($r6===self::$FAILED) { |
1331 | $this->currPos = $p3; |
1332 | $r1 = self::$FAILED; |
1333 | goto seq_1; |
1334 | } |
1335 | $r7 = $this->parseExtendedAttributes($silence); |
1336 | // rest <- $r7 |
1337 | if ($r7===self::$FAILED) { |
1338 | $this->currPos = $p3; |
1339 | $r1 = self::$FAILED; |
1340 | goto seq_1; |
1341 | } |
1342 | $r1 = true; |
1343 | seq_1: |
1344 | if ($r1!==self::$FAILED) { |
1345 | $this->savedPos = $p2; |
1346 | $r1 = $this->a4($r6, $r7); |
1347 | goto choice_1; |
1348 | } |
1349 | // free $p3 |
1350 | $p3 = $this->currPos; |
1351 | $r1 = ''; |
1352 | if ($r1!==self::$FAILED) { |
1353 | $this->savedPos = $p3; |
1354 | $r1 = $this->a5(); |
1355 | } |
1356 | choice_1: |
1357 | return $r1; |
1358 | } |
1359 | private function parseCallbackOrInterfaceOrMixin($silence) { |
1360 | // start choice_1 |
1361 | $p2 = $this->currPos; |
1362 | // start seq_1 |
1363 | $p3 = $this->currPos; |
1364 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "callback", $this->currPos, 8, false) === 0) { |
1365 | $r4 = "callback"; |
1366 | $this->currPos += 8; |
1367 | } else { |
1368 | if (!$silence) {$this->fail(14);} |
1369 | $r4 = self::$FAILED; |
1370 | $r1 = self::$FAILED; |
1371 | goto seq_1; |
1372 | } |
1373 | $r5 = $this->discardi_($silence); |
1374 | if ($r5===self::$FAILED) { |
1375 | $this->currPos = $p3; |
1376 | $r1 = self::$FAILED; |
1377 | goto seq_1; |
1378 | } |
1379 | $r6 = $this->parseCallbackRestOrInterface($silence); |
1380 | // c <- $r6 |
1381 | if ($r6===self::$FAILED) { |
1382 | $this->currPos = $p3; |
1383 | $r1 = self::$FAILED; |
1384 | goto seq_1; |
1385 | } |
1386 | $r1 = true; |
1387 | seq_1: |
1388 | if ($r1!==self::$FAILED) { |
1389 | $this->savedPos = $p2; |
1390 | $r1 = $this->a7($r6); |
1391 | goto choice_1; |
1392 | } |
1393 | // free $p3 |
1394 | $p3 = $this->currPos; |
1395 | // start seq_2 |
1396 | $p7 = $this->currPos; |
1397 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "interface", $this->currPos, 9, false) === 0) { |
1398 | $r8 = "interface"; |
1399 | $this->currPos += 9; |
1400 | } else { |
1401 | if (!$silence) {$this->fail(15);} |
1402 | $r8 = self::$FAILED; |
1403 | $r1 = self::$FAILED; |
1404 | goto seq_2; |
1405 | } |
1406 | $r9 = $this->discardi_($silence); |
1407 | if ($r9===self::$FAILED) { |
1408 | $this->currPos = $p7; |
1409 | $r1 = self::$FAILED; |
1410 | goto seq_2; |
1411 | } |
1412 | $r10 = $this->parseInterfaceOrMixin($silence); |
1413 | // im <- $r10 |
1414 | if ($r10===self::$FAILED) { |
1415 | $this->currPos = $p7; |
1416 | $r1 = self::$FAILED; |
1417 | goto seq_2; |
1418 | } |
1419 | $r1 = true; |
1420 | seq_2: |
1421 | if ($r1!==self::$FAILED) { |
1422 | $this->savedPos = $p3; |
1423 | $r1 = $this->a8($r10); |
1424 | } |
1425 | // free $p7 |
1426 | choice_1: |
1427 | return $r1; |
1428 | } |
1429 | private function parseNamespace($silence) { |
1430 | $p2 = $this->currPos; |
1431 | // start seq_1 |
1432 | $p3 = $this->currPos; |
1433 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "namespace", $this->currPos, 9, false) === 0) { |
1434 | $r4 = "namespace"; |
1435 | $this->currPos += 9; |
1436 | } else { |
1437 | if (!$silence) {$this->fail(16);} |
1438 | $r4 = self::$FAILED; |
1439 | $r1 = self::$FAILED; |
1440 | goto seq_1; |
1441 | } |
1442 | $r5 = $this->discardi_($silence); |
1443 | if ($r5===self::$FAILED) { |
1444 | $this->currPos = $p3; |
1445 | $r1 = self::$FAILED; |
1446 | goto seq_1; |
1447 | } |
1448 | $r6 = $this->parseidentifier($silence); |
1449 | // name <- $r6 |
1450 | if ($r6===self::$FAILED) { |
1451 | $this->currPos = $p3; |
1452 | $r1 = self::$FAILED; |
1453 | goto seq_1; |
1454 | } |
1455 | $r7 = $this->discard_($silence); |
1456 | if ($r7===self::$FAILED) { |
1457 | $this->currPos = $p3; |
1458 | $r1 = self::$FAILED; |
1459 | goto seq_1; |
1460 | } |
1461 | if (($this->input[$this->currPos] ?? null) === "{") { |
1462 | $this->currPos++; |
1463 | $r8 = "{"; |
1464 | } else { |
1465 | if (!$silence) {$this->fail(17);} |
1466 | $r8 = self::$FAILED; |
1467 | $this->currPos = $p3; |
1468 | $r1 = self::$FAILED; |
1469 | goto seq_1; |
1470 | } |
1471 | $r9 = $this->discard_($silence); |
1472 | if ($r9===self::$FAILED) { |
1473 | $this->currPos = $p3; |
1474 | $r1 = self::$FAILED; |
1475 | goto seq_1; |
1476 | } |
1477 | $r10 = $this->parseNamespaceMembers($silence); |
1478 | // m <- $r10 |
1479 | if ($r10===self::$FAILED) { |
1480 | $this->currPos = $p3; |
1481 | $r1 = self::$FAILED; |
1482 | goto seq_1; |
1483 | } |
1484 | if (($this->input[$this->currPos] ?? null) === "}") { |
1485 | $this->currPos++; |
1486 | $r11 = "}"; |
1487 | } else { |
1488 | if (!$silence) {$this->fail(18);} |
1489 | $r11 = self::$FAILED; |
1490 | $this->currPos = $p3; |
1491 | $r1 = self::$FAILED; |
1492 | goto seq_1; |
1493 | } |
1494 | $r12 = $this->discard_($silence); |
1495 | if ($r12===self::$FAILED) { |
1496 | $this->currPos = $p3; |
1497 | $r1 = self::$FAILED; |
1498 | goto seq_1; |
1499 | } |
1500 | if (($this->input[$this->currPos] ?? null) === ";") { |
1501 | $this->currPos++; |
1502 | $r13 = ";"; |
1503 | } else { |
1504 | if (!$silence) {$this->fail(19);} |
1505 | $r13 = self::$FAILED; |
1506 | $this->currPos = $p3; |
1507 | $r1 = self::$FAILED; |
1508 | goto seq_1; |
1509 | } |
1510 | $r14 = $this->discard_($silence); |
1511 | if ($r14===self::$FAILED) { |
1512 | $this->currPos = $p3; |
1513 | $r1 = self::$FAILED; |
1514 | goto seq_1; |
1515 | } |
1516 | $r1 = true; |
1517 | seq_1: |
1518 | if ($r1!==self::$FAILED) { |
1519 | $this->savedPos = $p2; |
1520 | $r1 = $this->a9($r6, $r10); |
1521 | } |
1522 | // free $p3 |
1523 | return $r1; |
1524 | } |
1525 | private function parsePartial($silence) { |
1526 | $p2 = $this->currPos; |
1527 | // start seq_1 |
1528 | $p3 = $this->currPos; |
1529 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "partial", $this->currPos, 7, false) === 0) { |
1530 | $r4 = "partial"; |
1531 | $this->currPos += 7; |
1532 | } else { |
1533 | if (!$silence) {$this->fail(20);} |
1534 | $r4 = self::$FAILED; |
1535 | $r1 = self::$FAILED; |
1536 | goto seq_1; |
1537 | } |
1538 | $r5 = $this->discardi_($silence); |
1539 | if ($r5===self::$FAILED) { |
1540 | $this->currPos = $p3; |
1541 | $r1 = self::$FAILED; |
1542 | goto seq_1; |
1543 | } |
1544 | $r6 = $this->parsePartialDefinition($silence); |
1545 | // p <- $r6 |
1546 | if ($r6===self::$FAILED) { |
1547 | $this->currPos = $p3; |
1548 | $r1 = self::$FAILED; |
1549 | goto seq_1; |
1550 | } |
1551 | $r1 = true; |
1552 | seq_1: |
1553 | if ($r1!==self::$FAILED) { |
1554 | $this->savedPos = $p2; |
1555 | $r1 = $this->a10($r6); |
1556 | } |
1557 | // free $p3 |
1558 | return $r1; |
1559 | } |
1560 | private function parseDictionary($silence) { |
1561 | $p2 = $this->currPos; |
1562 | // start seq_1 |
1563 | $p3 = $this->currPos; |
1564 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "dictionary", $this->currPos, 10, false) === 0) { |
1565 | $r4 = "dictionary"; |
1566 | $this->currPos += 10; |
1567 | } else { |
1568 | if (!$silence) {$this->fail(21);} |
1569 | $r4 = self::$FAILED; |
1570 | $r1 = self::$FAILED; |
1571 | goto seq_1; |
1572 | } |
1573 | $r5 = $this->discardi_($silence); |
1574 | if ($r5===self::$FAILED) { |
1575 | $this->currPos = $p3; |
1576 | $r1 = self::$FAILED; |
1577 | goto seq_1; |
1578 | } |
1579 | $r6 = $this->parseidentifier($silence); |
1580 | // name <- $r6 |
1581 | if ($r6===self::$FAILED) { |
1582 | $this->currPos = $p3; |
1583 | $r1 = self::$FAILED; |
1584 | goto seq_1; |
1585 | } |
1586 | $r7 = $this->discard_($silence); |
1587 | if ($r7===self::$FAILED) { |
1588 | $this->currPos = $p3; |
1589 | $r1 = self::$FAILED; |
1590 | goto seq_1; |
1591 | } |
1592 | $r8 = $this->parseInheritance($silence); |
1593 | // inh <- $r8 |
1594 | if ($r8===self::$FAILED) { |
1595 | $this->currPos = $p3; |
1596 | $r1 = self::$FAILED; |
1597 | goto seq_1; |
1598 | } |
1599 | if (($this->input[$this->currPos] ?? null) === "{") { |
1600 | $this->currPos++; |
1601 | $r9 = "{"; |
1602 | } else { |
1603 | if (!$silence) {$this->fail(17);} |
1604 | $r9 = self::$FAILED; |
1605 | $this->currPos = $p3; |
1606 | $r1 = self::$FAILED; |
1607 | goto seq_1; |
1608 | } |
1609 | $r10 = $this->discard_($silence); |
1610 | if ($r10===self::$FAILED) { |
1611 | $this->currPos = $p3; |
1612 | $r1 = self::$FAILED; |
1613 | goto seq_1; |
1614 | } |
1615 | $r11 = $this->parseDictionaryMembers($silence); |
1616 | // m <- $r11 |
1617 | if ($r11===self::$FAILED) { |
1618 | $this->currPos = $p3; |
1619 | $r1 = self::$FAILED; |
1620 | goto seq_1; |
1621 | } |
1622 | if (($this->input[$this->currPos] ?? null) === "}") { |
1623 | $this->currPos++; |
1624 | $r12 = "}"; |
1625 | } else { |
1626 | if (!$silence) {$this->fail(18);} |
1627 | $r12 = self::$FAILED; |
1628 | $this->currPos = $p3; |
1629 | $r1 = self::$FAILED; |
1630 | goto seq_1; |
1631 | } |
1632 | $r13 = $this->discard_($silence); |
1633 | if ($r13===self::$FAILED) { |
1634 | $this->currPos = $p3; |
1635 | $r1 = self::$FAILED; |
1636 | goto seq_1; |
1637 | } |
1638 | if (($this->input[$this->currPos] ?? null) === ";") { |
1639 | $this->currPos++; |
1640 | $r14 = ";"; |
1641 | } else { |
1642 | if (!$silence) {$this->fail(19);} |
1643 | $r14 = self::$FAILED; |
1644 | $this->currPos = $p3; |
1645 | $r1 = self::$FAILED; |
1646 | goto seq_1; |
1647 | } |
1648 | $r15 = $this->discard_($silence); |
1649 | if ($r15===self::$FAILED) { |
1650 | $this->currPos = $p3; |
1651 | $r1 = self::$FAILED; |
1652 | goto seq_1; |
1653 | } |
1654 | $r1 = true; |
1655 | seq_1: |
1656 | if ($r1!==self::$FAILED) { |
1657 | $this->savedPos = $p2; |
1658 | $r1 = $this->a11($r6, $r8, $r11); |
1659 | } |
1660 | // free $p3 |
1661 | return $r1; |
1662 | } |
1663 | private function parseEnum($silence) { |
1664 | $p2 = $this->currPos; |
1665 | // start seq_1 |
1666 | $p3 = $this->currPos; |
1667 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "enum", $this->currPos, 4, false) === 0) { |
1668 | $r4 = "enum"; |
1669 | $this->currPos += 4; |
1670 | } else { |
1671 | if (!$silence) {$this->fail(22);} |
1672 | $r4 = self::$FAILED; |
1673 | $r1 = self::$FAILED; |
1674 | goto seq_1; |
1675 | } |
1676 | $r5 = $this->discardi_($silence); |
1677 | if ($r5===self::$FAILED) { |
1678 | $this->currPos = $p3; |
1679 | $r1 = self::$FAILED; |
1680 | goto seq_1; |
1681 | } |
1682 | $r6 = $this->parseidentifier($silence); |
1683 | // name <- $r6 |
1684 | if ($r6===self::$FAILED) { |
1685 | $this->currPos = $p3; |
1686 | $r1 = self::$FAILED; |
1687 | goto seq_1; |
1688 | } |
1689 | $r7 = $this->discard_($silence); |
1690 | if ($r7===self::$FAILED) { |
1691 | $this->currPos = $p3; |
1692 | $r1 = self::$FAILED; |
1693 | goto seq_1; |
1694 | } |
1695 | if (($this->input[$this->currPos] ?? null) === "{") { |
1696 | $this->currPos++; |
1697 | $r8 = "{"; |
1698 | } else { |
1699 | if (!$silence) {$this->fail(17);} |
1700 | $r8 = self::$FAILED; |
1701 | $this->currPos = $p3; |
1702 | $r1 = self::$FAILED; |
1703 | goto seq_1; |
1704 | } |
1705 | $r9 = $this->discard_($silence); |
1706 | if ($r9===self::$FAILED) { |
1707 | $this->currPos = $p3; |
1708 | $r1 = self::$FAILED; |
1709 | goto seq_1; |
1710 | } |
1711 | $r10 = $this->parseEnumValueList($silence); |
1712 | // vals <- $r10 |
1713 | if ($r10===self::$FAILED) { |
1714 | $this->currPos = $p3; |
1715 | $r1 = self::$FAILED; |
1716 | goto seq_1; |
1717 | } |
1718 | if (($this->input[$this->currPos] ?? null) === "}") { |
1719 | $this->currPos++; |
1720 | $r11 = "}"; |
1721 | } else { |
1722 | if (!$silence) {$this->fail(18);} |
1723 | $r11 = self::$FAILED; |
1724 | $this->currPos = $p3; |
1725 | $r1 = self::$FAILED; |
1726 | goto seq_1; |
1727 | } |
1728 | $r12 = $this->discard_($silence); |
1729 | if ($r12===self::$FAILED) { |
1730 | $this->currPos = $p3; |
1731 | $r1 = self::$FAILED; |
1732 | goto seq_1; |
1733 | } |
1734 | if (($this->input[$this->currPos] ?? null) === ";") { |
1735 | $this->currPos++; |
1736 | $r13 = ";"; |
1737 | } else { |
1738 | if (!$silence) {$this->fail(19);} |
1739 | $r13 = self::$FAILED; |
1740 | $this->currPos = $p3; |
1741 | $r1 = self::$FAILED; |
1742 | goto seq_1; |
1743 | } |
1744 | $r14 = $this->discard_($silence); |
1745 | if ($r14===self::$FAILED) { |
1746 | $this->currPos = $p3; |
1747 | $r1 = self::$FAILED; |
1748 | goto seq_1; |
1749 | } |
1750 | $r1 = true; |
1751 | seq_1: |
1752 | if ($r1!==self::$FAILED) { |
1753 | $this->savedPos = $p2; |
1754 | $r1 = $this->a12($r6, $r10); |
1755 | } |
1756 | // free $p3 |
1757 | return $r1; |
1758 | } |
1759 | private function parseTypedef($silence) { |
1760 | $p2 = $this->currPos; |
1761 | // start seq_1 |
1762 | $p3 = $this->currPos; |
1763 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "typedef", $this->currPos, 7, false) === 0) { |
1764 | $r4 = "typedef"; |
1765 | $this->currPos += 7; |
1766 | } else { |
1767 | if (!$silence) {$this->fail(23);} |
1768 | $r4 = self::$FAILED; |
1769 | $r1 = self::$FAILED; |
1770 | goto seq_1; |
1771 | } |
1772 | $r5 = $this->discardi_($silence); |
1773 | if ($r5===self::$FAILED) { |
1774 | $this->currPos = $p3; |
1775 | $r1 = self::$FAILED; |
1776 | goto seq_1; |
1777 | } |
1778 | $r6 = $this->parseTypeWithExtendedAttributes($silence); |
1779 | // t <- $r6 |
1780 | if ($r6===self::$FAILED) { |
1781 | $this->currPos = $p3; |
1782 | $r1 = self::$FAILED; |
1783 | goto seq_1; |
1784 | } |
1785 | $r7 = $this->parseidentifier($silence); |
1786 | // name <- $r7 |
1787 | if ($r7===self::$FAILED) { |
1788 | $this->currPos = $p3; |
1789 | $r1 = self::$FAILED; |
1790 | goto seq_1; |
1791 | } |
1792 | $r8 = $this->discard_($silence); |
1793 | if ($r8===self::$FAILED) { |
1794 | $this->currPos = $p3; |
1795 | $r1 = self::$FAILED; |
1796 | goto seq_1; |
1797 | } |
1798 | if (($this->input[$this->currPos] ?? null) === ";") { |
1799 | $this->currPos++; |
1800 | $r9 = ";"; |
1801 | } else { |
1802 | if (!$silence) {$this->fail(19);} |
1803 | $r9 = self::$FAILED; |
1804 | $this->currPos = $p3; |
1805 | $r1 = self::$FAILED; |
1806 | goto seq_1; |
1807 | } |
1808 | $r10 = $this->discard_($silence); |
1809 | if ($r10===self::$FAILED) { |
1810 | $this->currPos = $p3; |
1811 | $r1 = self::$FAILED; |
1812 | goto seq_1; |
1813 | } |
1814 | $r1 = true; |
1815 | seq_1: |
1816 | if ($r1!==self::$FAILED) { |
1817 | $this->savedPos = $p2; |
1818 | $r1 = $this->a13($r6, $r7); |
1819 | } |
1820 | // free $p3 |
1821 | return $r1; |
1822 | } |
1823 | private function parseIncludesStatement($silence) { |
1824 | $p2 = $this->currPos; |
1825 | // start seq_1 |
1826 | $p3 = $this->currPos; |
1827 | $r4 = $this->parseidentifier($silence); |
1828 | // target <- $r4 |
1829 | if ($r4===self::$FAILED) { |
1830 | $r1 = self::$FAILED; |
1831 | goto seq_1; |
1832 | } |
1833 | $r5 = $this->discard_($silence); |
1834 | if ($r5===self::$FAILED) { |
1835 | $this->currPos = $p3; |
1836 | $r1 = self::$FAILED; |
1837 | goto seq_1; |
1838 | } |
1839 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "includes", $this->currPos, 8, false) === 0) { |
1840 | $r6 = "includes"; |
1841 | $this->currPos += 8; |
1842 | } else { |
1843 | if (!$silence) {$this->fail(24);} |
1844 | $r6 = self::$FAILED; |
1845 | $this->currPos = $p3; |
1846 | $r1 = self::$FAILED; |
1847 | goto seq_1; |
1848 | } |
1849 | $r7 = $this->discardi_($silence); |
1850 | if ($r7===self::$FAILED) { |
1851 | $this->currPos = $p3; |
1852 | $r1 = self::$FAILED; |
1853 | goto seq_1; |
1854 | } |
1855 | $r8 = $this->parseidentifier($silence); |
1856 | // incl <- $r8 |
1857 | if ($r8===self::$FAILED) { |
1858 | $this->currPos = $p3; |
1859 | $r1 = self::$FAILED; |
1860 | goto seq_1; |
1861 | } |
1862 | $r9 = $this->discard_($silence); |
1863 | if ($r9===self::$FAILED) { |
1864 | $this->currPos = $p3; |
1865 | $r1 = self::$FAILED; |
1866 | goto seq_1; |
1867 | } |
1868 | if (($this->input[$this->currPos] ?? null) === ";") { |
1869 | $this->currPos++; |
1870 | $r10 = ";"; |
1871 | } else { |
1872 | if (!$silence) {$this->fail(19);} |
1873 | $r10 = self::$FAILED; |
1874 | $this->currPos = $p3; |
1875 | $r1 = self::$FAILED; |
1876 | goto seq_1; |
1877 | } |
1878 | $r11 = $this->discard_($silence); |
1879 | if ($r11===self::$FAILED) { |
1880 | $this->currPos = $p3; |
1881 | $r1 = self::$FAILED; |
1882 | goto seq_1; |
1883 | } |
1884 | $r1 = true; |
1885 | seq_1: |
1886 | if ($r1!==self::$FAILED) { |
1887 | $this->savedPos = $p2; |
1888 | $r1 = $this->a14($r4, $r8); |
1889 | } |
1890 | // free $p3 |
1891 | return $r1; |
1892 | } |
1893 | private function parseExtendedAttributeNoArgs($silence) { |
1894 | $p2 = $this->currPos; |
1895 | // start seq_1 |
1896 | $p3 = $this->currPos; |
1897 | $r4 = $this->parseidentifier($silence); |
1898 | // name <- $r4 |
1899 | if ($r4===self::$FAILED) { |
1900 | $r1 = self::$FAILED; |
1901 | goto seq_1; |
1902 | } |
1903 | $r5 = $this->discard_($silence); |
1904 | if ($r5===self::$FAILED) { |
1905 | $this->currPos = $p3; |
1906 | $r1 = self::$FAILED; |
1907 | goto seq_1; |
1908 | } |
1909 | $p6 = $this->currPos; |
1910 | $r7 = $this->input[$this->currPos] ?? ''; |
1911 | if ($r7 === "(" || $r7 === "=") { |
1912 | $this->currPos++; |
1913 | } else { |
1914 | $r7 = self::$FAILED; |
1915 | } |
1916 | if ($r7 === self::$FAILED) { |
1917 | $r7 = false; |
1918 | } else { |
1919 | $r7 = self::$FAILED; |
1920 | $this->currPos = $p6; |
1921 | $this->currPos = $p3; |
1922 | $r1 = self::$FAILED; |
1923 | goto seq_1; |
1924 | } |
1925 | // free $p6 |
1926 | $r1 = true; |
1927 | seq_1: |
1928 | if ($r1!==self::$FAILED) { |
1929 | $this->savedPos = $p2; |
1930 | $r1 = $this->a15($r4); |
1931 | } |
1932 | // free $p3 |
1933 | return $r1; |
1934 | } |
1935 | private function parseExtendedAttributeArgList($silence) { |
1936 | $p2 = $this->currPos; |
1937 | // start seq_1 |
1938 | $p3 = $this->currPos; |
1939 | $r4 = $this->parseidentifier($silence); |
1940 | // name <- $r4 |
1941 | if ($r4===self::$FAILED) { |
1942 | $r1 = self::$FAILED; |
1943 | goto seq_1; |
1944 | } |
1945 | $r5 = $this->discard_($silence); |
1946 | if ($r5===self::$FAILED) { |
1947 | $this->currPos = $p3; |
1948 | $r1 = self::$FAILED; |
1949 | goto seq_1; |
1950 | } |
1951 | if (($this->input[$this->currPos] ?? null) === "(") { |
1952 | $this->currPos++; |
1953 | $r6 = "("; |
1954 | } else { |
1955 | if (!$silence) {$this->fail(25);} |
1956 | $r6 = self::$FAILED; |
1957 | $this->currPos = $p3; |
1958 | $r1 = self::$FAILED; |
1959 | goto seq_1; |
1960 | } |
1961 | $r7 = $this->discard_($silence); |
1962 | if ($r7===self::$FAILED) { |
1963 | $this->currPos = $p3; |
1964 | $r1 = self::$FAILED; |
1965 | goto seq_1; |
1966 | } |
1967 | $r8 = $this->parseArgumentList($silence); |
1968 | // args <- $r8 |
1969 | if ($r8===self::$FAILED) { |
1970 | $this->currPos = $p3; |
1971 | $r1 = self::$FAILED; |
1972 | goto seq_1; |
1973 | } |
1974 | if (($this->input[$this->currPos] ?? null) === ")") { |
1975 | $this->currPos++; |
1976 | $r9 = ")"; |
1977 | } else { |
1978 | if (!$silence) {$this->fail(26);} |
1979 | $r9 = self::$FAILED; |
1980 | $this->currPos = $p3; |
1981 | $r1 = self::$FAILED; |
1982 | goto seq_1; |
1983 | } |
1984 | $r10 = $this->discard_($silence); |
1985 | if ($r10===self::$FAILED) { |
1986 | $this->currPos = $p3; |
1987 | $r1 = self::$FAILED; |
1988 | goto seq_1; |
1989 | } |
1990 | $r1 = true; |
1991 | seq_1: |
1992 | if ($r1!==self::$FAILED) { |
1993 | $this->savedPos = $p2; |
1994 | $r1 = $this->a16($r4, $r8); |
1995 | } |
1996 | // free $p3 |
1997 | return $r1; |
1998 | } |
1999 | private function parseExtendedAttributeIdent($silence) { |
2000 | $p2 = $this->currPos; |
2001 | // start seq_1 |
2002 | $p3 = $this->currPos; |
2003 | $r4 = $this->parseidentifier($silence); |
2004 | // name <- $r4 |
2005 | if ($r4===self::$FAILED) { |
2006 | $r1 = self::$FAILED; |
2007 | goto seq_1; |
2008 | } |
2009 | $r5 = $this->discard_($silence); |
2010 | if ($r5===self::$FAILED) { |
2011 | $this->currPos = $p3; |
2012 | $r1 = self::$FAILED; |
2013 | goto seq_1; |
2014 | } |
2015 | if (($this->input[$this->currPos] ?? null) === "=") { |
2016 | $this->currPos++; |
2017 | $r6 = "="; |
2018 | } else { |
2019 | if (!$silence) {$this->fail(27);} |
2020 | $r6 = self::$FAILED; |
2021 | $this->currPos = $p3; |
2022 | $r1 = self::$FAILED; |
2023 | goto seq_1; |
2024 | } |
2025 | $r7 = $this->discard_($silence); |
2026 | if ($r7===self::$FAILED) { |
2027 | $this->currPos = $p3; |
2028 | $r1 = self::$FAILED; |
2029 | goto seq_1; |
2030 | } |
2031 | $r8 = $this->parseExtendedAttributeRHS($silence); |
2032 | // rhs <- $r8 |
2033 | if ($r8===self::$FAILED) { |
2034 | $this->currPos = $p3; |
2035 | $r1 = self::$FAILED; |
2036 | goto seq_1; |
2037 | } |
2038 | $r1 = true; |
2039 | seq_1: |
2040 | if ($r1!==self::$FAILED) { |
2041 | $this->savedPos = $p2; |
2042 | $r1 = $this->a17($r4, $r8); |
2043 | } |
2044 | // free $p3 |
2045 | return $r1; |
2046 | } |
2047 | private function parseExtendedAttributeNamedArgList($silence) { |
2048 | $p2 = $this->currPos; |
2049 | // start seq_1 |
2050 | $p3 = $this->currPos; |
2051 | $r4 = $this->parseidentifier($silence); |
2052 | // name <- $r4 |
2053 | if ($r4===self::$FAILED) { |
2054 | $r1 = self::$FAILED; |
2055 | goto seq_1; |
2056 | } |
2057 | $r5 = $this->discard_($silence); |
2058 | if ($r5===self::$FAILED) { |
2059 | $this->currPos = $p3; |
2060 | $r1 = self::$FAILED; |
2061 | goto seq_1; |
2062 | } |
2063 | if (($this->input[$this->currPos] ?? null) === "=") { |
2064 | $this->currPos++; |
2065 | $r6 = "="; |
2066 | } else { |
2067 | if (!$silence) {$this->fail(27);} |
2068 | $r6 = self::$FAILED; |
2069 | $this->currPos = $p3; |
2070 | $r1 = self::$FAILED; |
2071 | goto seq_1; |
2072 | } |
2073 | $r7 = $this->discard_($silence); |
2074 | if ($r7===self::$FAILED) { |
2075 | $this->currPos = $p3; |
2076 | $r1 = self::$FAILED; |
2077 | goto seq_1; |
2078 | } |
2079 | $r8 = $this->parseidentifier($silence); |
2080 | // rhs <- $r8 |
2081 | if ($r8===self::$FAILED) { |
2082 | $this->currPos = $p3; |
2083 | $r1 = self::$FAILED; |
2084 | goto seq_1; |
2085 | } |
2086 | $r9 = $this->discard_($silence); |
2087 | if ($r9===self::$FAILED) { |
2088 | $this->currPos = $p3; |
2089 | $r1 = self::$FAILED; |
2090 | goto seq_1; |
2091 | } |
2092 | if (($this->input[$this->currPos] ?? null) === "(") { |
2093 | $this->currPos++; |
2094 | $r10 = "("; |
2095 | } else { |
2096 | if (!$silence) {$this->fail(25);} |
2097 | $r10 = self::$FAILED; |
2098 | $this->currPos = $p3; |
2099 | $r1 = self::$FAILED; |
2100 | goto seq_1; |
2101 | } |
2102 | $r11 = $this->discard_($silence); |
2103 | if ($r11===self::$FAILED) { |
2104 | $this->currPos = $p3; |
2105 | $r1 = self::$FAILED; |
2106 | goto seq_1; |
2107 | } |
2108 | $r12 = $this->parseArgumentList($silence); |
2109 | // args <- $r12 |
2110 | if ($r12===self::$FAILED) { |
2111 | $this->currPos = $p3; |
2112 | $r1 = self::$FAILED; |
2113 | goto seq_1; |
2114 | } |
2115 | if (($this->input[$this->currPos] ?? null) === ")") { |
2116 | $this->currPos++; |
2117 | $r13 = ")"; |
2118 | } else { |
2119 | if (!$silence) {$this->fail(26);} |
2120 | $r13 = self::$FAILED; |
2121 | $this->currPos = $p3; |
2122 | $r1 = self::$FAILED; |
2123 | goto seq_1; |
2124 | } |
2125 | $r14 = $this->discard_($silence); |
2126 | if ($r14===self::$FAILED) { |
2127 | $this->currPos = $p3; |
2128 | $r1 = self::$FAILED; |
2129 | goto seq_1; |
2130 | } |
2131 | $r1 = true; |
2132 | seq_1: |
2133 | if ($r1!==self::$FAILED) { |
2134 | $this->savedPos = $p2; |
2135 | $r1 = $this->a18($r4, $r8, $r12); |
2136 | } |
2137 | // free $p3 |
2138 | return $r1; |
2139 | } |
2140 | private function discardSpecCompliantExtendedAttribute($silence) { |
2141 | // start choice_1 |
2142 | // start seq_1 |
2143 | $p2 = $this->currPos; |
2144 | if (($this->input[$this->currPos] ?? null) === "(") { |
2145 | $this->currPos++; |
2146 | $r3 = "("; |
2147 | } else { |
2148 | if (!$silence) {$this->fail(25);} |
2149 | $r3 = self::$FAILED; |
2150 | $r1 = self::$FAILED; |
2151 | goto seq_1; |
2152 | } |
2153 | $r4 = $this->discard_($silence); |
2154 | if ($r4===self::$FAILED) { |
2155 | $this->currPos = $p2; |
2156 | $r1 = self::$FAILED; |
2157 | goto seq_1; |
2158 | } |
2159 | $r5 = $this->discardExtendedAttributeInner($silence); |
2160 | if ($r5===self::$FAILED) { |
2161 | $this->currPos = $p2; |
2162 | $r1 = self::$FAILED; |
2163 | goto seq_1; |
2164 | } |
2165 | if (($this->input[$this->currPos] ?? null) === ")") { |
2166 | $this->currPos++; |
2167 | $r6 = ")"; |
2168 | } else { |
2169 | if (!$silence) {$this->fail(26);} |
2170 | $r6 = self::$FAILED; |
2171 | $this->currPos = $p2; |
2172 | $r1 = self::$FAILED; |
2173 | goto seq_1; |
2174 | } |
2175 | $r7 = $this->discard_($silence); |
2176 | if ($r7===self::$FAILED) { |
2177 | $this->currPos = $p2; |
2178 | $r1 = self::$FAILED; |
2179 | goto seq_1; |
2180 | } |
2181 | $r8 = $this->discardExtendedAttributeRest($silence); |
2182 | if ($r8===self::$FAILED) { |
2183 | $this->currPos = $p2; |
2184 | $r1 = self::$FAILED; |
2185 | goto seq_1; |
2186 | } |
2187 | $r1 = true; |
2188 | seq_1: |
2189 | if ($r1!==self::$FAILED) { |
2190 | goto choice_1; |
2191 | } |
2192 | // free $p2 |
2193 | // start seq_2 |
2194 | $p2 = $this->currPos; |
2195 | if (($this->input[$this->currPos] ?? null) === "[") { |
2196 | $this->currPos++; |
2197 | $r9 = "["; |
2198 | } else { |
2199 | if (!$silence) {$this->fail(8);} |
2200 | $r9 = self::$FAILED; |
2201 | $r1 = self::$FAILED; |
2202 | goto seq_2; |
2203 | } |
2204 | $r10 = $this->discard_($silence); |
2205 | if ($r10===self::$FAILED) { |
2206 | $this->currPos = $p2; |
2207 | $r1 = self::$FAILED; |
2208 | goto seq_2; |
2209 | } |
2210 | $r11 = $this->discardExtendedAttributeInner($silence); |
2211 | if ($r11===self::$FAILED) { |
2212 | $this->currPos = $p2; |
2213 | $r1 = self::$FAILED; |
2214 | goto seq_2; |
2215 | } |
2216 | if (($this->input[$this->currPos] ?? null) === "]") { |
2217 | $this->currPos++; |
2218 | $r12 = "]"; |
2219 | } else { |
2220 | if (!$silence) {$this->fail(9);} |
2221 | $r12 = self::$FAILED; |
2222 | $this->currPos = $p2; |
2223 | $r1 = self::$FAILED; |
2224 | goto seq_2; |
2225 | } |
2226 | $r13 = $this->discard_($silence); |
2227 | if ($r13===self::$FAILED) { |
2228 | $this->currPos = $p2; |
2229 | $r1 = self::$FAILED; |
2230 | goto seq_2; |
2231 | } |
2232 | $r14 = $this->discardExtendedAttributeRest($silence); |
2233 | if ($r14===self::$FAILED) { |
2234 | $this->currPos = $p2; |
2235 | $r1 = self::$FAILED; |
2236 | goto seq_2; |
2237 | } |
2238 | $r1 = true; |
2239 | seq_2: |
2240 | if ($r1!==self::$FAILED) { |
2241 | goto choice_1; |
2242 | } |
2243 | // free $p2 |
2244 | // start seq_3 |
2245 | $p2 = $this->currPos; |
2246 | if (($this->input[$this->currPos] ?? null) === "{") { |
2247 | $this->currPos++; |
2248 | $r15 = "{"; |
2249 | } else { |
2250 | if (!$silence) {$this->fail(17);} |
2251 | $r15 = self::$FAILED; |
2252 | $r1 = self::$FAILED; |
2253 | goto seq_3; |
2254 | } |
2255 | $r16 = $this->discard_($silence); |
2256 | if ($r16===self::$FAILED) { |
2257 | $this->currPos = $p2; |
2258 | $r1 = self::$FAILED; |
2259 | goto seq_3; |
2260 | } |
2261 | $r17 = $this->discardExtendedAttributeInner($silence); |
2262 | if ($r17===self::$FAILED) { |
2263 | $this->currPos = $p2; |
2264 | $r1 = self::$FAILED; |
2265 | goto seq_3; |
2266 | } |
2267 | if (($this->input[$this->currPos] ?? null) === "}") { |
2268 | $this->currPos++; |
2269 | $r18 = "}"; |
2270 | } else { |
2271 | if (!$silence) {$this->fail(18);} |
2272 | $r18 = self::$FAILED; |
2273 | $this->currPos = $p2; |
2274 | $r1 = self::$FAILED; |
2275 | goto seq_3; |
2276 | } |
2277 | $r19 = $this->discard_($silence); |
2278 | if ($r19===self::$FAILED) { |
2279 | $this->currPos = $p2; |
2280 | $r1 = self::$FAILED; |
2281 | goto seq_3; |
2282 | } |
2283 | $r20 = $this->discardExtendedAttributeRest($silence); |
2284 | if ($r20===self::$FAILED) { |
2285 | $this->currPos = $p2; |
2286 | $r1 = self::$FAILED; |
2287 | goto seq_3; |
2288 | } |
2289 | $r1 = true; |
2290 | seq_3: |
2291 | if ($r1!==self::$FAILED) { |
2292 | goto choice_1; |
2293 | } |
2294 | // free $p2 |
2295 | // start seq_4 |
2296 | $p2 = $this->currPos; |
2297 | $r21 = self::$FAILED; |
2298 | for (;;) { |
2299 | $r22 = $this->discardOther($silence); |
2300 | if ($r22!==self::$FAILED) { |
2301 | $r21 = true; |
2302 | } else { |
2303 | break; |
2304 | } |
2305 | } |
2306 | if ($r21===self::$FAILED) { |
2307 | $r1 = self::$FAILED; |
2308 | goto seq_4; |
2309 | } |
2310 | // free $r22 |
2311 | $r22 = $this->discardExtendedAttributeRest($silence); |
2312 | if ($r22===self::$FAILED) { |
2313 | $this->currPos = $p2; |
2314 | $r1 = self::$FAILED; |
2315 | goto seq_4; |
2316 | } |
2317 | $r1 = true; |
2318 | seq_4: |
2319 | // free $p2 |
2320 | choice_1: |
2321 | return $r1; |
2322 | } |
2323 | private function discardi_($silence) { |
2324 | $p2 = $this->currPos; |
2325 | // start seq_1 |
2326 | $p3 = $this->currPos; |
2327 | $p4 = $this->currPos; |
2328 | $r5 = $this->input[$this->currPos] ?? ''; |
2329 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r5)) { |
2330 | $this->currPos++; |
2331 | } else { |
2332 | $r5 = self::$FAILED; |
2333 | } |
2334 | if ($r5 === self::$FAILED) { |
2335 | $r5 = false; |
2336 | } else { |
2337 | $r5 = self::$FAILED; |
2338 | $this->currPos = $p4; |
2339 | $r1 = self::$FAILED; |
2340 | goto seq_1; |
2341 | } |
2342 | // free $p4 |
2343 | $r6 = $this->parse_($silence); |
2344 | // c <- $r6 |
2345 | if ($r6===self::$FAILED) { |
2346 | $this->currPos = $p3; |
2347 | $r1 = self::$FAILED; |
2348 | goto seq_1; |
2349 | } |
2350 | $r1 = true; |
2351 | seq_1: |
2352 | if ($r1!==self::$FAILED) { |
2353 | $this->savedPos = $p2; |
2354 | $r1 = $this->a7($r6); |
2355 | } |
2356 | // free $p3 |
2357 | return $r1; |
2358 | } |
2359 | private function parseCallbackRestOrInterface($silence) { |
2360 | // start choice_1 |
2361 | $r1 = $this->parseCallbackRest($silence); |
2362 | if ($r1!==self::$FAILED) { |
2363 | goto choice_1; |
2364 | } |
2365 | $p2 = $this->currPos; |
2366 | // start seq_1 |
2367 | $p3 = $this->currPos; |
2368 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "interface", $this->currPos, 9, false) === 0) { |
2369 | $r4 = "interface"; |
2370 | $this->currPos += 9; |
2371 | } else { |
2372 | if (!$silence) {$this->fail(15);} |
2373 | $r4 = self::$FAILED; |
2374 | $r1 = self::$FAILED; |
2375 | goto seq_1; |
2376 | } |
2377 | $r5 = $this->discardi_($silence); |
2378 | if ($r5===self::$FAILED) { |
2379 | $this->currPos = $p3; |
2380 | $r1 = self::$FAILED; |
2381 | goto seq_1; |
2382 | } |
2383 | $r6 = $this->parseidentifier($silence); |
2384 | // name <- $r6 |
2385 | if ($r6===self::$FAILED) { |
2386 | $this->currPos = $p3; |
2387 | $r1 = self::$FAILED; |
2388 | goto seq_1; |
2389 | } |
2390 | $r7 = $this->discard_($silence); |
2391 | if ($r7===self::$FAILED) { |
2392 | $this->currPos = $p3; |
2393 | $r1 = self::$FAILED; |
2394 | goto seq_1; |
2395 | } |
2396 | if (($this->input[$this->currPos] ?? null) === "{") { |
2397 | $this->currPos++; |
2398 | $r8 = "{"; |
2399 | } else { |
2400 | if (!$silence) {$this->fail(17);} |
2401 | $r8 = self::$FAILED; |
2402 | $this->currPos = $p3; |
2403 | $r1 = self::$FAILED; |
2404 | goto seq_1; |
2405 | } |
2406 | $r9 = $this->discard_($silence); |
2407 | if ($r9===self::$FAILED) { |
2408 | $this->currPos = $p3; |
2409 | $r1 = self::$FAILED; |
2410 | goto seq_1; |
2411 | } |
2412 | $r10 = $this->parseCallbackInterfaceMembers($silence); |
2413 | // m <- $r10 |
2414 | if ($r10===self::$FAILED) { |
2415 | $this->currPos = $p3; |
2416 | $r1 = self::$FAILED; |
2417 | goto seq_1; |
2418 | } |
2419 | if (($this->input[$this->currPos] ?? null) === "}") { |
2420 | $this->currPos++; |
2421 | $r11 = "}"; |
2422 | } else { |
2423 | if (!$silence) {$this->fail(18);} |
2424 | $r11 = self::$FAILED; |
2425 | $this->currPos = $p3; |
2426 | $r1 = self::$FAILED; |
2427 | goto seq_1; |
2428 | } |
2429 | $r12 = $this->discard_($silence); |
2430 | if ($r12===self::$FAILED) { |
2431 | $this->currPos = $p3; |
2432 | $r1 = self::$FAILED; |
2433 | goto seq_1; |
2434 | } |
2435 | if (($this->input[$this->currPos] ?? null) === ";") { |
2436 | $this->currPos++; |
2437 | $r13 = ";"; |
2438 | } else { |
2439 | if (!$silence) {$this->fail(19);} |
2440 | $r13 = self::$FAILED; |
2441 | $this->currPos = $p3; |
2442 | $r1 = self::$FAILED; |
2443 | goto seq_1; |
2444 | } |
2445 | $r14 = $this->discard_($silence); |
2446 | if ($r14===self::$FAILED) { |
2447 | $this->currPos = $p3; |
2448 | $r1 = self::$FAILED; |
2449 | goto seq_1; |
2450 | } |
2451 | $r1 = true; |
2452 | seq_1: |
2453 | if ($r1!==self::$FAILED) { |
2454 | $this->savedPos = $p2; |
2455 | $r1 = $this->a19($r6, $r10); |
2456 | } |
2457 | // free $p3 |
2458 | choice_1: |
2459 | return $r1; |
2460 | } |
2461 | private function parseInterfaceOrMixin($silence) { |
2462 | // start choice_1 |
2463 | $r1 = $this->parseInterfaceRest($silence); |
2464 | if ($r1!==self::$FAILED) { |
2465 | goto choice_1; |
2466 | } |
2467 | $r1 = $this->parseMixinRest($silence); |
2468 | choice_1: |
2469 | return $r1; |
2470 | } |
2471 | private function parseidentifier($silence) { |
2472 | $p2 = $this->currPos; |
2473 | // start seq_1 |
2474 | $p3 = $this->currPos; |
2475 | $p4 = $this->currPos; |
2476 | // start choice_1 |
2477 | $r5 = $this->discardArgumentNameKeyword(true); |
2478 | if ($r5!==self::$FAILED) { |
2479 | goto choice_1; |
2480 | } |
2481 | $r5 = $this->discardBufferRelatedType(true); |
2482 | if ($r5!==self::$FAILED) { |
2483 | goto choice_1; |
2484 | } |
2485 | $r5 = $this->discardOtherIdLike(true); |
2486 | choice_1: |
2487 | if ($r5 === self::$FAILED) { |
2488 | $r5 = false; |
2489 | } else { |
2490 | $r5 = self::$FAILED; |
2491 | $this->currPos = $p4; |
2492 | $r1 = self::$FAILED; |
2493 | goto seq_1; |
2494 | } |
2495 | // free $p4 |
2496 | $p4 = $this->currPos; |
2497 | // start seq_2 |
2498 | $p7 = $this->currPos; |
2499 | // start choice_2 |
2500 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "_constructor", $this->currPos, 12, false) === 0) { |
2501 | $r8 = "_constructor"; |
2502 | $this->currPos += 12; |
2503 | goto choice_2; |
2504 | } else { |
2505 | $r8 = self::$FAILED; |
2506 | } |
2507 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "_toString", $this->currPos, 9, false) === 0) { |
2508 | $r8 = "_toString"; |
2509 | $this->currPos += 9; |
2510 | goto choice_2; |
2511 | } else { |
2512 | $r8 = self::$FAILED; |
2513 | } |
2514 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "toString", $this->currPos, 8, false) === 0) { |
2515 | $r8 = "toString"; |
2516 | $this->currPos += 8; |
2517 | } else { |
2518 | $r8 = self::$FAILED; |
2519 | } |
2520 | choice_2: |
2521 | if ($r8===self::$FAILED) { |
2522 | $r6 = self::$FAILED; |
2523 | goto seq_2; |
2524 | } |
2525 | $r9 = $this->discardi_(true); |
2526 | if ($r9===self::$FAILED) { |
2527 | $this->currPos = $p7; |
2528 | $r6 = self::$FAILED; |
2529 | goto seq_2; |
2530 | } |
2531 | $r6 = true; |
2532 | seq_2: |
2533 | // free $p7 |
2534 | if ($r6 === self::$FAILED) { |
2535 | $r6 = false; |
2536 | } else { |
2537 | $r6 = self::$FAILED; |
2538 | $this->currPos = $p4; |
2539 | $this->currPos = $p3; |
2540 | $r1 = self::$FAILED; |
2541 | goto seq_1; |
2542 | } |
2543 | // free $p4 |
2544 | $p4 = $this->currPos; |
2545 | // start seq_3 |
2546 | $p7 = $this->currPos; |
2547 | $r11 = $this->input[$this->currPos] ?? ''; |
2548 | if ($r11 === "-" || $r11 === "_") { |
2549 | $this->currPos++; |
2550 | } else { |
2551 | $r11 = self::$FAILED; |
2552 | if (!$silence) {$this->fail(28);} |
2553 | $r11 = null; |
2554 | } |
2555 | $r12 = $this->input[$this->currPos] ?? ''; |
2556 | if (preg_match("/^[A-Za-z]/", $r12)) { |
2557 | $this->currPos++; |
2558 | } else { |
2559 | $r12 = self::$FAILED; |
2560 | if (!$silence) {$this->fail(29);} |
2561 | $this->currPos = $p7; |
2562 | $r10 = self::$FAILED; |
2563 | goto seq_3; |
2564 | } |
2565 | for (;;) { |
2566 | $r14 = $this->input[$this->currPos] ?? ''; |
2567 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r14)) { |
2568 | $this->currPos++; |
2569 | } else { |
2570 | $r14 = self::$FAILED; |
2571 | if (!$silence) {$this->fail(30);} |
2572 | break; |
2573 | } |
2574 | } |
2575 | // free $r14 |
2576 | $r13 = true; |
2577 | if ($r13===self::$FAILED) { |
2578 | $this->currPos = $p7; |
2579 | $r10 = self::$FAILED; |
2580 | goto seq_3; |
2581 | } |
2582 | // free $r13 |
2583 | $r10 = true; |
2584 | seq_3: |
2585 | // s <- $r10 |
2586 | if ($r10!==self::$FAILED) { |
2587 | $r10 = substr($this->input, $p4, $this->currPos - $p4); |
2588 | } else { |
2589 | $r10 = self::$FAILED; |
2590 | $this->currPos = $p3; |
2591 | $r1 = self::$FAILED; |
2592 | goto seq_1; |
2593 | } |
2594 | // free $p7 |
2595 | // free $p4 |
2596 | $r1 = true; |
2597 | seq_1: |
2598 | if ($r1!==self::$FAILED) { |
2599 | $this->savedPos = $p2; |
2600 | $r1 = $this->a20($r10); |
2601 | } |
2602 | // free $p3 |
2603 | return $r1; |
2604 | } |
2605 | private function parseNamespaceMembers($silence) { |
2606 | $r1 = []; |
2607 | for (;;) { |
2608 | $p3 = $this->currPos; |
2609 | // start seq_1 |
2610 | $p4 = $this->currPos; |
2611 | $r5 = $this->parseleadingComments($silence); |
2612 | // c <- $r5 |
2613 | if ($r5===self::$FAILED) { |
2614 | $r2 = self::$FAILED; |
2615 | goto seq_1; |
2616 | } |
2617 | $r6 = $this->parseExtendedAttributeList($silence); |
2618 | // e <- $r6 |
2619 | if ($r6===self::$FAILED) { |
2620 | $this->currPos = $p4; |
2621 | $r2 = self::$FAILED; |
2622 | goto seq_1; |
2623 | } |
2624 | $r7 = $this->parseNamespaceMember($silence); |
2625 | // m <- $r7 |
2626 | if ($r7===self::$FAILED) { |
2627 | $this->currPos = $p4; |
2628 | $r2 = self::$FAILED; |
2629 | goto seq_1; |
2630 | } |
2631 | $r2 = true; |
2632 | seq_1: |
2633 | if ($r2!==self::$FAILED) { |
2634 | $this->savedPos = $p3; |
2635 | $r2 = $this->a21($r5, $r6, $r7); |
2636 | $r1[] = $r2; |
2637 | } else { |
2638 | break; |
2639 | } |
2640 | // free $p4 |
2641 | } |
2642 | // free $r2 |
2643 | return $r1; |
2644 | } |
2645 | private function parsePartialDefinition($silence) { |
2646 | // start choice_1 |
2647 | $p2 = $this->currPos; |
2648 | // start seq_1 |
2649 | $p3 = $this->currPos; |
2650 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "interface", $this->currPos, 9, false) === 0) { |
2651 | $r4 = "interface"; |
2652 | $this->currPos += 9; |
2653 | } else { |
2654 | if (!$silence) {$this->fail(15);} |
2655 | $r4 = self::$FAILED; |
2656 | $r1 = self::$FAILED; |
2657 | goto seq_1; |
2658 | } |
2659 | $r5 = $this->discardi_($silence); |
2660 | if ($r5===self::$FAILED) { |
2661 | $this->currPos = $p3; |
2662 | $r1 = self::$FAILED; |
2663 | goto seq_1; |
2664 | } |
2665 | $r6 = $this->parsePartialInterfaceOrPartialMixin($silence); |
2666 | // p <- $r6 |
2667 | if ($r6===self::$FAILED) { |
2668 | $this->currPos = $p3; |
2669 | $r1 = self::$FAILED; |
2670 | goto seq_1; |
2671 | } |
2672 | $r1 = true; |
2673 | seq_1: |
2674 | if ($r1!==self::$FAILED) { |
2675 | $this->savedPos = $p2; |
2676 | $r1 = $this->a22($r6); |
2677 | goto choice_1; |
2678 | } |
2679 | // free $p3 |
2680 | $r1 = $this->parsePartialDictionary($silence); |
2681 | if ($r1!==self::$FAILED) { |
2682 | goto choice_1; |
2683 | } |
2684 | $r1 = $this->parseNamespace($silence); |
2685 | choice_1: |
2686 | return $r1; |
2687 | } |
2688 | private function parseInheritance($silence) { |
2689 | $p2 = $this->currPos; |
2690 | // start seq_1 |
2691 | $p3 = $this->currPos; |
2692 | if (($this->input[$this->currPos] ?? null) === ":") { |
2693 | $this->currPos++; |
2694 | $r4 = ":"; |
2695 | } else { |
2696 | if (!$silence) {$this->fail(31);} |
2697 | $r4 = self::$FAILED; |
2698 | $r1 = self::$FAILED; |
2699 | goto seq_1; |
2700 | } |
2701 | $r5 = $this->discard_($silence); |
2702 | if ($r5===self::$FAILED) { |
2703 | $this->currPos = $p3; |
2704 | $r1 = self::$FAILED; |
2705 | goto seq_1; |
2706 | } |
2707 | $r6 = $this->parseidentifier($silence); |
2708 | // name <- $r6 |
2709 | if ($r6===self::$FAILED) { |
2710 | $this->currPos = $p3; |
2711 | $r1 = self::$FAILED; |
2712 | goto seq_1; |
2713 | } |
2714 | $r7 = $this->discard_($silence); |
2715 | if ($r7===self::$FAILED) { |
2716 | $this->currPos = $p3; |
2717 | $r1 = self::$FAILED; |
2718 | goto seq_1; |
2719 | } |
2720 | $r1 = true; |
2721 | seq_1: |
2722 | if ($r1!==self::$FAILED) { |
2723 | $this->savedPos = $p2; |
2724 | $r1 = $this->a23($r6); |
2725 | } else { |
2726 | $r1 = null; |
2727 | } |
2728 | // free $p3 |
2729 | return $r1; |
2730 | } |
2731 | private function parseDictionaryMembers($silence) { |
2732 | $r1 = []; |
2733 | for (;;) { |
2734 | $p3 = $this->currPos; |
2735 | // start seq_1 |
2736 | $p4 = $this->currPos; |
2737 | $r5 = $this->parseleadingComments($silence); |
2738 | // c <- $r5 |
2739 | if ($r5===self::$FAILED) { |
2740 | $r2 = self::$FAILED; |
2741 | goto seq_1; |
2742 | } |
2743 | $r6 = $this->parseExtendedAttributeList($silence); |
2744 | // e <- $r6 |
2745 | if ($r6===self::$FAILED) { |
2746 | $this->currPos = $p4; |
2747 | $r2 = self::$FAILED; |
2748 | goto seq_1; |
2749 | } |
2750 | $r7 = $this->parseDictionaryMemberRest($silence); |
2751 | // m <- $r7 |
2752 | if ($r7===self::$FAILED) { |
2753 | $this->currPos = $p4; |
2754 | $r2 = self::$FAILED; |
2755 | goto seq_1; |
2756 | } |
2757 | $r2 = true; |
2758 | seq_1: |
2759 | if ($r2!==self::$FAILED) { |
2760 | $this->savedPos = $p3; |
2761 | $r2 = $this->a21($r5, $r6, $r7); |
2762 | $r1[] = $r2; |
2763 | } else { |
2764 | break; |
2765 | } |
2766 | // free $p4 |
2767 | } |
2768 | // free $r2 |
2769 | return $r1; |
2770 | } |
2771 | private function parseEnumValueList($silence) { |
2772 | $p2 = $this->currPos; |
2773 | // start seq_1 |
2774 | $p3 = $this->currPos; |
2775 | $r4 = $this->parsestring($silence); |
2776 | // s <- $r4 |
2777 | if ($r4===self::$FAILED) { |
2778 | $r1 = self::$FAILED; |
2779 | goto seq_1; |
2780 | } |
2781 | $r5 = $this->discard_($silence); |
2782 | if ($r5===self::$FAILED) { |
2783 | $this->currPos = $p3; |
2784 | $r1 = self::$FAILED; |
2785 | goto seq_1; |
2786 | } |
2787 | $r6 = $this->parseEnumValueListComma($silence); |
2788 | // vals <- $r6 |
2789 | if ($r6===self::$FAILED) { |
2790 | $this->currPos = $p3; |
2791 | $r1 = self::$FAILED; |
2792 | goto seq_1; |
2793 | } |
2794 | $r1 = true; |
2795 | seq_1: |
2796 | if ($r1!==self::$FAILED) { |
2797 | $this->savedPos = $p2; |
2798 | $r1 = $this->a24($r4, $r6); |
2799 | } |
2800 | // free $p3 |
2801 | return $r1; |
2802 | } |
2803 | private function parseTypeWithExtendedAttributes($silence) { |
2804 | $p2 = $this->currPos; |
2805 | // start seq_1 |
2806 | $p3 = $this->currPos; |
2807 | $r4 = $this->parseExtendedAttributeList($silence); |
2808 | // e <- $r4 |
2809 | if ($r4===self::$FAILED) { |
2810 | $r1 = self::$FAILED; |
2811 | goto seq_1; |
2812 | } |
2813 | $r5 = $this->parseType($silence); |
2814 | // t <- $r5 |
2815 | if ($r5===self::$FAILED) { |
2816 | $this->currPos = $p3; |
2817 | $r1 = self::$FAILED; |
2818 | goto seq_1; |
2819 | } |
2820 | $r1 = true; |
2821 | seq_1: |
2822 | if ($r1!==self::$FAILED) { |
2823 | $this->savedPos = $p2; |
2824 | $r1 = $this->a25($r4, $r5); |
2825 | } |
2826 | // free $p3 |
2827 | return $r1; |
2828 | } |
2829 | private function parseArgumentList($silence) { |
2830 | // start choice_1 |
2831 | $p2 = $this->currPos; |
2832 | // start seq_1 |
2833 | $p3 = $this->currPos; |
2834 | $r4 = $this->parseArgument($silence); |
2835 | // a <- $r4 |
2836 | if ($r4===self::$FAILED) { |
2837 | $r1 = self::$FAILED; |
2838 | goto seq_1; |
2839 | } |
2840 | $r5 = $this->parseArguments($silence); |
2841 | // rest <- $r5 |
2842 | if ($r5===self::$FAILED) { |
2843 | $this->currPos = $p3; |
2844 | $r1 = self::$FAILED; |
2845 | goto seq_1; |
2846 | } |
2847 | $r1 = true; |
2848 | seq_1: |
2849 | if ($r1!==self::$FAILED) { |
2850 | $this->savedPos = $p2; |
2851 | $r1 = $this->a26($r4, $r5); |
2852 | goto choice_1; |
2853 | } |
2854 | // free $p3 |
2855 | $p3 = $this->currPos; |
2856 | $r1 = ''; |
2857 | if ($r1!==self::$FAILED) { |
2858 | $this->savedPos = $p3; |
2859 | $r1 = $this->a5(); |
2860 | } |
2861 | choice_1: |
2862 | return $r1; |
2863 | } |
2864 | private function parseExtendedAttributeRHS($silence) { |
2865 | // start choice_1 |
2866 | $p2 = $this->currPos; |
2867 | // start seq_1 |
2868 | $p3 = $this->currPos; |
2869 | $r4 = $this->parseidentifier($silence); |
2870 | // rhs <- $r4 |
2871 | if ($r4===self::$FAILED) { |
2872 | $r1 = self::$FAILED; |
2873 | goto seq_1; |
2874 | } |
2875 | $r5 = $this->discard_($silence); |
2876 | if ($r5===self::$FAILED) { |
2877 | $this->currPos = $p3; |
2878 | $r1 = self::$FAILED; |
2879 | goto seq_1; |
2880 | } |
2881 | $p6 = $this->currPos; |
2882 | if (($this->input[$this->currPos] ?? null) === "(") { |
2883 | $this->currPos++; |
2884 | $r7 = "("; |
2885 | } else { |
2886 | $r7 = self::$FAILED; |
2887 | } |
2888 | if ($r7 === self::$FAILED) { |
2889 | $r7 = false; |
2890 | } else { |
2891 | $r7 = self::$FAILED; |
2892 | $this->currPos = $p6; |
2893 | $this->currPos = $p3; |
2894 | $r1 = self::$FAILED; |
2895 | goto seq_1; |
2896 | } |
2897 | // free $p6 |
2898 | $r1 = true; |
2899 | seq_1: |
2900 | if ($r1!==self::$FAILED) { |
2901 | $this->savedPos = $p2; |
2902 | $r1 = $this->a27($r4); |
2903 | goto choice_1; |
2904 | } |
2905 | // free $p3 |
2906 | $p3 = $this->currPos; |
2907 | // start seq_2 |
2908 | $p6 = $this->currPos; |
2909 | if (($this->input[$this->currPos] ?? null) === "(") { |
2910 | $this->currPos++; |
2911 | $r8 = "("; |
2912 | } else { |
2913 | if (!$silence) {$this->fail(25);} |
2914 | $r8 = self::$FAILED; |
2915 | $r1 = self::$FAILED; |
2916 | goto seq_2; |
2917 | } |
2918 | $r9 = $this->discard_($silence); |
2919 | if ($r9===self::$FAILED) { |
2920 | $this->currPos = $p6; |
2921 | $r1 = self::$FAILED; |
2922 | goto seq_2; |
2923 | } |
2924 | $r10 = $this->parseidentifier($silence); |
2925 | // s <- $r10 |
2926 | if ($r10===self::$FAILED) { |
2927 | $this->currPos = $p6; |
2928 | $r1 = self::$FAILED; |
2929 | goto seq_2; |
2930 | } |
2931 | $r11 = $this->discard_($silence); |
2932 | if ($r11===self::$FAILED) { |
2933 | $this->currPos = $p6; |
2934 | $r1 = self::$FAILED; |
2935 | goto seq_2; |
2936 | } |
2937 | $r12 = []; |
2938 | for (;;) { |
2939 | $p14 = $this->currPos; |
2940 | // start seq_3 |
2941 | $p15 = $this->currPos; |
2942 | if (($this->input[$this->currPos] ?? null) === ",") { |
2943 | $this->currPos++; |
2944 | $r16 = ","; |
2945 | } else { |
2946 | if (!$silence) {$this->fail(13);} |
2947 | $r16 = self::$FAILED; |
2948 | $r13 = self::$FAILED; |
2949 | goto seq_3; |
2950 | } |
2951 | $r17 = $this->discard_($silence); |
2952 | if ($r17===self::$FAILED) { |
2953 | $this->currPos = $p15; |
2954 | $r13 = self::$FAILED; |
2955 | goto seq_3; |
2956 | } |
2957 | $r18 = $this->parseidentifier($silence); |
2958 | // s2 <- $r18 |
2959 | if ($r18===self::$FAILED) { |
2960 | $this->currPos = $p15; |
2961 | $r13 = self::$FAILED; |
2962 | goto seq_3; |
2963 | } |
2964 | $r19 = $this->discard_($silence); |
2965 | if ($r19===self::$FAILED) { |
2966 | $this->currPos = $p15; |
2967 | $r13 = self::$FAILED; |
2968 | goto seq_3; |
2969 | } |
2970 | $r13 = true; |
2971 | seq_3: |
2972 | if ($r13!==self::$FAILED) { |
2973 | $this->savedPos = $p14; |
2974 | $r13 = $this->a28($r10, $r18); |
2975 | $r12[] = $r13; |
2976 | } else { |
2977 | break; |
2978 | } |
2979 | // free $p15 |
2980 | } |
2981 | // rest <- $r12 |
2982 | // free $r13 |
2983 | if (($this->input[$this->currPos] ?? null) === ")") { |
2984 | $this->currPos++; |
2985 | $r13 = ")"; |
2986 | } else { |
2987 | if (!$silence) {$this->fail(26);} |
2988 | $r13 = self::$FAILED; |
2989 | $this->currPos = $p6; |
2990 | $r1 = self::$FAILED; |
2991 | goto seq_2; |
2992 | } |
2993 | $r20 = $this->discard_($silence); |
2994 | if ($r20===self::$FAILED) { |
2995 | $this->currPos = $p6; |
2996 | $r1 = self::$FAILED; |
2997 | goto seq_2; |
2998 | } |
2999 | $r1 = true; |
3000 | seq_2: |
3001 | if ($r1!==self::$FAILED) { |
3002 | $this->savedPos = $p3; |
3003 | $r1 = $this->a29($r10, $r12); |
3004 | goto choice_1; |
3005 | } |
3006 | // free $p6 |
3007 | $p6 = $this->currPos; |
3008 | // start seq_4 |
3009 | $p15 = $this->currPos; |
3010 | $p22 = $this->currPos; |
3011 | $r21 = $this->discardstring($silence); |
3012 | // s <- $r21 |
3013 | if ($r21!==self::$FAILED) { |
3014 | $r21 = substr($this->input, $p22, $this->currPos - $p22); |
3015 | } else { |
3016 | $r21 = self::$FAILED; |
3017 | $r1 = self::$FAILED; |
3018 | goto seq_4; |
3019 | } |
3020 | // free $p22 |
3021 | $r23 = $this->discard_($silence); |
3022 | if ($r23===self::$FAILED) { |
3023 | $this->currPos = $p15; |
3024 | $r1 = self::$FAILED; |
3025 | goto seq_4; |
3026 | } |
3027 | $r1 = true; |
3028 | seq_4: |
3029 | if ($r1!==self::$FAILED) { |
3030 | $this->savedPos = $p6; |
3031 | $r1 = $this->a30($r21); |
3032 | goto choice_1; |
3033 | } |
3034 | // free $p15 |
3035 | $p15 = $this->currPos; |
3036 | // start seq_5 |
3037 | $p22 = $this->currPos; |
3038 | if (($this->input[$this->currPos] ?? null) === "(") { |
3039 | $this->currPos++; |
3040 | $r24 = "("; |
3041 | } else { |
3042 | if (!$silence) {$this->fail(25);} |
3043 | $r24 = self::$FAILED; |
3044 | $r1 = self::$FAILED; |
3045 | goto seq_5; |
3046 | } |
3047 | $r25 = $this->discard_($silence); |
3048 | if ($r25===self::$FAILED) { |
3049 | $this->currPos = $p22; |
3050 | $r1 = self::$FAILED; |
3051 | goto seq_5; |
3052 | } |
3053 | $p27 = $this->currPos; |
3054 | $r26 = $this->discardstring($silence); |
3055 | // s <- $r26 |
3056 | if ($r26!==self::$FAILED) { |
3057 | $r26 = substr($this->input, $p27, $this->currPos - $p27); |
3058 | } else { |
3059 | $r26 = self::$FAILED; |
3060 | $this->currPos = $p22; |
3061 | $r1 = self::$FAILED; |
3062 | goto seq_5; |
3063 | } |
3064 | // free $p27 |
3065 | $r28 = $this->discard_($silence); |
3066 | if ($r28===self::$FAILED) { |
3067 | $this->currPos = $p22; |
3068 | $r1 = self::$FAILED; |
3069 | goto seq_5; |
3070 | } |
3071 | $r29 = []; |
3072 | for (;;) { |
3073 | $p27 = $this->currPos; |
3074 | // start seq_6 |
3075 | $p31 = $this->currPos; |
3076 | if (($this->input[$this->currPos] ?? null) === ",") { |
3077 | $this->currPos++; |
3078 | $r32 = ","; |
3079 | } else { |
3080 | if (!$silence) {$this->fail(13);} |
3081 | $r32 = self::$FAILED; |
3082 | $r30 = self::$FAILED; |
3083 | goto seq_6; |
3084 | } |
3085 | $r33 = $this->discard_($silence); |
3086 | if ($r33===self::$FAILED) { |
3087 | $this->currPos = $p31; |
3088 | $r30 = self::$FAILED; |
3089 | goto seq_6; |
3090 | } |
3091 | $p35 = $this->currPos; |
3092 | $r34 = $this->discardstring($silence); |
3093 | // s2 <- $r34 |
3094 | if ($r34!==self::$FAILED) { |
3095 | $r34 = substr($this->input, $p35, $this->currPos - $p35); |
3096 | } else { |
3097 | $r34 = self::$FAILED; |
3098 | $this->currPos = $p31; |
3099 | $r30 = self::$FAILED; |
3100 | goto seq_6; |
3101 | } |
3102 | // free $p35 |
3103 | $r36 = $this->discard_($silence); |
3104 | if ($r36===self::$FAILED) { |
3105 | $this->currPos = $p31; |
3106 | $r30 = self::$FAILED; |
3107 | goto seq_6; |
3108 | } |
3109 | $r30 = true; |
3110 | seq_6: |
3111 | if ($r30!==self::$FAILED) { |
3112 | $this->savedPos = $p27; |
3113 | $r30 = $this->a28($r26, $r34); |
3114 | $r29[] = $r30; |
3115 | } else { |
3116 | break; |
3117 | } |
3118 | // free $p31 |
3119 | } |
3120 | // rest <- $r29 |
3121 | // free $r30 |
3122 | if (($this->input[$this->currPos] ?? null) === ")") { |
3123 | $this->currPos++; |
3124 | $r30 = ")"; |
3125 | } else { |
3126 | if (!$silence) {$this->fail(26);} |
3127 | $r30 = self::$FAILED; |
3128 | $this->currPos = $p22; |
3129 | $r1 = self::$FAILED; |
3130 | goto seq_5; |
3131 | } |
3132 | $r37 = $this->discard_($silence); |
3133 | if ($r37===self::$FAILED) { |
3134 | $this->currPos = $p22; |
3135 | $r1 = self::$FAILED; |
3136 | goto seq_5; |
3137 | } |
3138 | $r1 = true; |
3139 | seq_5: |
3140 | if ($r1!==self::$FAILED) { |
3141 | $this->savedPos = $p15; |
3142 | $r1 = $this->a31($r26, $r29); |
3143 | goto choice_1; |
3144 | } |
3145 | // free $p22 |
3146 | $p22 = $this->currPos; |
3147 | // start seq_7 |
3148 | $p31 = $this->currPos; |
3149 | $p35 = $this->currPos; |
3150 | $r38 = $this->discardinteger($silence); |
3151 | // s <- $r38 |
3152 | if ($r38!==self::$FAILED) { |
3153 | $r38 = substr($this->input, $p35, $this->currPos - $p35); |
3154 | } else { |
3155 | $r38 = self::$FAILED; |
3156 | $r1 = self::$FAILED; |
3157 | goto seq_7; |
3158 | } |
3159 | // free $p35 |
3160 | $r39 = $this->discard_($silence); |
3161 | if ($r39===self::$FAILED) { |
3162 | $this->currPos = $p31; |
3163 | $r1 = self::$FAILED; |
3164 | goto seq_7; |
3165 | } |
3166 | $p35 = $this->currPos; |
3167 | if (($this->input[$this->currPos] ?? null) === ".") { |
3168 | $this->currPos++; |
3169 | $r40 = "."; |
3170 | } else { |
3171 | $r40 = self::$FAILED; |
3172 | } |
3173 | if ($r40 === self::$FAILED) { |
3174 | $r40 = false; |
3175 | } else { |
3176 | $r40 = self::$FAILED; |
3177 | $this->currPos = $p35; |
3178 | $this->currPos = $p31; |
3179 | $r1 = self::$FAILED; |
3180 | goto seq_7; |
3181 | } |
3182 | // free $p35 |
3183 | $r1 = true; |
3184 | seq_7: |
3185 | if ($r1!==self::$FAILED) { |
3186 | $this->savedPos = $p22; |
3187 | $r1 = $this->a32($r38); |
3188 | goto choice_1; |
3189 | } |
3190 | // free $p31 |
3191 | $p31 = $this->currPos; |
3192 | // start seq_8 |
3193 | $p35 = $this->currPos; |
3194 | if (($this->input[$this->currPos] ?? null) === "(") { |
3195 | $this->currPos++; |
3196 | $r41 = "("; |
3197 | } else { |
3198 | if (!$silence) {$this->fail(25);} |
3199 | $r41 = self::$FAILED; |
3200 | $r1 = self::$FAILED; |
3201 | goto seq_8; |
3202 | } |
3203 | $r42 = $this->discard_($silence); |
3204 | if ($r42===self::$FAILED) { |
3205 | $this->currPos = $p35; |
3206 | $r1 = self::$FAILED; |
3207 | goto seq_8; |
3208 | } |
3209 | $p44 = $this->currPos; |
3210 | $r43 = $this->discardinteger($silence); |
3211 | // s <- $r43 |
3212 | if ($r43!==self::$FAILED) { |
3213 | $r43 = substr($this->input, $p44, $this->currPos - $p44); |
3214 | } else { |
3215 | $r43 = self::$FAILED; |
3216 | $this->currPos = $p35; |
3217 | $r1 = self::$FAILED; |
3218 | goto seq_8; |
3219 | } |
3220 | // free $p44 |
3221 | $r45 = $this->discard_($silence); |
3222 | if ($r45===self::$FAILED) { |
3223 | $this->currPos = $p35; |
3224 | $r1 = self::$FAILED; |
3225 | goto seq_8; |
3226 | } |
3227 | $r46 = []; |
3228 | for (;;) { |
3229 | $p44 = $this->currPos; |
3230 | // start seq_9 |
3231 | $p48 = $this->currPos; |
3232 | if (($this->input[$this->currPos] ?? null) === ",") { |
3233 | $this->currPos++; |
3234 | $r49 = ","; |
3235 | } else { |
3236 | if (!$silence) {$this->fail(13);} |
3237 | $r49 = self::$FAILED; |
3238 | $r47 = self::$FAILED; |
3239 | goto seq_9; |
3240 | } |
3241 | $r50 = $this->discard_($silence); |
3242 | if ($r50===self::$FAILED) { |
3243 | $this->currPos = $p48; |
3244 | $r47 = self::$FAILED; |
3245 | goto seq_9; |
3246 | } |
3247 | $p52 = $this->currPos; |
3248 | $r51 = $this->discardinteger($silence); |
3249 | // s2 <- $r51 |
3250 | if ($r51!==self::$FAILED) { |
3251 | $r51 = substr($this->input, $p52, $this->currPos - $p52); |
3252 | } else { |
3253 | $r51 = self::$FAILED; |
3254 | $this->currPos = $p48; |
3255 | $r47 = self::$FAILED; |
3256 | goto seq_9; |
3257 | } |
3258 | // free $p52 |
3259 | $r53 = $this->discard_($silence); |
3260 | if ($r53===self::$FAILED) { |
3261 | $this->currPos = $p48; |
3262 | $r47 = self::$FAILED; |
3263 | goto seq_9; |
3264 | } |
3265 | $r47 = true; |
3266 | seq_9: |
3267 | if ($r47!==self::$FAILED) { |
3268 | $this->savedPos = $p44; |
3269 | $r47 = $this->a28($r43, $r51); |
3270 | $r46[] = $r47; |
3271 | } else { |
3272 | break; |
3273 | } |
3274 | // free $p48 |
3275 | } |
3276 | // rest <- $r46 |
3277 | // free $r47 |
3278 | if (($this->input[$this->currPos] ?? null) === ")") { |
3279 | $this->currPos++; |
3280 | $r47 = ")"; |
3281 | } else { |
3282 | if (!$silence) {$this->fail(26);} |
3283 | $r47 = self::$FAILED; |
3284 | $this->currPos = $p35; |
3285 | $r1 = self::$FAILED; |
3286 | goto seq_8; |
3287 | } |
3288 | $r54 = $this->discard_($silence); |
3289 | if ($r54===self::$FAILED) { |
3290 | $this->currPos = $p35; |
3291 | $r1 = self::$FAILED; |
3292 | goto seq_8; |
3293 | } |
3294 | $r1 = true; |
3295 | seq_8: |
3296 | if ($r1!==self::$FAILED) { |
3297 | $this->savedPos = $p31; |
3298 | $r1 = $this->a33($r43, $r46); |
3299 | goto choice_1; |
3300 | } |
3301 | // free $p35 |
3302 | $p35 = $this->currPos; |
3303 | // start seq_10 |
3304 | $p48 = $this->currPos; |
3305 | $p52 = $this->currPos; |
3306 | $r55 = $this->discarddecimal($silence); |
3307 | // s <- $r55 |
3308 | if ($r55!==self::$FAILED) { |
3309 | $r55 = substr($this->input, $p52, $this->currPos - $p52); |
3310 | } else { |
3311 | $r55 = self::$FAILED; |
3312 | $r1 = self::$FAILED; |
3313 | goto seq_10; |
3314 | } |
3315 | // free $p52 |
3316 | $r56 = $this->discard_($silence); |
3317 | if ($r56===self::$FAILED) { |
3318 | $this->currPos = $p48; |
3319 | $r1 = self::$FAILED; |
3320 | goto seq_10; |
3321 | } |
3322 | $r1 = true; |
3323 | seq_10: |
3324 | if ($r1!==self::$FAILED) { |
3325 | $this->savedPos = $p35; |
3326 | $r1 = $this->a34($r55); |
3327 | goto choice_1; |
3328 | } |
3329 | // free $p48 |
3330 | $p48 = $this->currPos; |
3331 | // start seq_11 |
3332 | $p52 = $this->currPos; |
3333 | if (($this->input[$this->currPos] ?? null) === "(") { |
3334 | $this->currPos++; |
3335 | $r57 = "("; |
3336 | } else { |
3337 | if (!$silence) {$this->fail(25);} |
3338 | $r57 = self::$FAILED; |
3339 | $r1 = self::$FAILED; |
3340 | goto seq_11; |
3341 | } |
3342 | $r58 = $this->discard_($silence); |
3343 | if ($r58===self::$FAILED) { |
3344 | $this->currPos = $p52; |
3345 | $r1 = self::$FAILED; |
3346 | goto seq_11; |
3347 | } |
3348 | $p60 = $this->currPos; |
3349 | $r59 = $this->discarddecimal($silence); |
3350 | // s <- $r59 |
3351 | if ($r59!==self::$FAILED) { |
3352 | $r59 = substr($this->input, $p60, $this->currPos - $p60); |
3353 | } else { |
3354 | $r59 = self::$FAILED; |
3355 | $this->currPos = $p52; |
3356 | $r1 = self::$FAILED; |
3357 | goto seq_11; |
3358 | } |
3359 | // free $p60 |
3360 | $r61 = $this->discard_($silence); |
3361 | if ($r61===self::$FAILED) { |
3362 | $this->currPos = $p52; |
3363 | $r1 = self::$FAILED; |
3364 | goto seq_11; |
3365 | } |
3366 | $r62 = []; |
3367 | for (;;) { |
3368 | $p60 = $this->currPos; |
3369 | // start seq_12 |
3370 | $p64 = $this->currPos; |
3371 | if (($this->input[$this->currPos] ?? null) === ",") { |
3372 | $this->currPos++; |
3373 | $r65 = ","; |
3374 | } else { |
3375 | if (!$silence) {$this->fail(13);} |
3376 | $r65 = self::$FAILED; |
3377 | $r63 = self::$FAILED; |
3378 | goto seq_12; |
3379 | } |
3380 | $r66 = $this->discard_($silence); |
3381 | if ($r66===self::$FAILED) { |
3382 | $this->currPos = $p64; |
3383 | $r63 = self::$FAILED; |
3384 | goto seq_12; |
3385 | } |
3386 | $p68 = $this->currPos; |
3387 | $r67 = $this->discarddecimal($silence); |
3388 | // s2 <- $r67 |
3389 | if ($r67!==self::$FAILED) { |
3390 | $r67 = substr($this->input, $p68, $this->currPos - $p68); |
3391 | } else { |
3392 | $r67 = self::$FAILED; |
3393 | $this->currPos = $p64; |
3394 | $r63 = self::$FAILED; |
3395 | goto seq_12; |
3396 | } |
3397 | // free $p68 |
3398 | $r69 = $this->discard_($silence); |
3399 | if ($r69===self::$FAILED) { |
3400 | $this->currPos = $p64; |
3401 | $r63 = self::$FAILED; |
3402 | goto seq_12; |
3403 | } |
3404 | $r63 = true; |
3405 | seq_12: |
3406 | if ($r63!==self::$FAILED) { |
3407 | $this->savedPos = $p60; |
3408 | $r63 = $this->a28($r59, $r67); |
3409 | $r62[] = $r63; |
3410 | } else { |
3411 | break; |
3412 | } |
3413 | // free $p64 |
3414 | } |
3415 | // rest <- $r62 |
3416 | // free $r63 |
3417 | if (($this->input[$this->currPos] ?? null) === ")") { |
3418 | $this->currPos++; |
3419 | $r63 = ")"; |
3420 | } else { |
3421 | if (!$silence) {$this->fail(26);} |
3422 | $r63 = self::$FAILED; |
3423 | $this->currPos = $p52; |
3424 | $r1 = self::$FAILED; |
3425 | goto seq_11; |
3426 | } |
3427 | $r70 = $this->discard_($silence); |
3428 | if ($r70===self::$FAILED) { |
3429 | $this->currPos = $p52; |
3430 | $r1 = self::$FAILED; |
3431 | goto seq_11; |
3432 | } |
3433 | $r1 = true; |
3434 | seq_11: |
3435 | if ($r1!==self::$FAILED) { |
3436 | $this->savedPos = $p48; |
3437 | $r1 = $this->a35($r59, $r62); |
3438 | } |
3439 | // free $p52 |
3440 | choice_1: |
3441 | return $r1; |
3442 | } |
3443 | private function discardExtendedAttributeInner($silence) { |
3444 | // start choice_1 |
3445 | // start seq_1 |
3446 | $p2 = $this->currPos; |
3447 | if (($this->input[$this->currPos] ?? null) === "(") { |
3448 | $this->currPos++; |
3449 | $r3 = "("; |
3450 | } else { |
3451 | if (!$silence) {$this->fail(25);} |
3452 | $r3 = self::$FAILED; |
3453 | $r1 = self::$FAILED; |
3454 | goto seq_1; |
3455 | } |
3456 | $r4 = $this->discard_($silence); |
3457 | if ($r4===self::$FAILED) { |
3458 | $this->currPos = $p2; |
3459 | $r1 = self::$FAILED; |
3460 | goto seq_1; |
3461 | } |
3462 | $r5 = $this->discardExtendedAttributeInner($silence); |
3463 | if ($r5===self::$FAILED) { |
3464 | $this->currPos = $p2; |
3465 | $r1 = self::$FAILED; |
3466 | goto seq_1; |
3467 | } |
3468 | if (($this->input[$this->currPos] ?? null) === ")") { |
3469 | $this->currPos++; |
3470 | $r6 = ")"; |
3471 | } else { |
3472 | if (!$silence) {$this->fail(26);} |
3473 | $r6 = self::$FAILED; |
3474 | $this->currPos = $p2; |
3475 | $r1 = self::$FAILED; |
3476 | goto seq_1; |
3477 | } |
3478 | $r7 = $this->discard_($silence); |
3479 | if ($r7===self::$FAILED) { |
3480 | $this->currPos = $p2; |
3481 | $r1 = self::$FAILED; |
3482 | goto seq_1; |
3483 | } |
3484 | $r8 = $this->discardExtendedAttributeInner($silence); |
3485 | if ($r8===self::$FAILED) { |
3486 | $this->currPos = $p2; |
3487 | $r1 = self::$FAILED; |
3488 | goto seq_1; |
3489 | } |
3490 | $r1 = true; |
3491 | seq_1: |
3492 | if ($r1!==self::$FAILED) { |
3493 | goto choice_1; |
3494 | } |
3495 | // free $p2 |
3496 | // start seq_2 |
3497 | $p2 = $this->currPos; |
3498 | if (($this->input[$this->currPos] ?? null) === "[") { |
3499 | $this->currPos++; |
3500 | $r9 = "["; |
3501 | } else { |
3502 | if (!$silence) {$this->fail(8);} |
3503 | $r9 = self::$FAILED; |
3504 | $r1 = self::$FAILED; |
3505 | goto seq_2; |
3506 | } |
3507 | $r10 = $this->discard_($silence); |
3508 | if ($r10===self::$FAILED) { |
3509 | $this->currPos = $p2; |
3510 | $r1 = self::$FAILED; |
3511 | goto seq_2; |
3512 | } |
3513 | $r11 = $this->discardExtendedAttributeInner($silence); |
3514 | if ($r11===self::$FAILED) { |
3515 | $this->currPos = $p2; |
3516 | $r1 = self::$FAILED; |
3517 | goto seq_2; |
3518 | } |
3519 | if (($this->input[$this->currPos] ?? null) === "]") { |
3520 | $this->currPos++; |
3521 | $r12 = "]"; |
3522 | } else { |
3523 | if (!$silence) {$this->fail(9);} |
3524 | $r12 = self::$FAILED; |
3525 | $this->currPos = $p2; |
3526 | $r1 = self::$FAILED; |
3527 | goto seq_2; |
3528 | } |
3529 | $r13 = $this->discard_($silence); |
3530 | if ($r13===self::$FAILED) { |
3531 | $this->currPos = $p2; |
3532 | $r1 = self::$FAILED; |
3533 | goto seq_2; |
3534 | } |
3535 | $r14 = $this->discardExtendedAttributeInner($silence); |
3536 | if ($r14===self::$FAILED) { |
3537 | $this->currPos = $p2; |
3538 | $r1 = self::$FAILED; |
3539 | goto seq_2; |
3540 | } |
3541 | $r1 = true; |
3542 | seq_2: |
3543 | if ($r1!==self::$FAILED) { |
3544 | goto choice_1; |
3545 | } |
3546 | // free $p2 |
3547 | // start seq_3 |
3548 | $p2 = $this->currPos; |
3549 | if (($this->input[$this->currPos] ?? null) === "{") { |
3550 | $this->currPos++; |
3551 | $r15 = "{"; |
3552 | } else { |
3553 | if (!$silence) {$this->fail(17);} |
3554 | $r15 = self::$FAILED; |
3555 | $r1 = self::$FAILED; |
3556 | goto seq_3; |
3557 | } |
3558 | $r16 = $this->discard_($silence); |
3559 | if ($r16===self::$FAILED) { |
3560 | $this->currPos = $p2; |
3561 | $r1 = self::$FAILED; |
3562 | goto seq_3; |
3563 | } |
3564 | $r17 = $this->discardExtendedAttributeInner($silence); |
3565 | if ($r17===self::$FAILED) { |
3566 | $this->currPos = $p2; |
3567 | $r1 = self::$FAILED; |
3568 | goto seq_3; |
3569 | } |
3570 | if (($this->input[$this->currPos] ?? null) === "}") { |
3571 | $this->currPos++; |
3572 | $r18 = "}"; |
3573 | } else { |
3574 | if (!$silence) {$this->fail(18);} |
3575 | $r18 = self::$FAILED; |
3576 | $this->currPos = $p2; |
3577 | $r1 = self::$FAILED; |
3578 | goto seq_3; |
3579 | } |
3580 | $r19 = $this->discard_($silence); |
3581 | if ($r19===self::$FAILED) { |
3582 | $this->currPos = $p2; |
3583 | $r1 = self::$FAILED; |
3584 | goto seq_3; |
3585 | } |
3586 | $r20 = $this->discardExtendedAttributeInner($silence); |
3587 | if ($r20===self::$FAILED) { |
3588 | $this->currPos = $p2; |
3589 | $r1 = self::$FAILED; |
3590 | goto seq_3; |
3591 | } |
3592 | $r1 = true; |
3593 | seq_3: |
3594 | if ($r1!==self::$FAILED) { |
3595 | goto choice_1; |
3596 | } |
3597 | // free $p2 |
3598 | // start seq_4 |
3599 | $p2 = $this->currPos; |
3600 | $r21 = $this->discardOtherOrComma($silence); |
3601 | if ($r21===self::$FAILED) { |
3602 | $r1 = self::$FAILED; |
3603 | goto seq_4; |
3604 | } |
3605 | $r22 = $this->discardExtendedAttributeInner($silence); |
3606 | if ($r22===self::$FAILED) { |
3607 | $this->currPos = $p2; |
3608 | $r1 = self::$FAILED; |
3609 | goto seq_4; |
3610 | } |
3611 | $r1 = true; |
3612 | seq_4: |
3613 | if ($r1!==self::$FAILED) { |
3614 | goto choice_1; |
3615 | } |
3616 | // free $p2 |
3617 | $r1 = ''; |
3618 | choice_1: |
3619 | return $r1; |
3620 | } |
3621 | private function discardExtendedAttributeRest($silence) { |
3622 | $r1 = $this->discardSpecCompliantExtendedAttribute($silence); |
3623 | if ($r1===self::$FAILED) { |
3624 | $r1 = null; |
3625 | } |
3626 | return $r1; |
3627 | } |
3628 | private function discardOther($silence) { |
3629 | // start choice_1 |
3630 | $r1 = $this->discardOtherIdLike($silence); |
3631 | if ($r1!==self::$FAILED) { |
3632 | goto choice_1; |
3633 | } |
3634 | $r1 = $this->discardArgumentNameKeyword($silence); |
3635 | if ($r1!==self::$FAILED) { |
3636 | goto choice_1; |
3637 | } |
3638 | $r1 = $this->discardBufferRelatedType($silence); |
3639 | if ($r1!==self::$FAILED) { |
3640 | goto choice_1; |
3641 | } |
3642 | $p2 = $this->currPos; |
3643 | // start seq_1 |
3644 | $p3 = $this->currPos; |
3645 | $p5 = $this->currPos; |
3646 | // start choice_2 |
3647 | $r4 = $this->discardinteger($silence); |
3648 | if ($r4!==self::$FAILED) { |
3649 | goto choice_2; |
3650 | } |
3651 | $r4 = $this->discarddecimal($silence); |
3652 | if ($r4!==self::$FAILED) { |
3653 | goto choice_2; |
3654 | } |
3655 | $r4 = $this->discardidentifier($silence); |
3656 | if ($r4!==self::$FAILED) { |
3657 | goto choice_2; |
3658 | } |
3659 | $r4 = $this->discardstring($silence); |
3660 | if ($r4!==self::$FAILED) { |
3661 | goto choice_2; |
3662 | } |
3663 | $r4 = $this->discardotherchar($silence); |
3664 | if ($r4!==self::$FAILED) { |
3665 | goto choice_2; |
3666 | } |
3667 | $r4 = $this->discardotherterminals($silence); |
3668 | choice_2: |
3669 | // c <- $r4 |
3670 | if ($r4!==self::$FAILED) { |
3671 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
3672 | } else { |
3673 | $r4 = self::$FAILED; |
3674 | $r1 = self::$FAILED; |
3675 | goto seq_1; |
3676 | } |
3677 | // free $p5 |
3678 | $r6 = $this->discard_($silence); |
3679 | if ($r6===self::$FAILED) { |
3680 | $this->currPos = $p3; |
3681 | $r1 = self::$FAILED; |
3682 | goto seq_1; |
3683 | } |
3684 | $r1 = true; |
3685 | seq_1: |
3686 | if ($r1!==self::$FAILED) { |
3687 | $this->savedPos = $p2; |
3688 | $r1 = $this->a7($r4); |
3689 | } |
3690 | // free $p3 |
3691 | choice_1: |
3692 | return $r1; |
3693 | } |
3694 | private function parse_($silence) { |
3695 | $p2 = $this->currPos; |
3696 | $r3 = []; |
3697 | for (;;) { |
3698 | // start choice_1 |
3699 | $p5 = $this->currPos; |
3700 | $r4 = $this->discardwhitespace($silence); |
3701 | if ($r4!==self::$FAILED) { |
3702 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
3703 | goto choice_1; |
3704 | } else { |
3705 | $r4 = self::$FAILED; |
3706 | } |
3707 | // free $p5 |
3708 | $p5 = $this->currPos; |
3709 | $r4 = $this->discardcomment($silence); |
3710 | if ($r4!==self::$FAILED) { |
3711 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
3712 | } else { |
3713 | $r4 = self::$FAILED; |
3714 | } |
3715 | // free $p5 |
3716 | choice_1: |
3717 | if ($r4!==self::$FAILED) { |
3718 | $r3[] = $r4; |
3719 | } else { |
3720 | break; |
3721 | } |
3722 | } |
3723 | // r <- $r3 |
3724 | // free $r4 |
3725 | $r1 = $r3; |
3726 | if ($r1!==self::$FAILED) { |
3727 | $this->savedPos = $p2; |
3728 | $r1 = $this->a1($r3); |
3729 | } |
3730 | return $r1; |
3731 | } |
3732 | private function parseCallbackRest($silence) { |
3733 | $p2 = $this->currPos; |
3734 | // start seq_1 |
3735 | $p3 = $this->currPos; |
3736 | $r4 = $this->parseidentifier($silence); |
3737 | // name <- $r4 |
3738 | if ($r4===self::$FAILED) { |
3739 | $r1 = self::$FAILED; |
3740 | goto seq_1; |
3741 | } |
3742 | $r5 = $this->discard_($silence); |
3743 | if ($r5===self::$FAILED) { |
3744 | $this->currPos = $p3; |
3745 | $r1 = self::$FAILED; |
3746 | goto seq_1; |
3747 | } |
3748 | if (($this->input[$this->currPos] ?? null) === "=") { |
3749 | $this->currPos++; |
3750 | $r6 = "="; |
3751 | } else { |
3752 | if (!$silence) {$this->fail(27);} |
3753 | $r6 = self::$FAILED; |
3754 | $this->currPos = $p3; |
3755 | $r1 = self::$FAILED; |
3756 | goto seq_1; |
3757 | } |
3758 | $r7 = $this->discard_($silence); |
3759 | if ($r7===self::$FAILED) { |
3760 | $this->currPos = $p3; |
3761 | $r1 = self::$FAILED; |
3762 | goto seq_1; |
3763 | } |
3764 | $r8 = $this->parseType($silence); |
3765 | // t <- $r8 |
3766 | if ($r8===self::$FAILED) { |
3767 | $this->currPos = $p3; |
3768 | $r1 = self::$FAILED; |
3769 | goto seq_1; |
3770 | } |
3771 | if (($this->input[$this->currPos] ?? null) === "(") { |
3772 | $this->currPos++; |
3773 | $r9 = "("; |
3774 | } else { |
3775 | if (!$silence) {$this->fail(25);} |
3776 | $r9 = self::$FAILED; |
3777 | $this->currPos = $p3; |
3778 | $r1 = self::$FAILED; |
3779 | goto seq_1; |
3780 | } |
3781 | $r10 = $this->discard_($silence); |
3782 | if ($r10===self::$FAILED) { |
3783 | $this->currPos = $p3; |
3784 | $r1 = self::$FAILED; |
3785 | goto seq_1; |
3786 | } |
3787 | $r11 = $this->parseArgumentList($silence); |
3788 | // args <- $r11 |
3789 | if ($r11===self::$FAILED) { |
3790 | $this->currPos = $p3; |
3791 | $r1 = self::$FAILED; |
3792 | goto seq_1; |
3793 | } |
3794 | if (($this->input[$this->currPos] ?? null) === ")") { |
3795 | $this->currPos++; |
3796 | $r12 = ")"; |
3797 | } else { |
3798 | if (!$silence) {$this->fail(26);} |
3799 | $r12 = self::$FAILED; |
3800 | $this->currPos = $p3; |
3801 | $r1 = self::$FAILED; |
3802 | goto seq_1; |
3803 | } |
3804 | $r13 = $this->discard_($silence); |
3805 | if ($r13===self::$FAILED) { |
3806 | $this->currPos = $p3; |
3807 | $r1 = self::$FAILED; |
3808 | goto seq_1; |
3809 | } |
3810 | if (($this->input[$this->currPos] ?? null) === ";") { |
3811 | $this->currPos++; |
3812 | $r14 = ";"; |
3813 | } else { |
3814 | if (!$silence) {$this->fail(19);} |
3815 | $r14 = self::$FAILED; |
3816 | $this->currPos = $p3; |
3817 | $r1 = self::$FAILED; |
3818 | goto seq_1; |
3819 | } |
3820 | $r15 = $this->discard_($silence); |
3821 | if ($r15===self::$FAILED) { |
3822 | $this->currPos = $p3; |
3823 | $r1 = self::$FAILED; |
3824 | goto seq_1; |
3825 | } |
3826 | $r1 = true; |
3827 | seq_1: |
3828 | if ($r1!==self::$FAILED) { |
3829 | $this->savedPos = $p2; |
3830 | $r1 = $this->a36($r4, $r8, $r11); |
3831 | } |
3832 | // free $p3 |
3833 | return $r1; |
3834 | } |
3835 | private function parseCallbackInterfaceMembers($silence) { |
3836 | $r1 = []; |
3837 | for (;;) { |
3838 | $p3 = $this->currPos; |
3839 | // start seq_1 |
3840 | $p4 = $this->currPos; |
3841 | $r5 = $this->parseleadingComments($silence); |
3842 | // c <- $r5 |
3843 | if ($r5===self::$FAILED) { |
3844 | $r2 = self::$FAILED; |
3845 | goto seq_1; |
3846 | } |
3847 | $r6 = $this->parseExtendedAttributeList($silence); |
3848 | // e <- $r6 |
3849 | if ($r6===self::$FAILED) { |
3850 | $this->currPos = $p4; |
3851 | $r2 = self::$FAILED; |
3852 | goto seq_1; |
3853 | } |
3854 | $r7 = $this->parseCallbackInterfaceMember($silence); |
3855 | // m <- $r7 |
3856 | if ($r7===self::$FAILED) { |
3857 | $this->currPos = $p4; |
3858 | $r2 = self::$FAILED; |
3859 | goto seq_1; |
3860 | } |
3861 | $r2 = true; |
3862 | seq_1: |
3863 | if ($r2!==self::$FAILED) { |
3864 | $this->savedPos = $p3; |
3865 | $r2 = $this->a21($r5, $r6, $r7); |
3866 | $r1[] = $r2; |
3867 | } else { |
3868 | break; |
3869 | } |
3870 | // free $p4 |
3871 | } |
3872 | // free $r2 |
3873 | return $r1; |
3874 | } |
3875 | private function parseInterfaceRest($silence) { |
3876 | $p2 = $this->currPos; |
3877 | // start seq_1 |
3878 | $p3 = $this->currPos; |
3879 | $r4 = $this->parseidentifier($silence); |
3880 | // name <- $r4 |
3881 | if ($r4===self::$FAILED) { |
3882 | $r1 = self::$FAILED; |
3883 | goto seq_1; |
3884 | } |
3885 | $r5 = $this->discard_($silence); |
3886 | if ($r5===self::$FAILED) { |
3887 | $this->currPos = $p3; |
3888 | $r1 = self::$FAILED; |
3889 | goto seq_1; |
3890 | } |
3891 | $r6 = $this->parseInheritance($silence); |
3892 | // inh <- $r6 |
3893 | if ($r6===self::$FAILED) { |
3894 | $this->currPos = $p3; |
3895 | $r1 = self::$FAILED; |
3896 | goto seq_1; |
3897 | } |
3898 | if (($this->input[$this->currPos] ?? null) === "{") { |
3899 | $this->currPos++; |
3900 | $r7 = "{"; |
3901 | } else { |
3902 | if (!$silence) {$this->fail(17);} |
3903 | $r7 = self::$FAILED; |
3904 | $this->currPos = $p3; |
3905 | $r1 = self::$FAILED; |
3906 | goto seq_1; |
3907 | } |
3908 | $r8 = $this->discard_($silence); |
3909 | if ($r8===self::$FAILED) { |
3910 | $this->currPos = $p3; |
3911 | $r1 = self::$FAILED; |
3912 | goto seq_1; |
3913 | } |
3914 | $r9 = $this->parseInterfaceMembers($silence); |
3915 | // m <- $r9 |
3916 | if ($r9===self::$FAILED) { |
3917 | $this->currPos = $p3; |
3918 | $r1 = self::$FAILED; |
3919 | goto seq_1; |
3920 | } |
3921 | if (($this->input[$this->currPos] ?? null) === "}") { |
3922 | $this->currPos++; |
3923 | $r10 = "}"; |
3924 | } else { |
3925 | if (!$silence) {$this->fail(18);} |
3926 | $r10 = self::$FAILED; |
3927 | $this->currPos = $p3; |
3928 | $r1 = self::$FAILED; |
3929 | goto seq_1; |
3930 | } |
3931 | $r11 = $this->discard_($silence); |
3932 | if ($r11===self::$FAILED) { |
3933 | $this->currPos = $p3; |
3934 | $r1 = self::$FAILED; |
3935 | goto seq_1; |
3936 | } |
3937 | if (($this->input[$this->currPos] ?? null) === ";") { |
3938 | $this->currPos++; |
3939 | $r12 = ";"; |
3940 | } else { |
3941 | if (!$silence) {$this->fail(19);} |
3942 | $r12 = self::$FAILED; |
3943 | $this->currPos = $p3; |
3944 | $r1 = self::$FAILED; |
3945 | goto seq_1; |
3946 | } |
3947 | $r13 = $this->parsec_($silence); |
3948 | // c <- $r13 |
3949 | if ($r13===self::$FAILED) { |
3950 | $this->currPos = $p3; |
3951 | $r1 = self::$FAILED; |
3952 | goto seq_1; |
3953 | } |
3954 | $r1 = true; |
3955 | seq_1: |
3956 | if ($r1!==self::$FAILED) { |
3957 | $this->savedPos = $p2; |
3958 | $r1 = $this->a37($r4, $r6, $r9, $r13); |
3959 | } |
3960 | // free $p3 |
3961 | return $r1; |
3962 | } |
3963 | private function parseMixinRest($silence) { |
3964 | $p2 = $this->currPos; |
3965 | // start seq_1 |
3966 | $p3 = $this->currPos; |
3967 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "mixin", $this->currPos, 5, false) === 0) { |
3968 | $r4 = "mixin"; |
3969 | $this->currPos += 5; |
3970 | } else { |
3971 | if (!$silence) {$this->fail(32);} |
3972 | $r4 = self::$FAILED; |
3973 | $r1 = self::$FAILED; |
3974 | goto seq_1; |
3975 | } |
3976 | $r5 = $this->discardi_($silence); |
3977 | if ($r5===self::$FAILED) { |
3978 | $this->currPos = $p3; |
3979 | $r1 = self::$FAILED; |
3980 | goto seq_1; |
3981 | } |
3982 | $r6 = $this->parseidentifier($silence); |
3983 | // name <- $r6 |
3984 | if ($r6===self::$FAILED) { |
3985 | $this->currPos = $p3; |
3986 | $r1 = self::$FAILED; |
3987 | goto seq_1; |
3988 | } |
3989 | $r7 = $this->discard_($silence); |
3990 | if ($r7===self::$FAILED) { |
3991 | $this->currPos = $p3; |
3992 | $r1 = self::$FAILED; |
3993 | goto seq_1; |
3994 | } |
3995 | if (($this->input[$this->currPos] ?? null) === "{") { |
3996 | $this->currPos++; |
3997 | $r8 = "{"; |
3998 | } else { |
3999 | if (!$silence) {$this->fail(17);} |
4000 | $r8 = self::$FAILED; |
4001 | $this->currPos = $p3; |
4002 | $r1 = self::$FAILED; |
4003 | goto seq_1; |
4004 | } |
4005 | $r9 = $this->discard_($silence); |
4006 | if ($r9===self::$FAILED) { |
4007 | $this->currPos = $p3; |
4008 | $r1 = self::$FAILED; |
4009 | goto seq_1; |
4010 | } |
4011 | $r10 = $this->parseMixinMembers($silence); |
4012 | // m <- $r10 |
4013 | if ($r10===self::$FAILED) { |
4014 | $this->currPos = $p3; |
4015 | $r1 = self::$FAILED; |
4016 | goto seq_1; |
4017 | } |
4018 | if (($this->input[$this->currPos] ?? null) === "}") { |
4019 | $this->currPos++; |
4020 | $r11 = "}"; |
4021 | } else { |
4022 | if (!$silence) {$this->fail(18);} |
4023 | $r11 = self::$FAILED; |
4024 | $this->currPos = $p3; |
4025 | $r1 = self::$FAILED; |
4026 | goto seq_1; |
4027 | } |
4028 | $r12 = $this->discard_($silence); |
4029 | if ($r12===self::$FAILED) { |
4030 | $this->currPos = $p3; |
4031 | $r1 = self::$FAILED; |
4032 | goto seq_1; |
4033 | } |
4034 | if (($this->input[$this->currPos] ?? null) === ";") { |
4035 | $this->currPos++; |
4036 | $r13 = ";"; |
4037 | } else { |
4038 | if (!$silence) {$this->fail(19);} |
4039 | $r13 = self::$FAILED; |
4040 | $this->currPos = $p3; |
4041 | $r1 = self::$FAILED; |
4042 | goto seq_1; |
4043 | } |
4044 | $r14 = $this->discard_($silence); |
4045 | if ($r14===self::$FAILED) { |
4046 | $this->currPos = $p3; |
4047 | $r1 = self::$FAILED; |
4048 | goto seq_1; |
4049 | } |
4050 | $r1 = true; |
4051 | seq_1: |
4052 | if ($r1!==self::$FAILED) { |
4053 | $this->savedPos = $p2; |
4054 | $r1 = $this->a38($r6, $r10); |
4055 | } |
4056 | // free $p3 |
4057 | return $r1; |
4058 | } |
4059 | private function discardArgumentNameKeyword($silence) { |
4060 | $p2 = $this->currPos; |
4061 | // start seq_1 |
4062 | $p3 = $this->currPos; |
4063 | $p5 = $this->currPos; |
4064 | // start choice_1 |
4065 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "async", $this->currPos, 5, false) === 0) { |
4066 | $r4 = "async"; |
4067 | $this->currPos += 5; |
4068 | goto choice_1; |
4069 | } else { |
4070 | if (!$silence) {$this->fail(33);} |
4071 | $r4 = self::$FAILED; |
4072 | } |
4073 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "attribute", $this->currPos, 9, false) === 0) { |
4074 | $r4 = "attribute"; |
4075 | $this->currPos += 9; |
4076 | goto choice_1; |
4077 | } else { |
4078 | if (!$silence) {$this->fail(34);} |
4079 | $r4 = self::$FAILED; |
4080 | } |
4081 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "callback", $this->currPos, 8, false) === 0) { |
4082 | $r4 = "callback"; |
4083 | $this->currPos += 8; |
4084 | goto choice_1; |
4085 | } else { |
4086 | if (!$silence) {$this->fail(14);} |
4087 | $r4 = self::$FAILED; |
4088 | } |
4089 | // start seq_2 |
4090 | $p6 = $this->currPos; |
4091 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "const", $this->currPos, 5, false) === 0) { |
4092 | $r7 = "const"; |
4093 | $this->currPos += 5; |
4094 | } else { |
4095 | if (!$silence) {$this->fail(35);} |
4096 | $r7 = self::$FAILED; |
4097 | $r4 = self::$FAILED; |
4098 | goto seq_2; |
4099 | } |
4100 | $p8 = $this->currPos; |
4101 | $r9 = $this->input[$this->currPos] ?? ''; |
4102 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r9)) { |
4103 | $this->currPos++; |
4104 | } else { |
4105 | $r9 = self::$FAILED; |
4106 | } |
4107 | if ($r9 === self::$FAILED) { |
4108 | $r9 = false; |
4109 | } else { |
4110 | $r9 = self::$FAILED; |
4111 | $this->currPos = $p8; |
4112 | $this->currPos = $p6; |
4113 | $r4 = self::$FAILED; |
4114 | goto seq_2; |
4115 | } |
4116 | // free $p8 |
4117 | $r4 = true; |
4118 | seq_2: |
4119 | if ($r4!==self::$FAILED) { |
4120 | goto choice_1; |
4121 | } |
4122 | // free $p6 |
4123 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "constructor", $this->currPos, 11, false) === 0) { |
4124 | $r4 = "constructor"; |
4125 | $this->currPos += 11; |
4126 | goto choice_1; |
4127 | } else { |
4128 | if (!$silence) {$this->fail(36);} |
4129 | $r4 = self::$FAILED; |
4130 | } |
4131 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "deleter", $this->currPos, 7, false) === 0) { |
4132 | $r4 = "deleter"; |
4133 | $this->currPos += 7; |
4134 | goto choice_1; |
4135 | } else { |
4136 | if (!$silence) {$this->fail(37);} |
4137 | $r4 = self::$FAILED; |
4138 | } |
4139 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "dictionary", $this->currPos, 10, false) === 0) { |
4140 | $r4 = "dictionary"; |
4141 | $this->currPos += 10; |
4142 | goto choice_1; |
4143 | } else { |
4144 | if (!$silence) {$this->fail(21);} |
4145 | $r4 = self::$FAILED; |
4146 | } |
4147 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "enum", $this->currPos, 4, false) === 0) { |
4148 | $r4 = "enum"; |
4149 | $this->currPos += 4; |
4150 | goto choice_1; |
4151 | } else { |
4152 | if (!$silence) {$this->fail(22);} |
4153 | $r4 = self::$FAILED; |
4154 | } |
4155 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "getter", $this->currPos, 6, false) === 0) { |
4156 | $r4 = "getter"; |
4157 | $this->currPos += 6; |
4158 | goto choice_1; |
4159 | } else { |
4160 | if (!$silence) {$this->fail(38);} |
4161 | $r4 = self::$FAILED; |
4162 | } |
4163 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "includes", $this->currPos, 8, false) === 0) { |
4164 | $r4 = "includes"; |
4165 | $this->currPos += 8; |
4166 | goto choice_1; |
4167 | } else { |
4168 | if (!$silence) {$this->fail(24);} |
4169 | $r4 = self::$FAILED; |
4170 | } |
4171 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "inherit", $this->currPos, 7, false) === 0) { |
4172 | $r4 = "inherit"; |
4173 | $this->currPos += 7; |
4174 | goto choice_1; |
4175 | } else { |
4176 | if (!$silence) {$this->fail(39);} |
4177 | $r4 = self::$FAILED; |
4178 | } |
4179 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "interface", $this->currPos, 9, false) === 0) { |
4180 | $r4 = "interface"; |
4181 | $this->currPos += 9; |
4182 | goto choice_1; |
4183 | } else { |
4184 | if (!$silence) {$this->fail(15);} |
4185 | $r4 = self::$FAILED; |
4186 | } |
4187 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "iterable", $this->currPos, 8, false) === 0) { |
4188 | $r4 = "iterable"; |
4189 | $this->currPos += 8; |
4190 | goto choice_1; |
4191 | } else { |
4192 | if (!$silence) {$this->fail(40);} |
4193 | $r4 = self::$FAILED; |
4194 | } |
4195 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "maplike", $this->currPos, 7, false) === 0) { |
4196 | $r4 = "maplike"; |
4197 | $this->currPos += 7; |
4198 | goto choice_1; |
4199 | } else { |
4200 | if (!$silence) {$this->fail(41);} |
4201 | $r4 = self::$FAILED; |
4202 | } |
4203 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "mixin", $this->currPos, 5, false) === 0) { |
4204 | $r4 = "mixin"; |
4205 | $this->currPos += 5; |
4206 | goto choice_1; |
4207 | } else { |
4208 | if (!$silence) {$this->fail(32);} |
4209 | $r4 = self::$FAILED; |
4210 | } |
4211 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "namespace", $this->currPos, 9, false) === 0) { |
4212 | $r4 = "namespace"; |
4213 | $this->currPos += 9; |
4214 | goto choice_1; |
4215 | } else { |
4216 | if (!$silence) {$this->fail(16);} |
4217 | $r4 = self::$FAILED; |
4218 | } |
4219 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "partial", $this->currPos, 7, false) === 0) { |
4220 | $r4 = "partial"; |
4221 | $this->currPos += 7; |
4222 | goto choice_1; |
4223 | } else { |
4224 | if (!$silence) {$this->fail(20);} |
4225 | $r4 = self::$FAILED; |
4226 | } |
4227 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "readonly", $this->currPos, 8, false) === 0) { |
4228 | $r4 = "readonly"; |
4229 | $this->currPos += 8; |
4230 | goto choice_1; |
4231 | } else { |
4232 | if (!$silence) {$this->fail(42);} |
4233 | $r4 = self::$FAILED; |
4234 | } |
4235 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "required", $this->currPos, 8, false) === 0) { |
4236 | $r4 = "required"; |
4237 | $this->currPos += 8; |
4238 | goto choice_1; |
4239 | } else { |
4240 | if (!$silence) {$this->fail(43);} |
4241 | $r4 = self::$FAILED; |
4242 | } |
4243 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setlike", $this->currPos, 7, false) === 0) { |
4244 | $r4 = "setlike"; |
4245 | $this->currPos += 7; |
4246 | goto choice_1; |
4247 | } else { |
4248 | if (!$silence) {$this->fail(44);} |
4249 | $r4 = self::$FAILED; |
4250 | } |
4251 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setter", $this->currPos, 6, false) === 0) { |
4252 | $r4 = "setter"; |
4253 | $this->currPos += 6; |
4254 | goto choice_1; |
4255 | } else { |
4256 | if (!$silence) {$this->fail(45);} |
4257 | $r4 = self::$FAILED; |
4258 | } |
4259 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "static", $this->currPos, 6, false) === 0) { |
4260 | $r4 = "static"; |
4261 | $this->currPos += 6; |
4262 | goto choice_1; |
4263 | } else { |
4264 | if (!$silence) {$this->fail(46);} |
4265 | $r4 = self::$FAILED; |
4266 | } |
4267 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "stringifier", $this->currPos, 11, false) === 0) { |
4268 | $r4 = "stringifier"; |
4269 | $this->currPos += 11; |
4270 | goto choice_1; |
4271 | } else { |
4272 | if (!$silence) {$this->fail(47);} |
4273 | $r4 = self::$FAILED; |
4274 | } |
4275 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "typedef", $this->currPos, 7, false) === 0) { |
4276 | $r4 = "typedef"; |
4277 | $this->currPos += 7; |
4278 | goto choice_1; |
4279 | } else { |
4280 | if (!$silence) {$this->fail(23);} |
4281 | $r4 = self::$FAILED; |
4282 | } |
4283 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "unrestricted", $this->currPos, 12, false) === 0) { |
4284 | $r4 = "unrestricted"; |
4285 | $this->currPos += 12; |
4286 | } else { |
4287 | if (!$silence) {$this->fail(48);} |
4288 | $r4 = self::$FAILED; |
4289 | } |
4290 | choice_1: |
4291 | // k <- $r4 |
4292 | if ($r4!==self::$FAILED) { |
4293 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
4294 | } else { |
4295 | $r4 = self::$FAILED; |
4296 | $r1 = self::$FAILED; |
4297 | goto seq_1; |
4298 | } |
4299 | // free $p5 |
4300 | $r10 = $this->discardi_($silence); |
4301 | if ($r10===self::$FAILED) { |
4302 | $this->currPos = $p3; |
4303 | $r1 = self::$FAILED; |
4304 | goto seq_1; |
4305 | } |
4306 | $r1 = true; |
4307 | seq_1: |
4308 | if ($r1!==self::$FAILED) { |
4309 | $this->savedPos = $p2; |
4310 | $r1 = $this->a39($r4); |
4311 | } |
4312 | // free $p3 |
4313 | return $r1; |
4314 | } |
4315 | private function discardBufferRelatedType($silence) { |
4316 | $p2 = $this->currPos; |
4317 | // start seq_1 |
4318 | $p3 = $this->currPos; |
4319 | $p5 = $this->currPos; |
4320 | // start choice_1 |
4321 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ArrayBuffer", $this->currPos, 11, false) === 0) { |
4322 | $r4 = "ArrayBuffer"; |
4323 | $this->currPos += 11; |
4324 | goto choice_1; |
4325 | } else { |
4326 | if (!$silence) {$this->fail(49);} |
4327 | $r4 = self::$FAILED; |
4328 | } |
4329 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "DataView", $this->currPos, 8, false) === 0) { |
4330 | $r4 = "DataView"; |
4331 | $this->currPos += 8; |
4332 | goto choice_1; |
4333 | } else { |
4334 | if (!$silence) {$this->fail(50);} |
4335 | $r4 = self::$FAILED; |
4336 | } |
4337 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int8Array", $this->currPos, 9, false) === 0) { |
4338 | $r4 = "Int8Array"; |
4339 | $this->currPos += 9; |
4340 | goto choice_1; |
4341 | } else { |
4342 | if (!$silence) {$this->fail(51);} |
4343 | $r4 = self::$FAILED; |
4344 | } |
4345 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int16Array", $this->currPos, 10, false) === 0) { |
4346 | $r4 = "Int16Array"; |
4347 | $this->currPos += 10; |
4348 | goto choice_1; |
4349 | } else { |
4350 | if (!$silence) {$this->fail(52);} |
4351 | $r4 = self::$FAILED; |
4352 | } |
4353 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int32Array", $this->currPos, 10, false) === 0) { |
4354 | $r4 = "Int32Array"; |
4355 | $this->currPos += 10; |
4356 | goto choice_1; |
4357 | } else { |
4358 | if (!$silence) {$this->fail(53);} |
4359 | $r4 = self::$FAILED; |
4360 | } |
4361 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint8Array", $this->currPos, 10, false) === 0) { |
4362 | $r4 = "Uint8Array"; |
4363 | $this->currPos += 10; |
4364 | goto choice_1; |
4365 | } else { |
4366 | if (!$silence) {$this->fail(54);} |
4367 | $r4 = self::$FAILED; |
4368 | } |
4369 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint16Array", $this->currPos, 11, false) === 0) { |
4370 | $r4 = "Uint16Array"; |
4371 | $this->currPos += 11; |
4372 | goto choice_1; |
4373 | } else { |
4374 | if (!$silence) {$this->fail(55);} |
4375 | $r4 = self::$FAILED; |
4376 | } |
4377 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint32Array", $this->currPos, 11, false) === 0) { |
4378 | $r4 = "Uint32Array"; |
4379 | $this->currPos += 11; |
4380 | goto choice_1; |
4381 | } else { |
4382 | if (!$silence) {$this->fail(56);} |
4383 | $r4 = self::$FAILED; |
4384 | } |
4385 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint8ClampedArray", $this->currPos, 17, false) === 0) { |
4386 | $r4 = "Uint8ClampedArray"; |
4387 | $this->currPos += 17; |
4388 | goto choice_1; |
4389 | } else { |
4390 | if (!$silence) {$this->fail(57);} |
4391 | $r4 = self::$FAILED; |
4392 | } |
4393 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Float32Array", $this->currPos, 12, false) === 0) { |
4394 | $r4 = "Float32Array"; |
4395 | $this->currPos += 12; |
4396 | goto choice_1; |
4397 | } else { |
4398 | if (!$silence) {$this->fail(58);} |
4399 | $r4 = self::$FAILED; |
4400 | } |
4401 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Float64Array", $this->currPos, 12, false) === 0) { |
4402 | $r4 = "Float64Array"; |
4403 | $this->currPos += 12; |
4404 | } else { |
4405 | if (!$silence) {$this->fail(59);} |
4406 | $r4 = self::$FAILED; |
4407 | } |
4408 | choice_1: |
4409 | // s <- $r4 |
4410 | if ($r4!==self::$FAILED) { |
4411 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
4412 | } else { |
4413 | $r4 = self::$FAILED; |
4414 | $r1 = self::$FAILED; |
4415 | goto seq_1; |
4416 | } |
4417 | // free $p5 |
4418 | $r6 = $this->discardi_($silence); |
4419 | if ($r6===self::$FAILED) { |
4420 | $this->currPos = $p3; |
4421 | $r1 = self::$FAILED; |
4422 | goto seq_1; |
4423 | } |
4424 | $r1 = true; |
4425 | seq_1: |
4426 | if ($r1!==self::$FAILED) { |
4427 | $this->savedPos = $p2; |
4428 | $r1 = $this->a40($r4); |
4429 | } |
4430 | // free $p3 |
4431 | return $r1; |
4432 | } |
4433 | private function discardOtherIdLike($silence) { |
4434 | $p2 = $this->currPos; |
4435 | // start seq_1 |
4436 | $p3 = $this->currPos; |
4437 | $p5 = $this->currPos; |
4438 | // start choice_1 |
4439 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ByteString", $this->currPos, 10, false) === 0) { |
4440 | $r4 = "ByteString"; |
4441 | $this->currPos += 10; |
4442 | goto choice_1; |
4443 | } else { |
4444 | if (!$silence) {$this->fail(60);} |
4445 | $r4 = self::$FAILED; |
4446 | } |
4447 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "DOMString", $this->currPos, 9, false) === 0) { |
4448 | $r4 = "DOMString"; |
4449 | $this->currPos += 9; |
4450 | goto choice_1; |
4451 | } else { |
4452 | if (!$silence) {$this->fail(61);} |
4453 | $r4 = self::$FAILED; |
4454 | } |
4455 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "FrozenArray", $this->currPos, 11, false) === 0) { |
4456 | $r4 = "FrozenArray"; |
4457 | $this->currPos += 11; |
4458 | goto choice_1; |
4459 | } else { |
4460 | if (!$silence) {$this->fail(62);} |
4461 | $r4 = self::$FAILED; |
4462 | } |
4463 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Infinity", $this->currPos, 8, false) === 0) { |
4464 | $r4 = "Infinity"; |
4465 | $this->currPos += 8; |
4466 | goto choice_1; |
4467 | } else { |
4468 | if (!$silence) {$this->fail(63);} |
4469 | $r4 = self::$FAILED; |
4470 | } |
4471 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "NaN", $this->currPos, 3, false) === 0) { |
4472 | $r4 = "NaN"; |
4473 | $this->currPos += 3; |
4474 | goto choice_1; |
4475 | } else { |
4476 | if (!$silence) {$this->fail(64);} |
4477 | $r4 = self::$FAILED; |
4478 | } |
4479 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ObservableArray", $this->currPos, 15, false) === 0) { |
4480 | $r4 = "ObservableArray"; |
4481 | $this->currPos += 15; |
4482 | goto choice_1; |
4483 | } else { |
4484 | if (!$silence) {$this->fail(65);} |
4485 | $r4 = self::$FAILED; |
4486 | } |
4487 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Promise", $this->currPos, 7, false) === 0) { |
4488 | $r4 = "Promise"; |
4489 | $this->currPos += 7; |
4490 | goto choice_1; |
4491 | } else { |
4492 | if (!$silence) {$this->fail(66);} |
4493 | $r4 = self::$FAILED; |
4494 | } |
4495 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "USVString", $this->currPos, 9, false) === 0) { |
4496 | $r4 = "USVString"; |
4497 | $this->currPos += 9; |
4498 | goto choice_1; |
4499 | } else { |
4500 | if (!$silence) {$this->fail(67);} |
4501 | $r4 = self::$FAILED; |
4502 | } |
4503 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "any", $this->currPos, 3, false) === 0) { |
4504 | $r4 = "any"; |
4505 | $this->currPos += 3; |
4506 | goto choice_1; |
4507 | } else { |
4508 | if (!$silence) {$this->fail(68);} |
4509 | $r4 = self::$FAILED; |
4510 | } |
4511 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "bigint", $this->currPos, 6, false) === 0) { |
4512 | $r4 = "bigint"; |
4513 | $this->currPos += 6; |
4514 | goto choice_1; |
4515 | } else { |
4516 | if (!$silence) {$this->fail(69);} |
4517 | $r4 = self::$FAILED; |
4518 | } |
4519 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "boolean", $this->currPos, 7, false) === 0) { |
4520 | $r4 = "boolean"; |
4521 | $this->currPos += 7; |
4522 | goto choice_1; |
4523 | } else { |
4524 | if (!$silence) {$this->fail(70);} |
4525 | $r4 = self::$FAILED; |
4526 | } |
4527 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "byte", $this->currPos, 4, false) === 0) { |
4528 | $r4 = "byte"; |
4529 | $this->currPos += 4; |
4530 | goto choice_1; |
4531 | } else { |
4532 | if (!$silence) {$this->fail(71);} |
4533 | $r4 = self::$FAILED; |
4534 | } |
4535 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "double", $this->currPos, 6, false) === 0) { |
4536 | $r4 = "double"; |
4537 | $this->currPos += 6; |
4538 | goto choice_1; |
4539 | } else { |
4540 | if (!$silence) {$this->fail(72);} |
4541 | $r4 = self::$FAILED; |
4542 | } |
4543 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "false", $this->currPos, 5, false) === 0) { |
4544 | $r4 = "false"; |
4545 | $this->currPos += 5; |
4546 | goto choice_1; |
4547 | } else { |
4548 | if (!$silence) {$this->fail(73);} |
4549 | $r4 = self::$FAILED; |
4550 | } |
4551 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "float", $this->currPos, 5, false) === 0) { |
4552 | $r4 = "float"; |
4553 | $this->currPos += 5; |
4554 | goto choice_1; |
4555 | } else { |
4556 | if (!$silence) {$this->fail(74);} |
4557 | $r4 = self::$FAILED; |
4558 | } |
4559 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "long", $this->currPos, 4, false) === 0) { |
4560 | $r4 = "long"; |
4561 | $this->currPos += 4; |
4562 | goto choice_1; |
4563 | } else { |
4564 | if (!$silence) {$this->fail(75);} |
4565 | $r4 = self::$FAILED; |
4566 | } |
4567 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "null", $this->currPos, 4, false) === 0) { |
4568 | $r4 = "null"; |
4569 | $this->currPos += 4; |
4570 | goto choice_1; |
4571 | } else { |
4572 | if (!$silence) {$this->fail(76);} |
4573 | $r4 = self::$FAILED; |
4574 | } |
4575 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "object", $this->currPos, 6, false) === 0) { |
4576 | $r4 = "object"; |
4577 | $this->currPos += 6; |
4578 | goto choice_1; |
4579 | } else { |
4580 | if (!$silence) {$this->fail(77);} |
4581 | $r4 = self::$FAILED; |
4582 | } |
4583 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "octet", $this->currPos, 5, false) === 0) { |
4584 | $r4 = "octet"; |
4585 | $this->currPos += 5; |
4586 | goto choice_1; |
4587 | } else { |
4588 | if (!$silence) {$this->fail(78);} |
4589 | $r4 = self::$FAILED; |
4590 | } |
4591 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "or", $this->currPos, 2, false) === 0) { |
4592 | $r4 = "or"; |
4593 | $this->currPos += 2; |
4594 | goto choice_1; |
4595 | } else { |
4596 | if (!$silence) {$this->fail(79);} |
4597 | $r4 = self::$FAILED; |
4598 | } |
4599 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "optional", $this->currPos, 8, false) === 0) { |
4600 | $r4 = "optional"; |
4601 | $this->currPos += 8; |
4602 | goto choice_1; |
4603 | } else { |
4604 | if (!$silence) {$this->fail(80);} |
4605 | $r4 = self::$FAILED; |
4606 | } |
4607 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "record", $this->currPos, 6, false) === 0) { |
4608 | $r4 = "record"; |
4609 | $this->currPos += 6; |
4610 | goto choice_1; |
4611 | } else { |
4612 | if (!$silence) {$this->fail(81);} |
4613 | $r4 = self::$FAILED; |
4614 | } |
4615 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "sequence", $this->currPos, 8, false) === 0) { |
4616 | $r4 = "sequence"; |
4617 | $this->currPos += 8; |
4618 | goto choice_1; |
4619 | } else { |
4620 | if (!$silence) {$this->fail(82);} |
4621 | $r4 = self::$FAILED; |
4622 | } |
4623 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "short", $this->currPos, 5, false) === 0) { |
4624 | $r4 = "short"; |
4625 | $this->currPos += 5; |
4626 | goto choice_1; |
4627 | } else { |
4628 | if (!$silence) {$this->fail(83);} |
4629 | $r4 = self::$FAILED; |
4630 | } |
4631 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "symbol", $this->currPos, 6, false) === 0) { |
4632 | $r4 = "symbol"; |
4633 | $this->currPos += 6; |
4634 | goto choice_1; |
4635 | } else { |
4636 | if (!$silence) {$this->fail(84);} |
4637 | $r4 = self::$FAILED; |
4638 | } |
4639 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "true", $this->currPos, 4, false) === 0) { |
4640 | $r4 = "true"; |
4641 | $this->currPos += 4; |
4642 | goto choice_1; |
4643 | } else { |
4644 | if (!$silence) {$this->fail(85);} |
4645 | $r4 = self::$FAILED; |
4646 | } |
4647 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "unsigned", $this->currPos, 8, false) === 0) { |
4648 | $r4 = "unsigned"; |
4649 | $this->currPos += 8; |
4650 | goto choice_1; |
4651 | } else { |
4652 | if (!$silence) {$this->fail(86);} |
4653 | $r4 = self::$FAILED; |
4654 | } |
4655 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "undefined", $this->currPos, 9, false) === 0) { |
4656 | $r4 = "undefined"; |
4657 | $this->currPos += 9; |
4658 | } else { |
4659 | if (!$silence) {$this->fail(87);} |
4660 | $r4 = self::$FAILED; |
4661 | } |
4662 | choice_1: |
4663 | // c <- $r4 |
4664 | if ($r4!==self::$FAILED) { |
4665 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
4666 | } else { |
4667 | $r4 = self::$FAILED; |
4668 | $r1 = self::$FAILED; |
4669 | goto seq_1; |
4670 | } |
4671 | // free $p5 |
4672 | $r6 = $this->discardi_($silence); |
4673 | if ($r6===self::$FAILED) { |
4674 | $this->currPos = $p3; |
4675 | $r1 = self::$FAILED; |
4676 | goto seq_1; |
4677 | } |
4678 | $r1 = true; |
4679 | seq_1: |
4680 | if ($r1!==self::$FAILED) { |
4681 | $this->savedPos = $p2; |
4682 | $r1 = $this->a7($r4); |
4683 | } |
4684 | // free $p3 |
4685 | return $r1; |
4686 | } |
4687 | private function parseNamespaceMember($silence) { |
4688 | // start choice_1 |
4689 | $r1 = $this->parseRegularOperation($silence); |
4690 | if ($r1!==self::$FAILED) { |
4691 | goto choice_1; |
4692 | } |
4693 | $p2 = $this->currPos; |
4694 | // start seq_1 |
4695 | $p3 = $this->currPos; |
4696 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "readonly", $this->currPos, 8, false) === 0) { |
4697 | $r4 = "readonly"; |
4698 | $this->currPos += 8; |
4699 | } else { |
4700 | if (!$silence) {$this->fail(42);} |
4701 | $r4 = self::$FAILED; |
4702 | $r1 = self::$FAILED; |
4703 | goto seq_1; |
4704 | } |
4705 | $r5 = $this->discardi_($silence); |
4706 | if ($r5===self::$FAILED) { |
4707 | $this->currPos = $p3; |
4708 | $r1 = self::$FAILED; |
4709 | goto seq_1; |
4710 | } |
4711 | $r6 = $this->parseAttributeRest($silence); |
4712 | // a <- $r6 |
4713 | if ($r6===self::$FAILED) { |
4714 | $this->currPos = $p3; |
4715 | $r1 = self::$FAILED; |
4716 | goto seq_1; |
4717 | } |
4718 | $r1 = true; |
4719 | seq_1: |
4720 | if ($r1!==self::$FAILED) { |
4721 | $this->savedPos = $p2; |
4722 | $r1 = $this->a41($r6); |
4723 | } |
4724 | // free $p3 |
4725 | choice_1: |
4726 | return $r1; |
4727 | } |
4728 | private function parsePartialInterfaceOrPartialMixin($silence) { |
4729 | // start choice_1 |
4730 | $r1 = $this->parsePartialInterfaceRest($silence); |
4731 | if ($r1!==self::$FAILED) { |
4732 | goto choice_1; |
4733 | } |
4734 | $r1 = $this->parseMixinRest($silence); |
4735 | choice_1: |
4736 | return $r1; |
4737 | } |
4738 | private function parsePartialDictionary($silence) { |
4739 | $p2 = $this->currPos; |
4740 | // start seq_1 |
4741 | $p3 = $this->currPos; |
4742 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "dictionary", $this->currPos, 10, false) === 0) { |
4743 | $r4 = "dictionary"; |
4744 | $this->currPos += 10; |
4745 | } else { |
4746 | if (!$silence) {$this->fail(21);} |
4747 | $r4 = self::$FAILED; |
4748 | $r1 = self::$FAILED; |
4749 | goto seq_1; |
4750 | } |
4751 | $r5 = $this->discardi_($silence); |
4752 | if ($r5===self::$FAILED) { |
4753 | $this->currPos = $p3; |
4754 | $r1 = self::$FAILED; |
4755 | goto seq_1; |
4756 | } |
4757 | $r6 = $this->parseidentifier($silence); |
4758 | // name <- $r6 |
4759 | if ($r6===self::$FAILED) { |
4760 | $this->currPos = $p3; |
4761 | $r1 = self::$FAILED; |
4762 | goto seq_1; |
4763 | } |
4764 | $r7 = $this->discard_($silence); |
4765 | if ($r7===self::$FAILED) { |
4766 | $this->currPos = $p3; |
4767 | $r1 = self::$FAILED; |
4768 | goto seq_1; |
4769 | } |
4770 | if (($this->input[$this->currPos] ?? null) === "{") { |
4771 | $this->currPos++; |
4772 | $r8 = "{"; |
4773 | } else { |
4774 | if (!$silence) {$this->fail(17);} |
4775 | $r8 = self::$FAILED; |
4776 | $this->currPos = $p3; |
4777 | $r1 = self::$FAILED; |
4778 | goto seq_1; |
4779 | } |
4780 | $r9 = $this->discard_($silence); |
4781 | if ($r9===self::$FAILED) { |
4782 | $this->currPos = $p3; |
4783 | $r1 = self::$FAILED; |
4784 | goto seq_1; |
4785 | } |
4786 | $r10 = $this->parseDictionaryMembers($silence); |
4787 | // m <- $r10 |
4788 | if ($r10===self::$FAILED) { |
4789 | $this->currPos = $p3; |
4790 | $r1 = self::$FAILED; |
4791 | goto seq_1; |
4792 | } |
4793 | if (($this->input[$this->currPos] ?? null) === "}") { |
4794 | $this->currPos++; |
4795 | $r11 = "}"; |
4796 | } else { |
4797 | if (!$silence) {$this->fail(18);} |
4798 | $r11 = self::$FAILED; |
4799 | $this->currPos = $p3; |
4800 | $r1 = self::$FAILED; |
4801 | goto seq_1; |
4802 | } |
4803 | $r12 = $this->discard_($silence); |
4804 | if ($r12===self::$FAILED) { |
4805 | $this->currPos = $p3; |
4806 | $r1 = self::$FAILED; |
4807 | goto seq_1; |
4808 | } |
4809 | if (($this->input[$this->currPos] ?? null) === ";") { |
4810 | $this->currPos++; |
4811 | $r13 = ";"; |
4812 | } else { |
4813 | if (!$silence) {$this->fail(19);} |
4814 | $r13 = self::$FAILED; |
4815 | $this->currPos = $p3; |
4816 | $r1 = self::$FAILED; |
4817 | goto seq_1; |
4818 | } |
4819 | $r14 = $this->discard_($silence); |
4820 | if ($r14===self::$FAILED) { |
4821 | $this->currPos = $p3; |
4822 | $r1 = self::$FAILED; |
4823 | goto seq_1; |
4824 | } |
4825 | $r1 = true; |
4826 | seq_1: |
4827 | if ($r1!==self::$FAILED) { |
4828 | $this->savedPos = $p2; |
4829 | $r1 = $this->a42($r6, $r10); |
4830 | } |
4831 | // free $p3 |
4832 | return $r1; |
4833 | } |
4834 | private function parseDictionaryMemberRest($silence) { |
4835 | // start choice_1 |
4836 | $p2 = $this->currPos; |
4837 | // start seq_1 |
4838 | $p3 = $this->currPos; |
4839 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "required", $this->currPos, 8, false) === 0) { |
4840 | $r4 = "required"; |
4841 | $this->currPos += 8; |
4842 | } else { |
4843 | if (!$silence) {$this->fail(43);} |
4844 | $r4 = self::$FAILED; |
4845 | $r1 = self::$FAILED; |
4846 | goto seq_1; |
4847 | } |
4848 | $r5 = $this->discardi_($silence); |
4849 | if ($r5===self::$FAILED) { |
4850 | $this->currPos = $p3; |
4851 | $r1 = self::$FAILED; |
4852 | goto seq_1; |
4853 | } |
4854 | $r6 = $this->parseTypeWithExtendedAttributes($silence); |
4855 | // t <- $r6 |
4856 | if ($r6===self::$FAILED) { |
4857 | $this->currPos = $p3; |
4858 | $r1 = self::$FAILED; |
4859 | goto seq_1; |
4860 | } |
4861 | $r7 = $this->parseidentifier($silence); |
4862 | // name <- $r7 |
4863 | if ($r7===self::$FAILED) { |
4864 | $this->currPos = $p3; |
4865 | $r1 = self::$FAILED; |
4866 | goto seq_1; |
4867 | } |
4868 | $r8 = $this->discard_($silence); |
4869 | if ($r8===self::$FAILED) { |
4870 | $this->currPos = $p3; |
4871 | $r1 = self::$FAILED; |
4872 | goto seq_1; |
4873 | } |
4874 | if (($this->input[$this->currPos] ?? null) === ";") { |
4875 | $this->currPos++; |
4876 | $r9 = ";"; |
4877 | } else { |
4878 | if (!$silence) {$this->fail(19);} |
4879 | $r9 = self::$FAILED; |
4880 | $this->currPos = $p3; |
4881 | $r1 = self::$FAILED; |
4882 | goto seq_1; |
4883 | } |
4884 | $r10 = $this->discard_($silence); |
4885 | if ($r10===self::$FAILED) { |
4886 | $this->currPos = $p3; |
4887 | $r1 = self::$FAILED; |
4888 | goto seq_1; |
4889 | } |
4890 | $r1 = true; |
4891 | seq_1: |
4892 | if ($r1!==self::$FAILED) { |
4893 | $this->savedPos = $p2; |
4894 | $r1 = $this->a43($r6, $r7); |
4895 | goto choice_1; |
4896 | } |
4897 | // free $p3 |
4898 | $p3 = $this->currPos; |
4899 | // start seq_2 |
4900 | $p11 = $this->currPos; |
4901 | $r12 = $this->parseType($silence); |
4902 | // t <- $r12 |
4903 | if ($r12===self::$FAILED) { |
4904 | $r1 = self::$FAILED; |
4905 | goto seq_2; |
4906 | } |
4907 | $r13 = $this->parseidentifier($silence); |
4908 | // name <- $r13 |
4909 | if ($r13===self::$FAILED) { |
4910 | $this->currPos = $p11; |
4911 | $r1 = self::$FAILED; |
4912 | goto seq_2; |
4913 | } |
4914 | $r14 = $this->discard_($silence); |
4915 | if ($r14===self::$FAILED) { |
4916 | $this->currPos = $p11; |
4917 | $r1 = self::$FAILED; |
4918 | goto seq_2; |
4919 | } |
4920 | $r15 = $this->parseDefault($silence); |
4921 | // d <- $r15 |
4922 | if ($r15===self::$FAILED) { |
4923 | $this->currPos = $p11; |
4924 | $r1 = self::$FAILED; |
4925 | goto seq_2; |
4926 | } |
4927 | if (($this->input[$this->currPos] ?? null) === ";") { |
4928 | $this->currPos++; |
4929 | $r16 = ";"; |
4930 | } else { |
4931 | if (!$silence) {$this->fail(19);} |
4932 | $r16 = self::$FAILED; |
4933 | $this->currPos = $p11; |
4934 | $r1 = self::$FAILED; |
4935 | goto seq_2; |
4936 | } |
4937 | $r17 = $this->discard_($silence); |
4938 | if ($r17===self::$FAILED) { |
4939 | $this->currPos = $p11; |
4940 | $r1 = self::$FAILED; |
4941 | goto seq_2; |
4942 | } |
4943 | $r1 = true; |
4944 | seq_2: |
4945 | if ($r1!==self::$FAILED) { |
4946 | $this->savedPos = $p3; |
4947 | $r1 = $this->a44($r12, $r13, $r15); |
4948 | } |
4949 | // free $p11 |
4950 | choice_1: |
4951 | return $r1; |
4952 | } |
4953 | private function parsestring($silence) { |
4954 | $p2 = $this->currPos; |
4955 | // start seq_1 |
4956 | $p3 = $this->currPos; |
4957 | if (($this->input[$this->currPos] ?? null) === "\"") { |
4958 | $this->currPos++; |
4959 | $r4 = "\""; |
4960 | } else { |
4961 | if (!$silence) {$this->fail(88);} |
4962 | $r4 = self::$FAILED; |
4963 | $r1 = self::$FAILED; |
4964 | goto seq_1; |
4965 | } |
4966 | $p6 = $this->currPos; |
4967 | for (;;) { |
4968 | $r7 = self::charAt($this->input, $this->currPos); |
4969 | if ($r7 !== '' && !($r7 === "\"")) { |
4970 | $this->currPos += strlen($r7); |
4971 | } else { |
4972 | $r7 = self::$FAILED; |
4973 | if (!$silence) {$this->fail(89);} |
4974 | break; |
4975 | } |
4976 | } |
4977 | // free $r7 |
4978 | $r5 = true; |
4979 | // s <- $r5 |
4980 | if ($r5!==self::$FAILED) { |
4981 | $r5 = substr($this->input, $p6, $this->currPos - $p6); |
4982 | } else { |
4983 | $r5 = self::$FAILED; |
4984 | $this->currPos = $p3; |
4985 | $r1 = self::$FAILED; |
4986 | goto seq_1; |
4987 | } |
4988 | // free $p6 |
4989 | if (($this->input[$this->currPos] ?? null) === "\"") { |
4990 | $this->currPos++; |
4991 | $r7 = "\""; |
4992 | } else { |
4993 | if (!$silence) {$this->fail(88);} |
4994 | $r7 = self::$FAILED; |
4995 | $this->currPos = $p3; |
4996 | $r1 = self::$FAILED; |
4997 | goto seq_1; |
4998 | } |
4999 | $r1 = true; |
5000 | seq_1: |
5001 | if ($r1!==self::$FAILED) { |
5002 | $this->savedPos = $p2; |
5003 | $r1 = $this->a40($r5); |
5004 | } |
5005 | // free $p3 |
5006 | return $r1; |
5007 | } |
5008 | private function parseEnumValueListComma($silence) { |
5009 | // start choice_1 |
5010 | $p2 = $this->currPos; |
5011 | // start seq_1 |
5012 | $p3 = $this->currPos; |
5013 | if (($this->input[$this->currPos] ?? null) === ",") { |
5014 | $this->currPos++; |
5015 | $r4 = ","; |
5016 | } else { |
5017 | if (!$silence) {$this->fail(13);} |
5018 | $r4 = self::$FAILED; |
5019 | $r1 = self::$FAILED; |
5020 | goto seq_1; |
5021 | } |
5022 | $r5 = $this->discard_($silence); |
5023 | if ($r5===self::$FAILED) { |
5024 | $this->currPos = $p3; |
5025 | $r1 = self::$FAILED; |
5026 | goto seq_1; |
5027 | } |
5028 | $r6 = $this->parseEnumValueListString($silence); |
5029 | // vals <- $r6 |
5030 | if ($r6===self::$FAILED) { |
5031 | $this->currPos = $p3; |
5032 | $r1 = self::$FAILED; |
5033 | goto seq_1; |
5034 | } |
5035 | $r1 = true; |
5036 | seq_1: |
5037 | if ($r1!==self::$FAILED) { |
5038 | $this->savedPos = $p2; |
5039 | $r1 = $this->a45($r6); |
5040 | goto choice_1; |
5041 | } |
5042 | // free $p3 |
5043 | $p3 = $this->currPos; |
5044 | $r1 = ''; |
5045 | if ($r1!==self::$FAILED) { |
5046 | $this->savedPos = $p3; |
5047 | $r1 = $this->a5(); |
5048 | } |
5049 | choice_1: |
5050 | return $r1; |
5051 | } |
5052 | private function parseType($silence) { |
5053 | // start choice_1 |
5054 | $r1 = $this->parseSingleType($silence); |
5055 | if ($r1!==self::$FAILED) { |
5056 | goto choice_1; |
5057 | } |
5058 | $p2 = $this->currPos; |
5059 | // start seq_1 |
5060 | $p3 = $this->currPos; |
5061 | $r4 = $this->parseUnionType($silence); |
5062 | // t <- $r4 |
5063 | if ($r4===self::$FAILED) { |
5064 | $r1 = self::$FAILED; |
5065 | goto seq_1; |
5066 | } |
5067 | $r5 = $this->parseNull($silence); |
5068 | // n <- $r5 |
5069 | if ($r5===self::$FAILED) { |
5070 | $this->currPos = $p3; |
5071 | $r1 = self::$FAILED; |
5072 | goto seq_1; |
5073 | } |
5074 | $r1 = true; |
5075 | seq_1: |
5076 | if ($r1!==self::$FAILED) { |
5077 | $this->savedPos = $p2; |
5078 | $r1 = $this->a46($r4, $r5); |
5079 | } |
5080 | // free $p3 |
5081 | choice_1: |
5082 | return $r1; |
5083 | } |
5084 | private function parseArgument($silence) { |
5085 | $p2 = $this->currPos; |
5086 | // start seq_1 |
5087 | $p3 = $this->currPos; |
5088 | $r4 = $this->parseExtendedAttributeList($silence); |
5089 | // e <- $r4 |
5090 | if ($r4===self::$FAILED) { |
5091 | $r1 = self::$FAILED; |
5092 | goto seq_1; |
5093 | } |
5094 | $r5 = $this->parseArgumentRest($silence); |
5095 | // a <- $r5 |
5096 | if ($r5===self::$FAILED) { |
5097 | $this->currPos = $p3; |
5098 | $r1 = self::$FAILED; |
5099 | goto seq_1; |
5100 | } |
5101 | $r1 = true; |
5102 | seq_1: |
5103 | if ($r1!==self::$FAILED) { |
5104 | $this->savedPos = $p2; |
5105 | $r1 = $this->a47($r4, $r5); |
5106 | } |
5107 | // free $p3 |
5108 | return $r1; |
5109 | } |
5110 | private function parseArguments($silence) { |
5111 | // start choice_1 |
5112 | $p2 = $this->currPos; |
5113 | // start seq_1 |
5114 | $p3 = $this->currPos; |
5115 | if (($this->input[$this->currPos] ?? null) === ",") { |
5116 | $this->currPos++; |
5117 | $r4 = ","; |
5118 | } else { |
5119 | if (!$silence) {$this->fail(13);} |
5120 | $r4 = self::$FAILED; |
5121 | $r1 = self::$FAILED; |
5122 | goto seq_1; |
5123 | } |
5124 | $r5 = $this->discard_($silence); |
5125 | if ($r5===self::$FAILED) { |
5126 | $this->currPos = $p3; |
5127 | $r1 = self::$FAILED; |
5128 | goto seq_1; |
5129 | } |
5130 | $r6 = $this->parseArgument($silence); |
5131 | // a <- $r6 |
5132 | if ($r6===self::$FAILED) { |
5133 | $this->currPos = $p3; |
5134 | $r1 = self::$FAILED; |
5135 | goto seq_1; |
5136 | } |
5137 | $r7 = $this->parseArguments($silence); |
5138 | // rest <- $r7 |
5139 | if ($r7===self::$FAILED) { |
5140 | $this->currPos = $p3; |
5141 | $r1 = self::$FAILED; |
5142 | goto seq_1; |
5143 | } |
5144 | $r1 = true; |
5145 | seq_1: |
5146 | if ($r1!==self::$FAILED) { |
5147 | $this->savedPos = $p2; |
5148 | $r1 = $this->a26($r6, $r7); |
5149 | goto choice_1; |
5150 | } |
5151 | // free $p3 |
5152 | $p3 = $this->currPos; |
5153 | $r1 = ''; |
5154 | if ($r1!==self::$FAILED) { |
5155 | $this->savedPos = $p3; |
5156 | $r1 = $this->a5(); |
5157 | } |
5158 | choice_1: |
5159 | return $r1; |
5160 | } |
5161 | private function discardstring($silence) { |
5162 | $p2 = $this->currPos; |
5163 | // start seq_1 |
5164 | $p3 = $this->currPos; |
5165 | if (($this->input[$this->currPos] ?? null) === "\"") { |
5166 | $this->currPos++; |
5167 | $r4 = "\""; |
5168 | } else { |
5169 | if (!$silence) {$this->fail(88);} |
5170 | $r4 = self::$FAILED; |
5171 | $r1 = self::$FAILED; |
5172 | goto seq_1; |
5173 | } |
5174 | $p6 = $this->currPos; |
5175 | for (;;) { |
5176 | $r7 = self::charAt($this->input, $this->currPos); |
5177 | if ($r7 !== '' && !($r7 === "\"")) { |
5178 | $this->currPos += strlen($r7); |
5179 | } else { |
5180 | $r7 = self::$FAILED; |
5181 | if (!$silence) {$this->fail(89);} |
5182 | break; |
5183 | } |
5184 | } |
5185 | // free $r7 |
5186 | $r5 = true; |
5187 | // s <- $r5 |
5188 | if ($r5!==self::$FAILED) { |
5189 | $r5 = substr($this->input, $p6, $this->currPos - $p6); |
5190 | } else { |
5191 | $r5 = self::$FAILED; |
5192 | $this->currPos = $p3; |
5193 | $r1 = self::$FAILED; |
5194 | goto seq_1; |
5195 | } |
5196 | // free $p6 |
5197 | if (($this->input[$this->currPos] ?? null) === "\"") { |
5198 | $this->currPos++; |
5199 | $r7 = "\""; |
5200 | } else { |
5201 | if (!$silence) {$this->fail(88);} |
5202 | $r7 = self::$FAILED; |
5203 | $this->currPos = $p3; |
5204 | $r1 = self::$FAILED; |
5205 | goto seq_1; |
5206 | } |
5207 | $r1 = true; |
5208 | seq_1: |
5209 | if ($r1!==self::$FAILED) { |
5210 | $this->savedPos = $p2; |
5211 | $r1 = $this->a40($r5); |
5212 | } |
5213 | // free $p3 |
5214 | return $r1; |
5215 | } |
5216 | private function discardinteger($silence) { |
5217 | $p2 = $this->currPos; |
5218 | // start seq_1 |
5219 | $p3 = $this->currPos; |
5220 | $r4 = $this->parseopt_minus($silence); |
5221 | // m <- $r4 |
5222 | if ($r4===self::$FAILED) { |
5223 | $r1 = self::$FAILED; |
5224 | goto seq_1; |
5225 | } |
5226 | // start choice_1 |
5227 | $r5 = $this->parsedecimal_integer($silence); |
5228 | if ($r5!==self::$FAILED) { |
5229 | goto choice_1; |
5230 | } |
5231 | $r5 = $this->parsehex_integer($silence); |
5232 | if ($r5!==self::$FAILED) { |
5233 | goto choice_1; |
5234 | } |
5235 | $r5 = $this->parseoctal_integer($silence); |
5236 | choice_1: |
5237 | // n <- $r5 |
5238 | if ($r5===self::$FAILED) { |
5239 | $this->currPos = $p3; |
5240 | $r1 = self::$FAILED; |
5241 | goto seq_1; |
5242 | } |
5243 | $r1 = true; |
5244 | seq_1: |
5245 | if ($r1!==self::$FAILED) { |
5246 | $this->savedPos = $p2; |
5247 | $r1 = $this->a48($r4, $r5); |
5248 | } |
5249 | // free $p3 |
5250 | return $r1; |
5251 | } |
5252 | private function discarddecimal($silence) { |
5253 | $p2 = $this->currPos; |
5254 | $p4 = $this->currPos; |
5255 | // start seq_1 |
5256 | $p5 = $this->currPos; |
5257 | $r6 = $this->parseopt_minus($silence); |
5258 | // m <- $r6 |
5259 | if ($r6===self::$FAILED) { |
5260 | $r3 = self::$FAILED; |
5261 | goto seq_1; |
5262 | } |
5263 | // start choice_1 |
5264 | // start seq_2 |
5265 | $p8 = $this->currPos; |
5266 | // start choice_2 |
5267 | // start seq_3 |
5268 | $p10 = $this->currPos; |
5269 | $r11 = self::$FAILED; |
5270 | for (;;) { |
5271 | $r12 = $this->input[$this->currPos] ?? ''; |
5272 | if (preg_match("/^[0-9]/", $r12)) { |
5273 | $this->currPos++; |
5274 | $r11 = true; |
5275 | } else { |
5276 | $r12 = self::$FAILED; |
5277 | if (!$silence) {$this->fail(90);} |
5278 | break; |
5279 | } |
5280 | } |
5281 | if ($r11===self::$FAILED) { |
5282 | $r9 = self::$FAILED; |
5283 | goto seq_3; |
5284 | } |
5285 | // free $r12 |
5286 | if (($this->input[$this->currPos] ?? null) === ".") { |
5287 | $this->currPos++; |
5288 | $r12 = "."; |
5289 | } else { |
5290 | if (!$silence) {$this->fail(91);} |
5291 | $r12 = self::$FAILED; |
5292 | $this->currPos = $p10; |
5293 | $r9 = self::$FAILED; |
5294 | goto seq_3; |
5295 | } |
5296 | for (;;) { |
5297 | $r14 = $this->input[$this->currPos] ?? ''; |
5298 | if (preg_match("/^[0-9]/", $r14)) { |
5299 | $this->currPos++; |
5300 | } else { |
5301 | $r14 = self::$FAILED; |
5302 | if (!$silence) {$this->fail(90);} |
5303 | break; |
5304 | } |
5305 | } |
5306 | // free $r14 |
5307 | $r13 = true; |
5308 | if ($r13===self::$FAILED) { |
5309 | $this->currPos = $p10; |
5310 | $r9 = self::$FAILED; |
5311 | goto seq_3; |
5312 | } |
5313 | // free $r13 |
5314 | $r9 = true; |
5315 | seq_3: |
5316 | if ($r9!==self::$FAILED) { |
5317 | goto choice_2; |
5318 | } |
5319 | // free $p10 |
5320 | // start seq_4 |
5321 | $p10 = $this->currPos; |
5322 | for (;;) { |
5323 | $r14 = $this->input[$this->currPos] ?? ''; |
5324 | if (preg_match("/^[0-9]/", $r14)) { |
5325 | $this->currPos++; |
5326 | } else { |
5327 | $r14 = self::$FAILED; |
5328 | if (!$silence) {$this->fail(90);} |
5329 | break; |
5330 | } |
5331 | } |
5332 | // free $r14 |
5333 | $r13 = true; |
5334 | if ($r13===self::$FAILED) { |
5335 | $r9 = self::$FAILED; |
5336 | goto seq_4; |
5337 | } |
5338 | // free $r13 |
5339 | if (($this->input[$this->currPos] ?? null) === ".") { |
5340 | $this->currPos++; |
5341 | $r13 = "."; |
5342 | } else { |
5343 | if (!$silence) {$this->fail(91);} |
5344 | $r13 = self::$FAILED; |
5345 | $this->currPos = $p10; |
5346 | $r9 = self::$FAILED; |
5347 | goto seq_4; |
5348 | } |
5349 | $r14 = self::$FAILED; |
5350 | for (;;) { |
5351 | $r15 = $this->input[$this->currPos] ?? ''; |
5352 | if (preg_match("/^[0-9]/", $r15)) { |
5353 | $this->currPos++; |
5354 | $r14 = true; |
5355 | } else { |
5356 | $r15 = self::$FAILED; |
5357 | if (!$silence) {$this->fail(90);} |
5358 | break; |
5359 | } |
5360 | } |
5361 | if ($r14===self::$FAILED) { |
5362 | $this->currPos = $p10; |
5363 | $r9 = self::$FAILED; |
5364 | goto seq_4; |
5365 | } |
5366 | // free $r15 |
5367 | $r9 = true; |
5368 | seq_4: |
5369 | // free $p10 |
5370 | choice_2: |
5371 | if ($r9===self::$FAILED) { |
5372 | $r7 = self::$FAILED; |
5373 | goto seq_2; |
5374 | } |
5375 | // start seq_5 |
5376 | $p10 = $this->currPos; |
5377 | $r16 = $this->input[$this->currPos] ?? ''; |
5378 | if ($r16 === "E" || $r16 === "e") { |
5379 | $this->currPos++; |
5380 | } else { |
5381 | $r16 = self::$FAILED; |
5382 | if (!$silence) {$this->fail(92);} |
5383 | $r15 = self::$FAILED; |
5384 | goto seq_5; |
5385 | } |
5386 | $r17 = $this->input[$this->currPos] ?? ''; |
5387 | if ($r17 === "+" || $r17 === "-") { |
5388 | $this->currPos++; |
5389 | } else { |
5390 | $r17 = self::$FAILED; |
5391 | if (!$silence) {$this->fail(93);} |
5392 | $r17 = null; |
5393 | } |
5394 | $r18 = self::$FAILED; |
5395 | for (;;) { |
5396 | $r19 = $this->input[$this->currPos] ?? ''; |
5397 | if (preg_match("/^[0-9]/", $r19)) { |
5398 | $this->currPos++; |
5399 | $r18 = true; |
5400 | } else { |
5401 | $r19 = self::$FAILED; |
5402 | if (!$silence) {$this->fail(90);} |
5403 | break; |
5404 | } |
5405 | } |
5406 | if ($r18===self::$FAILED) { |
5407 | $this->currPos = $p10; |
5408 | $r15 = self::$FAILED; |
5409 | goto seq_5; |
5410 | } |
5411 | // free $r19 |
5412 | $r15 = true; |
5413 | seq_5: |
5414 | if ($r15===self::$FAILED) { |
5415 | $r15 = null; |
5416 | } |
5417 | // free $p10 |
5418 | $r7 = true; |
5419 | seq_2: |
5420 | if ($r7!==self::$FAILED) { |
5421 | goto choice_1; |
5422 | } |
5423 | // free $p8 |
5424 | // start seq_6 |
5425 | $p8 = $this->currPos; |
5426 | $r19 = self::$FAILED; |
5427 | for (;;) { |
5428 | $r20 = $this->input[$this->currPos] ?? ''; |
5429 | if (preg_match("/^[0-9]/", $r20)) { |
5430 | $this->currPos++; |
5431 | $r19 = true; |
5432 | } else { |
5433 | $r20 = self::$FAILED; |
5434 | if (!$silence) {$this->fail(90);} |
5435 | break; |
5436 | } |
5437 | } |
5438 | if ($r19===self::$FAILED) { |
5439 | $r7 = self::$FAILED; |
5440 | goto seq_6; |
5441 | } |
5442 | // free $r20 |
5443 | $r20 = $this->input[$this->currPos] ?? ''; |
5444 | if ($r20 === "E" || $r20 === "e") { |
5445 | $this->currPos++; |
5446 | } else { |
5447 | $r20 = self::$FAILED; |
5448 | if (!$silence) {$this->fail(92);} |
5449 | $this->currPos = $p8; |
5450 | $r7 = self::$FAILED; |
5451 | goto seq_6; |
5452 | } |
5453 | $r21 = $this->input[$this->currPos] ?? ''; |
5454 | if ($r21 === "+" || $r21 === "-") { |
5455 | $this->currPos++; |
5456 | } else { |
5457 | $r21 = self::$FAILED; |
5458 | if (!$silence) {$this->fail(93);} |
5459 | $r21 = null; |
5460 | } |
5461 | $r22 = self::$FAILED; |
5462 | for (;;) { |
5463 | $r23 = $this->input[$this->currPos] ?? ''; |
5464 | if (preg_match("/^[0-9]/", $r23)) { |
5465 | $this->currPos++; |
5466 | $r22 = true; |
5467 | } else { |
5468 | $r23 = self::$FAILED; |
5469 | if (!$silence) {$this->fail(90);} |
5470 | break; |
5471 | } |
5472 | } |
5473 | if ($r22===self::$FAILED) { |
5474 | $this->currPos = $p8; |
5475 | $r7 = self::$FAILED; |
5476 | goto seq_6; |
5477 | } |
5478 | // free $r23 |
5479 | $r7 = true; |
5480 | seq_6: |
5481 | // free $p8 |
5482 | choice_1: |
5483 | if ($r7===self::$FAILED) { |
5484 | $this->currPos = $p5; |
5485 | $r3 = self::$FAILED; |
5486 | goto seq_1; |
5487 | } |
5488 | $r3 = true; |
5489 | seq_1: |
5490 | // s <- $r3 |
5491 | if ($r3!==self::$FAILED) { |
5492 | $r3 = substr($this->input, $p4, $this->currPos - $p4); |
5493 | } else { |
5494 | $r3 = self::$FAILED; |
5495 | } |
5496 | // free $p5 |
5497 | // free $p4 |
5498 | $r1 = $r3; |
5499 | if ($r1!==self::$FAILED) { |
5500 | $this->savedPos = $p2; |
5501 | $r1 = $this->a49($r3); |
5502 | } |
5503 | return $r1; |
5504 | } |
5505 | private function discardOtherOrComma($silence) { |
5506 | // start choice_1 |
5507 | $r1 = $this->discardOther($silence); |
5508 | if ($r1!==self::$FAILED) { |
5509 | goto choice_1; |
5510 | } |
5511 | // start seq_1 |
5512 | $p2 = $this->currPos; |
5513 | if (($this->input[$this->currPos] ?? null) === ",") { |
5514 | $this->currPos++; |
5515 | $r3 = ","; |
5516 | } else { |
5517 | if (!$silence) {$this->fail(13);} |
5518 | $r3 = self::$FAILED; |
5519 | $r1 = self::$FAILED; |
5520 | goto seq_1; |
5521 | } |
5522 | $r4 = $this->discard_($silence); |
5523 | if ($r4===self::$FAILED) { |
5524 | $this->currPos = $p2; |
5525 | $r1 = self::$FAILED; |
5526 | goto seq_1; |
5527 | } |
5528 | $r1 = true; |
5529 | seq_1: |
5530 | // free $p2 |
5531 | choice_1: |
5532 | return $r1; |
5533 | } |
5534 | private function discardidentifier($silence) { |
5535 | $p2 = $this->currPos; |
5536 | // start seq_1 |
5537 | $p3 = $this->currPos; |
5538 | $p4 = $this->currPos; |
5539 | // start choice_1 |
5540 | $r5 = $this->discardArgumentNameKeyword(true); |
5541 | if ($r5!==self::$FAILED) { |
5542 | goto choice_1; |
5543 | } |
5544 | $r5 = $this->discardBufferRelatedType(true); |
5545 | if ($r5!==self::$FAILED) { |
5546 | goto choice_1; |
5547 | } |
5548 | $r5 = $this->discardOtherIdLike(true); |
5549 | choice_1: |
5550 | if ($r5 === self::$FAILED) { |
5551 | $r5 = false; |
5552 | } else { |
5553 | $r5 = self::$FAILED; |
5554 | $this->currPos = $p4; |
5555 | $r1 = self::$FAILED; |
5556 | goto seq_1; |
5557 | } |
5558 | // free $p4 |
5559 | $p4 = $this->currPos; |
5560 | // start seq_2 |
5561 | $p7 = $this->currPos; |
5562 | // start choice_2 |
5563 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "_constructor", $this->currPos, 12, false) === 0) { |
5564 | $r8 = "_constructor"; |
5565 | $this->currPos += 12; |
5566 | goto choice_2; |
5567 | } else { |
5568 | $r8 = self::$FAILED; |
5569 | } |
5570 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "_toString", $this->currPos, 9, false) === 0) { |
5571 | $r8 = "_toString"; |
5572 | $this->currPos += 9; |
5573 | goto choice_2; |
5574 | } else { |
5575 | $r8 = self::$FAILED; |
5576 | } |
5577 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "toString", $this->currPos, 8, false) === 0) { |
5578 | $r8 = "toString"; |
5579 | $this->currPos += 8; |
5580 | } else { |
5581 | $r8 = self::$FAILED; |
5582 | } |
5583 | choice_2: |
5584 | if ($r8===self::$FAILED) { |
5585 | $r6 = self::$FAILED; |
5586 | goto seq_2; |
5587 | } |
5588 | $r9 = $this->discardi_(true); |
5589 | if ($r9===self::$FAILED) { |
5590 | $this->currPos = $p7; |
5591 | $r6 = self::$FAILED; |
5592 | goto seq_2; |
5593 | } |
5594 | $r6 = true; |
5595 | seq_2: |
5596 | // free $p7 |
5597 | if ($r6 === self::$FAILED) { |
5598 | $r6 = false; |
5599 | } else { |
5600 | $r6 = self::$FAILED; |
5601 | $this->currPos = $p4; |
5602 | $this->currPos = $p3; |
5603 | $r1 = self::$FAILED; |
5604 | goto seq_1; |
5605 | } |
5606 | // free $p4 |
5607 | $p4 = $this->currPos; |
5608 | // start seq_3 |
5609 | $p7 = $this->currPos; |
5610 | $r11 = $this->input[$this->currPos] ?? ''; |
5611 | if ($r11 === "-" || $r11 === "_") { |
5612 | $this->currPos++; |
5613 | } else { |
5614 | $r11 = self::$FAILED; |
5615 | if (!$silence) {$this->fail(28);} |
5616 | $r11 = null; |
5617 | } |
5618 | $r12 = $this->input[$this->currPos] ?? ''; |
5619 | if (preg_match("/^[A-Za-z]/", $r12)) { |
5620 | $this->currPos++; |
5621 | } else { |
5622 | $r12 = self::$FAILED; |
5623 | if (!$silence) {$this->fail(29);} |
5624 | $this->currPos = $p7; |
5625 | $r10 = self::$FAILED; |
5626 | goto seq_3; |
5627 | } |
5628 | for (;;) { |
5629 | $r14 = $this->input[$this->currPos] ?? ''; |
5630 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r14)) { |
5631 | $this->currPos++; |
5632 | } else { |
5633 | $r14 = self::$FAILED; |
5634 | if (!$silence) {$this->fail(30);} |
5635 | break; |
5636 | } |
5637 | } |
5638 | // free $r14 |
5639 | $r13 = true; |
5640 | if ($r13===self::$FAILED) { |
5641 | $this->currPos = $p7; |
5642 | $r10 = self::$FAILED; |
5643 | goto seq_3; |
5644 | } |
5645 | // free $r13 |
5646 | $r10 = true; |
5647 | seq_3: |
5648 | // s <- $r10 |
5649 | if ($r10!==self::$FAILED) { |
5650 | $r10 = substr($this->input, $p4, $this->currPos - $p4); |
5651 | } else { |
5652 | $r10 = self::$FAILED; |
5653 | $this->currPos = $p3; |
5654 | $r1 = self::$FAILED; |
5655 | goto seq_1; |
5656 | } |
5657 | // free $p7 |
5658 | // free $p4 |
5659 | $r1 = true; |
5660 | seq_1: |
5661 | if ($r1!==self::$FAILED) { |
5662 | $this->savedPos = $p2; |
5663 | $r1 = $this->a20($r10); |
5664 | } |
5665 | // free $p3 |
5666 | return $r1; |
5667 | } |
5668 | private function discardotherchar($silence) { |
5669 | // start seq_1 |
5670 | $p1 = $this->currPos; |
5671 | $p3 = $this->currPos; |
5672 | $r4 = $this->discardotherterminals(true); |
5673 | if ($r4 === self::$FAILED) { |
5674 | $r4 = false; |
5675 | } else { |
5676 | $r4 = self::$FAILED; |
5677 | $this->currPos = $p3; |
5678 | $r2 = self::$FAILED; |
5679 | goto seq_1; |
5680 | } |
5681 | // free $p3 |
5682 | $p3 = $this->currPos; |
5683 | if (strspn($this->input, "()[]{},", $this->currPos, 1) !== 0) { |
5684 | $r5 = $this->input[$this->currPos++]; |
5685 | } else { |
5686 | $r5 = self::$FAILED; |
5687 | } |
5688 | if ($r5 === self::$FAILED) { |
5689 | $r5 = false; |
5690 | } else { |
5691 | $r5 = self::$FAILED; |
5692 | $this->currPos = $p3; |
5693 | $this->currPos = $p1; |
5694 | $r2 = self::$FAILED; |
5695 | goto seq_1; |
5696 | } |
5697 | // free $p3 |
5698 | $r6 = self::charAt($this->input, $this->currPos); |
5699 | if (preg_match("/^[^\\x09\\x0a\\x0d 0-9A-Za-z]/", $r6)) { |
5700 | $this->currPos += strlen($r6); |
5701 | } else { |
5702 | $r6 = self::$FAILED; |
5703 | if (!$silence) {$this->fail(94);} |
5704 | $this->currPos = $p1; |
5705 | $r2 = self::$FAILED; |
5706 | goto seq_1; |
5707 | } |
5708 | $r2 = true; |
5709 | seq_1: |
5710 | // free $r2,$p1 |
5711 | return $r2; |
5712 | } |
5713 | private function discardotherterminals($silence) { |
5714 | // start choice_1 |
5715 | if (($this->input[$this->currPos] ?? null) === "-") { |
5716 | $this->currPos++; |
5717 | $r1 = "-"; |
5718 | goto choice_1; |
5719 | } else { |
5720 | if (!$silence) {$this->fail(95);} |
5721 | $r1 = self::$FAILED; |
5722 | } |
5723 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "-Infinity", $this->currPos, 9, false) === 0) { |
5724 | $r1 = "-Infinity"; |
5725 | $this->currPos += 9; |
5726 | goto choice_1; |
5727 | } else { |
5728 | if (!$silence) {$this->fail(96);} |
5729 | $r1 = self::$FAILED; |
5730 | } |
5731 | if (($this->input[$this->currPos] ?? null) === ".") { |
5732 | $this->currPos++; |
5733 | $r1 = "."; |
5734 | goto choice_1; |
5735 | } else { |
5736 | if (!$silence) {$this->fail(91);} |
5737 | $r1 = self::$FAILED; |
5738 | } |
5739 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "...", $this->currPos, 3, false) === 0) { |
5740 | $r1 = "..."; |
5741 | $this->currPos += 3; |
5742 | goto choice_1; |
5743 | } else { |
5744 | if (!$silence) {$this->fail(97);} |
5745 | $r1 = self::$FAILED; |
5746 | } |
5747 | if (($this->input[$this->currPos] ?? null) === ":") { |
5748 | $this->currPos++; |
5749 | $r1 = ":"; |
5750 | goto choice_1; |
5751 | } else { |
5752 | if (!$silence) {$this->fail(31);} |
5753 | $r1 = self::$FAILED; |
5754 | } |
5755 | if (($this->input[$this->currPos] ?? null) === ";") { |
5756 | $this->currPos++; |
5757 | $r1 = ";"; |
5758 | goto choice_1; |
5759 | } else { |
5760 | if (!$silence) {$this->fail(19);} |
5761 | $r1 = self::$FAILED; |
5762 | } |
5763 | if (($this->input[$this->currPos] ?? null) === "<") { |
5764 | $this->currPos++; |
5765 | $r1 = "<"; |
5766 | goto choice_1; |
5767 | } else { |
5768 | if (!$silence) {$this->fail(98);} |
5769 | $r1 = self::$FAILED; |
5770 | } |
5771 | if (($this->input[$this->currPos] ?? null) === "=") { |
5772 | $this->currPos++; |
5773 | $r1 = "="; |
5774 | goto choice_1; |
5775 | } else { |
5776 | if (!$silence) {$this->fail(27);} |
5777 | $r1 = self::$FAILED; |
5778 | } |
5779 | if (($this->input[$this->currPos] ?? null) === ">") { |
5780 | $this->currPos++; |
5781 | $r1 = ">"; |
5782 | goto choice_1; |
5783 | } else { |
5784 | if (!$silence) {$this->fail(99);} |
5785 | $r1 = self::$FAILED; |
5786 | } |
5787 | if (($this->input[$this->currPos] ?? null) === "?") { |
5788 | $this->currPos++; |
5789 | $r1 = "?"; |
5790 | } else { |
5791 | if (!$silence) {$this->fail(100);} |
5792 | $r1 = self::$FAILED; |
5793 | } |
5794 | choice_1: |
5795 | return $r1; |
5796 | } |
5797 | private function parseCallbackInterfaceMember($silence) { |
5798 | // start choice_1 |
5799 | $r1 = $this->parseConst($silence); |
5800 | if ($r1!==self::$FAILED) { |
5801 | goto choice_1; |
5802 | } |
5803 | $r1 = $this->parseRegularOperation($silence); |
5804 | choice_1: |
5805 | return $r1; |
5806 | } |
5807 | private function parseInterfaceMembers($silence) { |
5808 | $r1 = []; |
5809 | for (;;) { |
5810 | $p3 = $this->currPos; |
5811 | // start seq_1 |
5812 | $p4 = $this->currPos; |
5813 | $r5 = $this->parseleadingComments($silence); |
5814 | // c <- $r5 |
5815 | if ($r5===self::$FAILED) { |
5816 | $r2 = self::$FAILED; |
5817 | goto seq_1; |
5818 | } |
5819 | $r6 = $this->parseExtendedAttributeList($silence); |
5820 | // e <- $r6 |
5821 | if ($r6===self::$FAILED) { |
5822 | $this->currPos = $p4; |
5823 | $r2 = self::$FAILED; |
5824 | goto seq_1; |
5825 | } |
5826 | $r7 = $this->parseInterfaceMember($silence); |
5827 | // m <- $r7 |
5828 | if ($r7===self::$FAILED) { |
5829 | $this->currPos = $p4; |
5830 | $r2 = self::$FAILED; |
5831 | goto seq_1; |
5832 | } |
5833 | $r2 = true; |
5834 | seq_1: |
5835 | if ($r2!==self::$FAILED) { |
5836 | $this->savedPos = $p3; |
5837 | $r2 = $this->a21($r5, $r6, $r7); |
5838 | $r1[] = $r2; |
5839 | } else { |
5840 | break; |
5841 | } |
5842 | // free $p4 |
5843 | } |
5844 | // free $r2 |
5845 | return $r1; |
5846 | } |
5847 | private function parsec_($silence) { |
5848 | $p2 = $this->currPos; |
5849 | // start seq_1 |
5850 | $p3 = $this->currPos; |
5851 | $r4 = []; |
5852 | for (;;) { |
5853 | // start choice_1 |
5854 | $p6 = $this->currPos; |
5855 | $r5 = $this->input[$this->currPos] ?? ''; |
5856 | if ($r5 === " " || $r5 === "\x09") { |
5857 | $this->currPos++; |
5858 | $this->savedPos = $p6; |
5859 | $r5 = $this->a50(); |
5860 | goto choice_1; |
5861 | } else { |
5862 | $r5 = self::$FAILED; |
5863 | if (!$silence) {$this->fail(101);} |
5864 | } |
5865 | $p7 = $this->currPos; |
5866 | $r5 = $this->discardcomment($silence); |
5867 | if ($r5!==self::$FAILED) { |
5868 | $r5 = substr($this->input, $p7, $this->currPos - $p7); |
5869 | } else { |
5870 | $r5 = self::$FAILED; |
5871 | } |
5872 | // free $p7 |
5873 | choice_1: |
5874 | if ($r5!==self::$FAILED) { |
5875 | $r4[] = $r5; |
5876 | } else { |
5877 | break; |
5878 | } |
5879 | } |
5880 | // r <- $r4 |
5881 | // free $r5 |
5882 | $r5 = $this->discard_($silence); |
5883 | if ($r5===self::$FAILED) { |
5884 | $this->currPos = $p3; |
5885 | $r1 = self::$FAILED; |
5886 | goto seq_1; |
5887 | } |
5888 | $r1 = true; |
5889 | seq_1: |
5890 | if ($r1!==self::$FAILED) { |
5891 | $this->savedPos = $p2; |
5892 | $r1 = $this->a51($r4); |
5893 | } |
5894 | // free $p3 |
5895 | return $r1; |
5896 | } |
5897 | private function parseMixinMembers($silence) { |
5898 | $r1 = []; |
5899 | for (;;) { |
5900 | $p3 = $this->currPos; |
5901 | // start seq_1 |
5902 | $p4 = $this->currPos; |
5903 | $r5 = $this->parseleadingComments($silence); |
5904 | // c <- $r5 |
5905 | if ($r5===self::$FAILED) { |
5906 | $r2 = self::$FAILED; |
5907 | goto seq_1; |
5908 | } |
5909 | $r6 = $this->parseExtendedAttributeList($silence); |
5910 | // e <- $r6 |
5911 | if ($r6===self::$FAILED) { |
5912 | $this->currPos = $p4; |
5913 | $r2 = self::$FAILED; |
5914 | goto seq_1; |
5915 | } |
5916 | $r7 = $this->parseMixinMember($silence); |
5917 | // m <- $r7 |
5918 | if ($r7===self::$FAILED) { |
5919 | $this->currPos = $p4; |
5920 | $r2 = self::$FAILED; |
5921 | goto seq_1; |
5922 | } |
5923 | $r2 = true; |
5924 | seq_1: |
5925 | if ($r2!==self::$FAILED) { |
5926 | $this->savedPos = $p3; |
5927 | $r2 = $this->a21($r5, $r6, $r7); |
5928 | $r1[] = $r2; |
5929 | } else { |
5930 | break; |
5931 | } |
5932 | // free $p4 |
5933 | } |
5934 | // free $r2 |
5935 | return $r1; |
5936 | } |
5937 | private function parseRegularOperation($silence) { |
5938 | $p2 = $this->currPos; |
5939 | // start seq_1 |
5940 | $p3 = $this->currPos; |
5941 | $r4 = $this->parseType($silence); |
5942 | // t <- $r4 |
5943 | if ($r4===self::$FAILED) { |
5944 | $r1 = self::$FAILED; |
5945 | goto seq_1; |
5946 | } |
5947 | $r5 = $this->parseOperationRest($silence); |
5948 | // o <- $r5 |
5949 | if ($r5===self::$FAILED) { |
5950 | $this->currPos = $p3; |
5951 | $r1 = self::$FAILED; |
5952 | goto seq_1; |
5953 | } |
5954 | $r1 = true; |
5955 | seq_1: |
5956 | if ($r1!==self::$FAILED) { |
5957 | $this->savedPos = $p2; |
5958 | $r1 = $this->a52($r4, $r5); |
5959 | } |
5960 | // free $p3 |
5961 | return $r1; |
5962 | } |
5963 | private function parseAttributeRest($silence) { |
5964 | $p2 = $this->currPos; |
5965 | // start seq_1 |
5966 | $p3 = $this->currPos; |
5967 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "attribute", $this->currPos, 9, false) === 0) { |
5968 | $r4 = "attribute"; |
5969 | $this->currPos += 9; |
5970 | } else { |
5971 | if (!$silence) {$this->fail(34);} |
5972 | $r4 = self::$FAILED; |
5973 | $r1 = self::$FAILED; |
5974 | goto seq_1; |
5975 | } |
5976 | $r5 = $this->discardi_($silence); |
5977 | if ($r5===self::$FAILED) { |
5978 | $this->currPos = $p3; |
5979 | $r1 = self::$FAILED; |
5980 | goto seq_1; |
5981 | } |
5982 | $r6 = $this->parseTypeWithExtendedAttributes($silence); |
5983 | // t <- $r6 |
5984 | if ($r6===self::$FAILED) { |
5985 | $this->currPos = $p3; |
5986 | $r1 = self::$FAILED; |
5987 | goto seq_1; |
5988 | } |
5989 | $r7 = $this->parseAttributeName($silence); |
5990 | // name <- $r7 |
5991 | if ($r7===self::$FAILED) { |
5992 | $this->currPos = $p3; |
5993 | $r1 = self::$FAILED; |
5994 | goto seq_1; |
5995 | } |
5996 | if (($this->input[$this->currPos] ?? null) === ";") { |
5997 | $this->currPos++; |
5998 | $r8 = ";"; |
5999 | } else { |
6000 | if (!$silence) {$this->fail(19);} |
6001 | $r8 = self::$FAILED; |
6002 | $this->currPos = $p3; |
6003 | $r1 = self::$FAILED; |
6004 | goto seq_1; |
6005 | } |
6006 | $r9 = $this->parsec_($silence); |
6007 | // c <- $r9 |
6008 | if ($r9===self::$FAILED) { |
6009 | $this->currPos = $p3; |
6010 | $r1 = self::$FAILED; |
6011 | goto seq_1; |
6012 | } |
6013 | $r1 = true; |
6014 | seq_1: |
6015 | if ($r1!==self::$FAILED) { |
6016 | $this->savedPos = $p2; |
6017 | $r1 = $this->a53($r6, $r7, $r9); |
6018 | } |
6019 | // free $p3 |
6020 | return $r1; |
6021 | } |
6022 | private function parsePartialInterfaceRest($silence) { |
6023 | $p2 = $this->currPos; |
6024 | // start seq_1 |
6025 | $p3 = $this->currPos; |
6026 | $r4 = $this->parseidentifier($silence); |
6027 | // name <- $r4 |
6028 | if ($r4===self::$FAILED) { |
6029 | $r1 = self::$FAILED; |
6030 | goto seq_1; |
6031 | } |
6032 | $r5 = $this->discard_($silence); |
6033 | if ($r5===self::$FAILED) { |
6034 | $this->currPos = $p3; |
6035 | $r1 = self::$FAILED; |
6036 | goto seq_1; |
6037 | } |
6038 | if (($this->input[$this->currPos] ?? null) === "{") { |
6039 | $this->currPos++; |
6040 | $r6 = "{"; |
6041 | } else { |
6042 | if (!$silence) {$this->fail(17);} |
6043 | $r6 = self::$FAILED; |
6044 | $this->currPos = $p3; |
6045 | $r1 = self::$FAILED; |
6046 | goto seq_1; |
6047 | } |
6048 | $r7 = $this->discard_($silence); |
6049 | if ($r7===self::$FAILED) { |
6050 | $this->currPos = $p3; |
6051 | $r1 = self::$FAILED; |
6052 | goto seq_1; |
6053 | } |
6054 | $r8 = $this->parsePartialInterfaceMembers($silence); |
6055 | // m <- $r8 |
6056 | if ($r8===self::$FAILED) { |
6057 | $this->currPos = $p3; |
6058 | $r1 = self::$FAILED; |
6059 | goto seq_1; |
6060 | } |
6061 | if (($this->input[$this->currPos] ?? null) === "}") { |
6062 | $this->currPos++; |
6063 | $r9 = "}"; |
6064 | } else { |
6065 | if (!$silence) {$this->fail(18);} |
6066 | $r9 = self::$FAILED; |
6067 | $this->currPos = $p3; |
6068 | $r1 = self::$FAILED; |
6069 | goto seq_1; |
6070 | } |
6071 | $r10 = $this->discard_($silence); |
6072 | if ($r10===self::$FAILED) { |
6073 | $this->currPos = $p3; |
6074 | $r1 = self::$FAILED; |
6075 | goto seq_1; |
6076 | } |
6077 | if (($this->input[$this->currPos] ?? null) === ";") { |
6078 | $this->currPos++; |
6079 | $r11 = ";"; |
6080 | } else { |
6081 | if (!$silence) {$this->fail(19);} |
6082 | $r11 = self::$FAILED; |
6083 | $this->currPos = $p3; |
6084 | $r1 = self::$FAILED; |
6085 | goto seq_1; |
6086 | } |
6087 | $r12 = $this->discard_($silence); |
6088 | if ($r12===self::$FAILED) { |
6089 | $this->currPos = $p3; |
6090 | $r1 = self::$FAILED; |
6091 | goto seq_1; |
6092 | } |
6093 | $r1 = true; |
6094 | seq_1: |
6095 | if ($r1!==self::$FAILED) { |
6096 | $this->savedPos = $p2; |
6097 | $r1 = $this->a54($r4, $r8); |
6098 | } |
6099 | // free $p3 |
6100 | return $r1; |
6101 | } |
6102 | private function parseDefault($silence) { |
6103 | $p2 = $this->currPos; |
6104 | // start seq_1 |
6105 | $p3 = $this->currPos; |
6106 | if (($this->input[$this->currPos] ?? null) === "=") { |
6107 | $this->currPos++; |
6108 | $r4 = "="; |
6109 | } else { |
6110 | if (!$silence) {$this->fail(27);} |
6111 | $r4 = self::$FAILED; |
6112 | $r1 = self::$FAILED; |
6113 | goto seq_1; |
6114 | } |
6115 | $r5 = $this->discard_($silence); |
6116 | if ($r5===self::$FAILED) { |
6117 | $this->currPos = $p3; |
6118 | $r1 = self::$FAILED; |
6119 | goto seq_1; |
6120 | } |
6121 | $r6 = $this->parseDefaultValue($silence); |
6122 | // val <- $r6 |
6123 | if ($r6===self::$FAILED) { |
6124 | $this->currPos = $p3; |
6125 | $r1 = self::$FAILED; |
6126 | goto seq_1; |
6127 | } |
6128 | $r1 = true; |
6129 | seq_1: |
6130 | if ($r1!==self::$FAILED) { |
6131 | $this->savedPos = $p2; |
6132 | $r1 = $this->a55($r6); |
6133 | } else { |
6134 | $r1 = null; |
6135 | } |
6136 | // free $p3 |
6137 | return $r1; |
6138 | } |
6139 | private function parseEnumValueListString($silence) { |
6140 | // start choice_1 |
6141 | $p2 = $this->currPos; |
6142 | // start seq_1 |
6143 | $p3 = $this->currPos; |
6144 | $r4 = $this->parsestring($silence); |
6145 | // s <- $r4 |
6146 | if ($r4===self::$FAILED) { |
6147 | $r1 = self::$FAILED; |
6148 | goto seq_1; |
6149 | } |
6150 | $r5 = $this->discard_($silence); |
6151 | if ($r5===self::$FAILED) { |
6152 | $this->currPos = $p3; |
6153 | $r1 = self::$FAILED; |
6154 | goto seq_1; |
6155 | } |
6156 | $r6 = $this->parseEnumValueListComma($silence); |
6157 | // vals <- $r6 |
6158 | if ($r6===self::$FAILED) { |
6159 | $this->currPos = $p3; |
6160 | $r1 = self::$FAILED; |
6161 | goto seq_1; |
6162 | } |
6163 | $r1 = true; |
6164 | seq_1: |
6165 | if ($r1!==self::$FAILED) { |
6166 | $this->savedPos = $p2; |
6167 | $r1 = $this->a56($r4, $r6); |
6168 | goto choice_1; |
6169 | } |
6170 | // free $p3 |
6171 | $p3 = $this->currPos; |
6172 | $r1 = ''; |
6173 | if ($r1!==self::$FAILED) { |
6174 | $this->savedPos = $p3; |
6175 | $r1 = $this->a5(); |
6176 | } |
6177 | choice_1: |
6178 | return $r1; |
6179 | } |
6180 | private function parseSingleType($silence) { |
6181 | // start choice_1 |
6182 | $r1 = $this->parseDistinguishableType($silence); |
6183 | if ($r1!==self::$FAILED) { |
6184 | goto choice_1; |
6185 | } |
6186 | $r1 = $this->parseAnyType($silence); |
6187 | if ($r1!==self::$FAILED) { |
6188 | goto choice_1; |
6189 | } |
6190 | $r1 = $this->parsePromiseType($silence); |
6191 | choice_1: |
6192 | return $r1; |
6193 | } |
6194 | private function parseUnionType($silence) { |
6195 | $p2 = $this->currPos; |
6196 | // start seq_1 |
6197 | $p3 = $this->currPos; |
6198 | if (($this->input[$this->currPos] ?? null) === "(") { |
6199 | $this->currPos++; |
6200 | $r4 = "("; |
6201 | } else { |
6202 | if (!$silence) {$this->fail(25);} |
6203 | $r4 = self::$FAILED; |
6204 | $r1 = self::$FAILED; |
6205 | goto seq_1; |
6206 | } |
6207 | $r5 = $this->discard_($silence); |
6208 | if ($r5===self::$FAILED) { |
6209 | $this->currPos = $p3; |
6210 | $r1 = self::$FAILED; |
6211 | goto seq_1; |
6212 | } |
6213 | $r6 = $this->parseUnionMemberType($silence); |
6214 | // t <- $r6 |
6215 | if ($r6===self::$FAILED) { |
6216 | $this->currPos = $p3; |
6217 | $r1 = self::$FAILED; |
6218 | goto seq_1; |
6219 | } |
6220 | $r7 = []; |
6221 | for (;;) { |
6222 | $p9 = $this->currPos; |
6223 | // start seq_2 |
6224 | $p10 = $this->currPos; |
6225 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "or", $this->currPos, 2, false) === 0) { |
6226 | $r11 = "or"; |
6227 | $this->currPos += 2; |
6228 | } else { |
6229 | if (!$silence) {$this->fail(79);} |
6230 | $r11 = self::$FAILED; |
6231 | $r8 = self::$FAILED; |
6232 | goto seq_2; |
6233 | } |
6234 | $r12 = $this->discardi_($silence); |
6235 | if ($r12===self::$FAILED) { |
6236 | $this->currPos = $p10; |
6237 | $r8 = self::$FAILED; |
6238 | goto seq_2; |
6239 | } |
6240 | $r13 = $this->parseUnionMemberType($silence); |
6241 | // t2 <- $r13 |
6242 | if ($r13===self::$FAILED) { |
6243 | $this->currPos = $p10; |
6244 | $r8 = self::$FAILED; |
6245 | goto seq_2; |
6246 | } |
6247 | $r8 = true; |
6248 | seq_2: |
6249 | if ($r8!==self::$FAILED) { |
6250 | $this->savedPos = $p9; |
6251 | $r8 = $this->a57($r6, $r13); |
6252 | $r7[] = $r8; |
6253 | } else { |
6254 | break; |
6255 | } |
6256 | // free $p10 |
6257 | } |
6258 | if (count($r7) === 0) { |
6259 | $r7 = self::$FAILED; |
6260 | } |
6261 | // rest <- $r7 |
6262 | if ($r7===self::$FAILED) { |
6263 | $this->currPos = $p3; |
6264 | $r1 = self::$FAILED; |
6265 | goto seq_1; |
6266 | } |
6267 | // free $r8 |
6268 | if (($this->input[$this->currPos] ?? null) === ")") { |
6269 | $this->currPos++; |
6270 | $r8 = ")"; |
6271 | } else { |
6272 | if (!$silence) {$this->fail(26);} |
6273 | $r8 = self::$FAILED; |
6274 | $this->currPos = $p3; |
6275 | $r1 = self::$FAILED; |
6276 | goto seq_1; |
6277 | } |
6278 | $r14 = $this->discard_($silence); |
6279 | if ($r14===self::$FAILED) { |
6280 | $this->currPos = $p3; |
6281 | $r1 = self::$FAILED; |
6282 | goto seq_1; |
6283 | } |
6284 | $r1 = true; |
6285 | seq_1: |
6286 | if ($r1!==self::$FAILED) { |
6287 | $this->savedPos = $p2; |
6288 | $r1 = $this->a58($r6, $r7); |
6289 | } |
6290 | // free $p3 |
6291 | return $r1; |
6292 | } |
6293 | private function parseNull($silence) { |
6294 | $p2 = $this->currPos; |
6295 | // start seq_1 |
6296 | $p3 = $this->currPos; |
6297 | if (($this->input[$this->currPos] ?? null) === "?") { |
6298 | $this->currPos++; |
6299 | $r4 = "?"; |
6300 | } else { |
6301 | if (!$silence) {$this->fail(100);} |
6302 | $r4 = self::$FAILED; |
6303 | $r1 = self::$FAILED; |
6304 | goto seq_1; |
6305 | } |
6306 | $r5 = $this->discard_($silence); |
6307 | if ($r5===self::$FAILED) { |
6308 | $this->currPos = $p3; |
6309 | $r1 = self::$FAILED; |
6310 | goto seq_1; |
6311 | } |
6312 | $r1 = true; |
6313 | seq_1: |
6314 | if ($r1!==self::$FAILED) { |
6315 | $this->savedPos = $p2; |
6316 | $r1 = $this->a59(); |
6317 | } else { |
6318 | $r1 = null; |
6319 | } |
6320 | // free $p3 |
6321 | return $r1; |
6322 | } |
6323 | private function parseArgumentRest($silence) { |
6324 | // start choice_1 |
6325 | $p2 = $this->currPos; |
6326 | // start seq_1 |
6327 | $p3 = $this->currPos; |
6328 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "optional", $this->currPos, 8, false) === 0) { |
6329 | $r4 = "optional"; |
6330 | $this->currPos += 8; |
6331 | } else { |
6332 | if (!$silence) {$this->fail(80);} |
6333 | $r4 = self::$FAILED; |
6334 | $r1 = self::$FAILED; |
6335 | goto seq_1; |
6336 | } |
6337 | $r5 = $this->discardi_($silence); |
6338 | if ($r5===self::$FAILED) { |
6339 | $this->currPos = $p3; |
6340 | $r1 = self::$FAILED; |
6341 | goto seq_1; |
6342 | } |
6343 | $r6 = $this->parseTypeWithExtendedAttributes($silence); |
6344 | // t <- $r6 |
6345 | if ($r6===self::$FAILED) { |
6346 | $this->currPos = $p3; |
6347 | $r1 = self::$FAILED; |
6348 | goto seq_1; |
6349 | } |
6350 | $r7 = $this->parseArgumentName($silence); |
6351 | // name <- $r7 |
6352 | if ($r7===self::$FAILED) { |
6353 | $this->currPos = $p3; |
6354 | $r1 = self::$FAILED; |
6355 | goto seq_1; |
6356 | } |
6357 | $r8 = $this->parseDefault($silence); |
6358 | // d <- $r8 |
6359 | if ($r8===self::$FAILED) { |
6360 | $this->currPos = $p3; |
6361 | $r1 = self::$FAILED; |
6362 | goto seq_1; |
6363 | } |
6364 | $r1 = true; |
6365 | seq_1: |
6366 | if ($r1!==self::$FAILED) { |
6367 | $this->savedPos = $p2; |
6368 | $r1 = $this->a60($r6, $r7, $r8); |
6369 | goto choice_1; |
6370 | } |
6371 | // free $p3 |
6372 | $p3 = $this->currPos; |
6373 | // start seq_2 |
6374 | $p9 = $this->currPos; |
6375 | $r10 = $this->parseType($silence); |
6376 | // t <- $r10 |
6377 | if ($r10===self::$FAILED) { |
6378 | $r1 = self::$FAILED; |
6379 | goto seq_2; |
6380 | } |
6381 | $r11 = $this->parseEllipsis($silence); |
6382 | // e <- $r11 |
6383 | if ($r11===self::$FAILED) { |
6384 | $this->currPos = $p9; |
6385 | $r1 = self::$FAILED; |
6386 | goto seq_2; |
6387 | } |
6388 | $r12 = $this->parseArgumentName($silence); |
6389 | // name <- $r12 |
6390 | if ($r12===self::$FAILED) { |
6391 | $this->currPos = $p9; |
6392 | $r1 = self::$FAILED; |
6393 | goto seq_2; |
6394 | } |
6395 | $r1 = true; |
6396 | seq_2: |
6397 | if ($r1!==self::$FAILED) { |
6398 | $this->savedPos = $p3; |
6399 | $r1 = $this->a61($r10, $r11, $r12); |
6400 | } |
6401 | // free $p9 |
6402 | choice_1: |
6403 | return $r1; |
6404 | } |
6405 | private function parseopt_minus($silence) { |
6406 | // start choice_1 |
6407 | $p2 = $this->currPos; |
6408 | if (($this->input[$this->currPos] ?? null) === "-") { |
6409 | $this->currPos++; |
6410 | $r1 = "-"; |
6411 | $this->savedPos = $p2; |
6412 | $r1 = $this->a62(); |
6413 | goto choice_1; |
6414 | } else { |
6415 | if (!$silence) {$this->fail(95);} |
6416 | $r1 = self::$FAILED; |
6417 | } |
6418 | $p3 = $this->currPos; |
6419 | $r1 = ''; |
6420 | if ($r1!==self::$FAILED) { |
6421 | $this->savedPos = $p3; |
6422 | $r1 = $this->a63(); |
6423 | } |
6424 | choice_1: |
6425 | return $r1; |
6426 | } |
6427 | private function parsedecimal_integer($silence) { |
6428 | $p2 = $this->currPos; |
6429 | $p4 = $this->currPos; |
6430 | // start seq_1 |
6431 | $p5 = $this->currPos; |
6432 | $r6 = $this->input[$this->currPos] ?? ''; |
6433 | if (preg_match("/^[1-9]/", $r6)) { |
6434 | $this->currPos++; |
6435 | } else { |
6436 | $r6 = self::$FAILED; |
6437 | if (!$silence) {$this->fail(102);} |
6438 | $r3 = self::$FAILED; |
6439 | goto seq_1; |
6440 | } |
6441 | for (;;) { |
6442 | $r8 = $this->input[$this->currPos] ?? ''; |
6443 | if (preg_match("/^[0-9]/", $r8)) { |
6444 | $this->currPos++; |
6445 | } else { |
6446 | $r8 = self::$FAILED; |
6447 | if (!$silence) {$this->fail(90);} |
6448 | break; |
6449 | } |
6450 | } |
6451 | // free $r8 |
6452 | $r7 = true; |
6453 | if ($r7===self::$FAILED) { |
6454 | $this->currPos = $p5; |
6455 | $r3 = self::$FAILED; |
6456 | goto seq_1; |
6457 | } |
6458 | // free $r7 |
6459 | $r3 = true; |
6460 | seq_1: |
6461 | // s <- $r3 |
6462 | if ($r3!==self::$FAILED) { |
6463 | $r3 = substr($this->input, $p4, $this->currPos - $p4); |
6464 | } else { |
6465 | $r3 = self::$FAILED; |
6466 | } |
6467 | // free $p5 |
6468 | // free $p4 |
6469 | $r1 = $r3; |
6470 | if ($r1!==self::$FAILED) { |
6471 | $this->savedPos = $p2; |
6472 | $r1 = $this->a64($r3); |
6473 | } |
6474 | return $r1; |
6475 | } |
6476 | private function parsehex_integer($silence) { |
6477 | $p2 = $this->currPos; |
6478 | // start seq_1 |
6479 | $p3 = $this->currPos; |
6480 | // start choice_1 |
6481 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "0x", $this->currPos, 2, false) === 0) { |
6482 | $r4 = "0x"; |
6483 | $this->currPos += 2; |
6484 | goto choice_1; |
6485 | } else { |
6486 | if (!$silence) {$this->fail(103);} |
6487 | $r4 = self::$FAILED; |
6488 | } |
6489 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "0X", $this->currPos, 2, false) === 0) { |
6490 | $r4 = "0X"; |
6491 | $this->currPos += 2; |
6492 | } else { |
6493 | if (!$silence) {$this->fail(104);} |
6494 | $r4 = self::$FAILED; |
6495 | } |
6496 | choice_1: |
6497 | if ($r4===self::$FAILED) { |
6498 | $r1 = self::$FAILED; |
6499 | goto seq_1; |
6500 | } |
6501 | $p6 = $this->currPos; |
6502 | $r5 = self::$FAILED; |
6503 | for (;;) { |
6504 | $r7 = $this->input[$this->currPos] ?? ''; |
6505 | if (preg_match("/^[0-9A-Fa-f]/", $r7)) { |
6506 | $this->currPos++; |
6507 | $r5 = true; |
6508 | } else { |
6509 | $r7 = self::$FAILED; |
6510 | if (!$silence) {$this->fail(105);} |
6511 | break; |
6512 | } |
6513 | } |
6514 | // s <- $r5 |
6515 | if ($r5!==self::$FAILED) { |
6516 | $r5 = substr($this->input, $p6, $this->currPos - $p6); |
6517 | } else { |
6518 | $r5 = self::$FAILED; |
6519 | $this->currPos = $p3; |
6520 | $r1 = self::$FAILED; |
6521 | goto seq_1; |
6522 | } |
6523 | // free $r7 |
6524 | // free $p6 |
6525 | $r1 = true; |
6526 | seq_1: |
6527 | if ($r1!==self::$FAILED) { |
6528 | $this->savedPos = $p2; |
6529 | $r1 = $this->a65($r5); |
6530 | } |
6531 | // free $p3 |
6532 | return $r1; |
6533 | } |
6534 | private function parseoctal_integer($silence) { |
6535 | $p2 = $this->currPos; |
6536 | $p4 = $this->currPos; |
6537 | // start seq_1 |
6538 | $p5 = $this->currPos; |
6539 | if (($this->input[$this->currPos] ?? null) === "0") { |
6540 | $this->currPos++; |
6541 | $r6 = "0"; |
6542 | } else { |
6543 | if (!$silence) {$this->fail(106);} |
6544 | $r6 = self::$FAILED; |
6545 | $r3 = self::$FAILED; |
6546 | goto seq_1; |
6547 | } |
6548 | for (;;) { |
6549 | $r8 = $this->input[$this->currPos] ?? ''; |
6550 | if (preg_match("/^[0-7]/", $r8)) { |
6551 | $this->currPos++; |
6552 | } else { |
6553 | $r8 = self::$FAILED; |
6554 | if (!$silence) {$this->fail(107);} |
6555 | break; |
6556 | } |
6557 | } |
6558 | // free $r8 |
6559 | $r7 = true; |
6560 | if ($r7===self::$FAILED) { |
6561 | $this->currPos = $p5; |
6562 | $r3 = self::$FAILED; |
6563 | goto seq_1; |
6564 | } |
6565 | // free $r7 |
6566 | $r3 = true; |
6567 | seq_1: |
6568 | // s <- $r3 |
6569 | if ($r3!==self::$FAILED) { |
6570 | $r3 = substr($this->input, $p4, $this->currPos - $p4); |
6571 | } else { |
6572 | $r3 = self::$FAILED; |
6573 | } |
6574 | // free $p5 |
6575 | // free $p4 |
6576 | $r1 = $r3; |
6577 | if ($r1!==self::$FAILED) { |
6578 | $this->savedPos = $p2; |
6579 | $r1 = $this->a66($r3); |
6580 | } |
6581 | return $r1; |
6582 | } |
6583 | private function parseConst($silence) { |
6584 | $p2 = $this->currPos; |
6585 | // start seq_1 |
6586 | $p3 = $this->currPos; |
6587 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "const", $this->currPos, 5, false) === 0) { |
6588 | $r4 = "const"; |
6589 | $this->currPos += 5; |
6590 | } else { |
6591 | if (!$silence) {$this->fail(35);} |
6592 | $r4 = self::$FAILED; |
6593 | $r1 = self::$FAILED; |
6594 | goto seq_1; |
6595 | } |
6596 | $r5 = $this->discardi_($silence); |
6597 | if ($r5===self::$FAILED) { |
6598 | $this->currPos = $p3; |
6599 | $r1 = self::$FAILED; |
6600 | goto seq_1; |
6601 | } |
6602 | $r6 = $this->parseConstType($silence); |
6603 | // t <- $r6 |
6604 | if ($r6===self::$FAILED) { |
6605 | $this->currPos = $p3; |
6606 | $r1 = self::$FAILED; |
6607 | goto seq_1; |
6608 | } |
6609 | $r7 = $this->parseidentifier($silence); |
6610 | // name <- $r7 |
6611 | if ($r7===self::$FAILED) { |
6612 | $this->currPos = $p3; |
6613 | $r1 = self::$FAILED; |
6614 | goto seq_1; |
6615 | } |
6616 | $r8 = $this->discard_($silence); |
6617 | if ($r8===self::$FAILED) { |
6618 | $this->currPos = $p3; |
6619 | $r1 = self::$FAILED; |
6620 | goto seq_1; |
6621 | } |
6622 | if (($this->input[$this->currPos] ?? null) === "=") { |
6623 | $this->currPos++; |
6624 | $r9 = "="; |
6625 | } else { |
6626 | if (!$silence) {$this->fail(27);} |
6627 | $r9 = self::$FAILED; |
6628 | $this->currPos = $p3; |
6629 | $r1 = self::$FAILED; |
6630 | goto seq_1; |
6631 | } |
6632 | $r10 = $this->discard_($silence); |
6633 | if ($r10===self::$FAILED) { |
6634 | $this->currPos = $p3; |
6635 | $r1 = self::$FAILED; |
6636 | goto seq_1; |
6637 | } |
6638 | $r11 = $this->parseConstValue($silence); |
6639 | // v <- $r11 |
6640 | if ($r11===self::$FAILED) { |
6641 | $this->currPos = $p3; |
6642 | $r1 = self::$FAILED; |
6643 | goto seq_1; |
6644 | } |
6645 | if (($this->input[$this->currPos] ?? null) === ";") { |
6646 | $this->currPos++; |
6647 | $r12 = ";"; |
6648 | } else { |
6649 | if (!$silence) {$this->fail(19);} |
6650 | $r12 = self::$FAILED; |
6651 | $this->currPos = $p3; |
6652 | $r1 = self::$FAILED; |
6653 | goto seq_1; |
6654 | } |
6655 | $r13 = $this->parsec_($silence); |
6656 | // c <- $r13 |
6657 | if ($r13===self::$FAILED) { |
6658 | $this->currPos = $p3; |
6659 | $r1 = self::$FAILED; |
6660 | goto seq_1; |
6661 | } |
6662 | $r1 = true; |
6663 | seq_1: |
6664 | if ($r1!==self::$FAILED) { |
6665 | $this->savedPos = $p2; |
6666 | $r1 = $this->a67($r6, $r7, $r11, $r13); |
6667 | } |
6668 | // free $p3 |
6669 | return $r1; |
6670 | } |
6671 | private function parseInterfaceMember($silence) { |
6672 | // start choice_1 |
6673 | $r1 = $this->parsePartialInterfaceMember($silence); |
6674 | if ($r1!==self::$FAILED) { |
6675 | goto choice_1; |
6676 | } |
6677 | $r1 = $this->parseConstructor($silence); |
6678 | choice_1: |
6679 | return $r1; |
6680 | } |
6681 | private function parseMixinMember($silence) { |
6682 | // start choice_1 |
6683 | $r1 = $this->parseConst($silence); |
6684 | if ($r1!==self::$FAILED) { |
6685 | goto choice_1; |
6686 | } |
6687 | $r1 = $this->parseRegularOperation($silence); |
6688 | if ($r1!==self::$FAILED) { |
6689 | goto choice_1; |
6690 | } |
6691 | $r1 = $this->parseStringifier($silence); |
6692 | if ($r1!==self::$FAILED) { |
6693 | goto choice_1; |
6694 | } |
6695 | $p2 = $this->currPos; |
6696 | // start seq_1 |
6697 | $p3 = $this->currPos; |
6698 | $r4 = $this->parseOptionalReadOnly($silence); |
6699 | // ro <- $r4 |
6700 | if ($r4===self::$FAILED) { |
6701 | $r1 = self::$FAILED; |
6702 | goto seq_1; |
6703 | } |
6704 | $r5 = $this->parseAttributeRest($silence); |
6705 | // a <- $r5 |
6706 | if ($r5===self::$FAILED) { |
6707 | $this->currPos = $p3; |
6708 | $r1 = self::$FAILED; |
6709 | goto seq_1; |
6710 | } |
6711 | $r1 = true; |
6712 | seq_1: |
6713 | if ($r1!==self::$FAILED) { |
6714 | $this->savedPos = $p2; |
6715 | $r1 = $this->a68($r4, $r5); |
6716 | } |
6717 | // free $p3 |
6718 | choice_1: |
6719 | return $r1; |
6720 | } |
6721 | private function parseOperationRest($silence) { |
6722 | $p2 = $this->currPos; |
6723 | // start seq_1 |
6724 | $p3 = $this->currPos; |
6725 | $r4 = $this->parseOptionalOperationName($silence); |
6726 | // name <- $r4 |
6727 | if ($r4===self::$FAILED) { |
6728 | $r1 = self::$FAILED; |
6729 | goto seq_1; |
6730 | } |
6731 | if (($this->input[$this->currPos] ?? null) === "(") { |
6732 | $this->currPos++; |
6733 | $r5 = "("; |
6734 | } else { |
6735 | if (!$silence) {$this->fail(25);} |
6736 | $r5 = self::$FAILED; |
6737 | $this->currPos = $p3; |
6738 | $r1 = self::$FAILED; |
6739 | goto seq_1; |
6740 | } |
6741 | $r6 = $this->discard_($silence); |
6742 | if ($r6===self::$FAILED) { |
6743 | $this->currPos = $p3; |
6744 | $r1 = self::$FAILED; |
6745 | goto seq_1; |
6746 | } |
6747 | $r7 = $this->parseArgumentList($silence); |
6748 | // args <- $r7 |
6749 | if ($r7===self::$FAILED) { |
6750 | $this->currPos = $p3; |
6751 | $r1 = self::$FAILED; |
6752 | goto seq_1; |
6753 | } |
6754 | if (($this->input[$this->currPos] ?? null) === ")") { |
6755 | $this->currPos++; |
6756 | $r8 = ")"; |
6757 | } else { |
6758 | if (!$silence) {$this->fail(26);} |
6759 | $r8 = self::$FAILED; |
6760 | $this->currPos = $p3; |
6761 | $r1 = self::$FAILED; |
6762 | goto seq_1; |
6763 | } |
6764 | $r9 = $this->discard_($silence); |
6765 | if ($r9===self::$FAILED) { |
6766 | $this->currPos = $p3; |
6767 | $r1 = self::$FAILED; |
6768 | goto seq_1; |
6769 | } |
6770 | if (($this->input[$this->currPos] ?? null) === ";") { |
6771 | $this->currPos++; |
6772 | $r10 = ";"; |
6773 | } else { |
6774 | if (!$silence) {$this->fail(19);} |
6775 | $r10 = self::$FAILED; |
6776 | $this->currPos = $p3; |
6777 | $r1 = self::$FAILED; |
6778 | goto seq_1; |
6779 | } |
6780 | $r11 = $this->parsec_($silence); |
6781 | // c <- $r11 |
6782 | if ($r11===self::$FAILED) { |
6783 | $this->currPos = $p3; |
6784 | $r1 = self::$FAILED; |
6785 | goto seq_1; |
6786 | } |
6787 | $r1 = true; |
6788 | seq_1: |
6789 | if ($r1!==self::$FAILED) { |
6790 | $this->savedPos = $p2; |
6791 | $r1 = $this->a69($r4, $r7, $r11); |
6792 | } |
6793 | // free $p3 |
6794 | return $r1; |
6795 | } |
6796 | private function parseAttributeName($silence) { |
6797 | // start choice_1 |
6798 | $r1 = $this->parseAttributeNameKeyword($silence); |
6799 | if ($r1!==self::$FAILED) { |
6800 | goto choice_1; |
6801 | } |
6802 | $p2 = $this->currPos; |
6803 | // start seq_1 |
6804 | $p3 = $this->currPos; |
6805 | $r4 = $this->parseidentifier($silence); |
6806 | // id <- $r4 |
6807 | if ($r4===self::$FAILED) { |
6808 | $r1 = self::$FAILED; |
6809 | goto seq_1; |
6810 | } |
6811 | $r5 = $this->discard_($silence); |
6812 | if ($r5===self::$FAILED) { |
6813 | $this->currPos = $p3; |
6814 | $r1 = self::$FAILED; |
6815 | goto seq_1; |
6816 | } |
6817 | $r1 = true; |
6818 | seq_1: |
6819 | if ($r1!==self::$FAILED) { |
6820 | $this->savedPos = $p2; |
6821 | $r1 = $this->a70($r4); |
6822 | } |
6823 | // free $p3 |
6824 | choice_1: |
6825 | return $r1; |
6826 | } |
6827 | private function parsePartialInterfaceMembers($silence) { |
6828 | $r1 = []; |
6829 | for (;;) { |
6830 | $p3 = $this->currPos; |
6831 | // start seq_1 |
6832 | $p4 = $this->currPos; |
6833 | $r5 = $this->parseleadingComments($silence); |
6834 | // c <- $r5 |
6835 | if ($r5===self::$FAILED) { |
6836 | $r2 = self::$FAILED; |
6837 | goto seq_1; |
6838 | } |
6839 | $r6 = $this->parseExtendedAttributeList($silence); |
6840 | // e <- $r6 |
6841 | if ($r6===self::$FAILED) { |
6842 | $this->currPos = $p4; |
6843 | $r2 = self::$FAILED; |
6844 | goto seq_1; |
6845 | } |
6846 | $r7 = $this->parsePartialInterfaceMember($silence); |
6847 | // m <- $r7 |
6848 | if ($r7===self::$FAILED) { |
6849 | $this->currPos = $p4; |
6850 | $r2 = self::$FAILED; |
6851 | goto seq_1; |
6852 | } |
6853 | $r2 = true; |
6854 | seq_1: |
6855 | if ($r2!==self::$FAILED) { |
6856 | $this->savedPos = $p3; |
6857 | $r2 = $this->a21($r5, $r6, $r7); |
6858 | $r1[] = $r2; |
6859 | } else { |
6860 | break; |
6861 | } |
6862 | // free $p4 |
6863 | } |
6864 | // free $r2 |
6865 | return $r1; |
6866 | } |
6867 | private function parseDefaultValue($silence) { |
6868 | // start choice_1 |
6869 | $r1 = $this->parseConstValue($silence); |
6870 | if ($r1!==self::$FAILED) { |
6871 | goto choice_1; |
6872 | } |
6873 | $p2 = $this->currPos; |
6874 | // start seq_1 |
6875 | $p3 = $this->currPos; |
6876 | $r4 = $this->parsestring($silence); |
6877 | // s <- $r4 |
6878 | if ($r4===self::$FAILED) { |
6879 | $r1 = self::$FAILED; |
6880 | goto seq_1; |
6881 | } |
6882 | $r5 = $this->discard_($silence); |
6883 | if ($r5===self::$FAILED) { |
6884 | $this->currPos = $p3; |
6885 | $r1 = self::$FAILED; |
6886 | goto seq_1; |
6887 | } |
6888 | $r1 = true; |
6889 | seq_1: |
6890 | if ($r1!==self::$FAILED) { |
6891 | $this->savedPos = $p2; |
6892 | $r1 = $this->a71($r4); |
6893 | goto choice_1; |
6894 | } |
6895 | // free $p3 |
6896 | $p3 = $this->currPos; |
6897 | // start seq_2 |
6898 | $p6 = $this->currPos; |
6899 | if (($this->input[$this->currPos] ?? null) === "[") { |
6900 | $this->currPos++; |
6901 | $r7 = "["; |
6902 | } else { |
6903 | if (!$silence) {$this->fail(8);} |
6904 | $r7 = self::$FAILED; |
6905 | $r1 = self::$FAILED; |
6906 | goto seq_2; |
6907 | } |
6908 | $r8 = $this->discard_($silence); |
6909 | if ($r8===self::$FAILED) { |
6910 | $this->currPos = $p6; |
6911 | $r1 = self::$FAILED; |
6912 | goto seq_2; |
6913 | } |
6914 | if (($this->input[$this->currPos] ?? null) === "]") { |
6915 | $this->currPos++; |
6916 | $r9 = "]"; |
6917 | } else { |
6918 | if (!$silence) {$this->fail(9);} |
6919 | $r9 = self::$FAILED; |
6920 | $this->currPos = $p6; |
6921 | $r1 = self::$FAILED; |
6922 | goto seq_2; |
6923 | } |
6924 | $r10 = $this->discard_($silence); |
6925 | if ($r10===self::$FAILED) { |
6926 | $this->currPos = $p6; |
6927 | $r1 = self::$FAILED; |
6928 | goto seq_2; |
6929 | } |
6930 | $r1 = true; |
6931 | seq_2: |
6932 | if ($r1!==self::$FAILED) { |
6933 | $this->savedPos = $p3; |
6934 | $r1 = $this->a72(); |
6935 | goto choice_1; |
6936 | } |
6937 | // free $p6 |
6938 | $p6 = $this->currPos; |
6939 | // start seq_3 |
6940 | $p11 = $this->currPos; |
6941 | if (($this->input[$this->currPos] ?? null) === "{") { |
6942 | $this->currPos++; |
6943 | $r12 = "{"; |
6944 | } else { |
6945 | if (!$silence) {$this->fail(17);} |
6946 | $r12 = self::$FAILED; |
6947 | $r1 = self::$FAILED; |
6948 | goto seq_3; |
6949 | } |
6950 | $r13 = $this->discard_($silence); |
6951 | if ($r13===self::$FAILED) { |
6952 | $this->currPos = $p11; |
6953 | $r1 = self::$FAILED; |
6954 | goto seq_3; |
6955 | } |
6956 | if (($this->input[$this->currPos] ?? null) === "}") { |
6957 | $this->currPos++; |
6958 | $r14 = "}"; |
6959 | } else { |
6960 | if (!$silence) {$this->fail(18);} |
6961 | $r14 = self::$FAILED; |
6962 | $this->currPos = $p11; |
6963 | $r1 = self::$FAILED; |
6964 | goto seq_3; |
6965 | } |
6966 | $r15 = $this->discard_($silence); |
6967 | if ($r15===self::$FAILED) { |
6968 | $this->currPos = $p11; |
6969 | $r1 = self::$FAILED; |
6970 | goto seq_3; |
6971 | } |
6972 | $r1 = true; |
6973 | seq_3: |
6974 | if ($r1!==self::$FAILED) { |
6975 | $this->savedPos = $p6; |
6976 | $r1 = $this->a73(); |
6977 | goto choice_1; |
6978 | } |
6979 | // free $p11 |
6980 | $p11 = $this->currPos; |
6981 | // start seq_4 |
6982 | $p16 = $this->currPos; |
6983 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "null", $this->currPos, 4, false) === 0) { |
6984 | $r17 = "null"; |
6985 | $this->currPos += 4; |
6986 | } else { |
6987 | if (!$silence) {$this->fail(76);} |
6988 | $r17 = self::$FAILED; |
6989 | $r1 = self::$FAILED; |
6990 | goto seq_4; |
6991 | } |
6992 | $r18 = $this->discardi_($silence); |
6993 | if ($r18===self::$FAILED) { |
6994 | $this->currPos = $p16; |
6995 | $r1 = self::$FAILED; |
6996 | goto seq_4; |
6997 | } |
6998 | $r1 = true; |
6999 | seq_4: |
7000 | if ($r1!==self::$FAILED) { |
7001 | $this->savedPos = $p11; |
7002 | $r1 = $this->a74(); |
7003 | } |
7004 | // free $p16 |
7005 | choice_1: |
7006 | return $r1; |
7007 | } |
7008 | private function parseDistinguishableType($silence) { |
7009 | $p2 = $this->currPos; |
7010 | // start seq_1 |
7011 | $p3 = $this->currPos; |
7012 | // start choice_1 |
7013 | $p5 = $this->currPos; |
7014 | $r6 = $this->parsePrimitiveType($silence); |
7015 | // t <- $r6 |
7016 | $r4 = $r6; |
7017 | if ($r4!==self::$FAILED) { |
7018 | $this->savedPos = $p5; |
7019 | $r4 = $this->a75($r6); |
7020 | goto choice_1; |
7021 | } |
7022 | $p7 = $this->currPos; |
7023 | $r8 = $this->parseStringType($silence); |
7024 | // t <- $r8 |
7025 | $r4 = $r8; |
7026 | if ($r4!==self::$FAILED) { |
7027 | $this->savedPos = $p7; |
7028 | $r4 = $this->a75($r8); |
7029 | goto choice_1; |
7030 | } |
7031 | $p9 = $this->currPos; |
7032 | // start seq_2 |
7033 | $p10 = $this->currPos; |
7034 | // start choice_2 |
7035 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "object", $this->currPos, 6, false) === 0) { |
7036 | $r11 = "object"; |
7037 | $this->currPos += 6; |
7038 | goto choice_2; |
7039 | } else { |
7040 | if (!$silence) {$this->fail(77);} |
7041 | $r11 = self::$FAILED; |
7042 | } |
7043 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "symbol", $this->currPos, 6, false) === 0) { |
7044 | $r11 = "symbol"; |
7045 | $this->currPos += 6; |
7046 | } else { |
7047 | if (!$silence) {$this->fail(84);} |
7048 | $r11 = self::$FAILED; |
7049 | } |
7050 | choice_2: |
7051 | // t <- $r11 |
7052 | if ($r11===self::$FAILED) { |
7053 | $r4 = self::$FAILED; |
7054 | goto seq_2; |
7055 | } |
7056 | $r12 = $this->discardi_($silence); |
7057 | if ($r12===self::$FAILED) { |
7058 | $this->currPos = $p10; |
7059 | $r4 = self::$FAILED; |
7060 | goto seq_2; |
7061 | } |
7062 | $r4 = true; |
7063 | seq_2: |
7064 | if ($r4!==self::$FAILED) { |
7065 | $this->savedPos = $p9; |
7066 | $r4 = $this->a75($r11); |
7067 | goto choice_1; |
7068 | } |
7069 | // free $p10 |
7070 | $p10 = $this->currPos; |
7071 | $r13 = $this->parseBufferRelatedType($silence); |
7072 | // t <- $r13 |
7073 | $r4 = $r13; |
7074 | if ($r4!==self::$FAILED) { |
7075 | $this->savedPos = $p10; |
7076 | $r4 = $this->a75($r13); |
7077 | goto choice_1; |
7078 | } |
7079 | $p14 = $this->currPos; |
7080 | // start seq_3 |
7081 | $p15 = $this->currPos; |
7082 | // start choice_3 |
7083 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "sequence", $this->currPos, 8, false) === 0) { |
7084 | $r16 = "sequence"; |
7085 | $this->currPos += 8; |
7086 | goto choice_3; |
7087 | } else { |
7088 | if (!$silence) {$this->fail(82);} |
7089 | $r16 = self::$FAILED; |
7090 | } |
7091 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "FrozenArray", $this->currPos, 11, false) === 0) { |
7092 | $r16 = "FrozenArray"; |
7093 | $this->currPos += 11; |
7094 | goto choice_3; |
7095 | } else { |
7096 | if (!$silence) {$this->fail(62);} |
7097 | $r16 = self::$FAILED; |
7098 | } |
7099 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ObservableArray", $this->currPos, 15, false) === 0) { |
7100 | $r16 = "ObservableArray"; |
7101 | $this->currPos += 15; |
7102 | } else { |
7103 | if (!$silence) {$this->fail(65);} |
7104 | $r16 = self::$FAILED; |
7105 | } |
7106 | choice_3: |
7107 | // g <- $r16 |
7108 | if ($r16===self::$FAILED) { |
7109 | $r4 = self::$FAILED; |
7110 | goto seq_3; |
7111 | } |
7112 | $r17 = $this->discardi_($silence); |
7113 | if ($r17===self::$FAILED) { |
7114 | $this->currPos = $p15; |
7115 | $r4 = self::$FAILED; |
7116 | goto seq_3; |
7117 | } |
7118 | if (($this->input[$this->currPos] ?? null) === "<") { |
7119 | $this->currPos++; |
7120 | $r18 = "<"; |
7121 | } else { |
7122 | if (!$silence) {$this->fail(98);} |
7123 | $r18 = self::$FAILED; |
7124 | $this->currPos = $p15; |
7125 | $r4 = self::$FAILED; |
7126 | goto seq_3; |
7127 | } |
7128 | $r19 = $this->discard_($silence); |
7129 | if ($r19===self::$FAILED) { |
7130 | $this->currPos = $p15; |
7131 | $r4 = self::$FAILED; |
7132 | goto seq_3; |
7133 | } |
7134 | $r20 = $this->parseTypeWithExtendedAttributes($silence); |
7135 | // t <- $r20 |
7136 | if ($r20===self::$FAILED) { |
7137 | $this->currPos = $p15; |
7138 | $r4 = self::$FAILED; |
7139 | goto seq_3; |
7140 | } |
7141 | if (($this->input[$this->currPos] ?? null) === ">") { |
7142 | $this->currPos++; |
7143 | $r21 = ">"; |
7144 | } else { |
7145 | if (!$silence) {$this->fail(99);} |
7146 | $r21 = self::$FAILED; |
7147 | $this->currPos = $p15; |
7148 | $r4 = self::$FAILED; |
7149 | goto seq_3; |
7150 | } |
7151 | $r22 = $this->discard_($silence); |
7152 | if ($r22===self::$FAILED) { |
7153 | $this->currPos = $p15; |
7154 | $r4 = self::$FAILED; |
7155 | goto seq_3; |
7156 | } |
7157 | $r4 = true; |
7158 | seq_3: |
7159 | if ($r4!==self::$FAILED) { |
7160 | $this->savedPos = $p14; |
7161 | $r4 = $this->a76($r16, $r20); |
7162 | goto choice_1; |
7163 | } |
7164 | // free $p15 |
7165 | $r4 = $this->parseRecordType($silence); |
7166 | if ($r4!==self::$FAILED) { |
7167 | goto choice_1; |
7168 | } |
7169 | $p15 = $this->currPos; |
7170 | // start seq_4 |
7171 | $p23 = $this->currPos; |
7172 | $r24 = $this->parseidentifier($silence); |
7173 | // t <- $r24 |
7174 | if ($r24===self::$FAILED) { |
7175 | $r4 = self::$FAILED; |
7176 | goto seq_4; |
7177 | } |
7178 | $r25 = $this->discard_($silence); |
7179 | if ($r25===self::$FAILED) { |
7180 | $this->currPos = $p23; |
7181 | $r4 = self::$FAILED; |
7182 | goto seq_4; |
7183 | } |
7184 | $r4 = true; |
7185 | seq_4: |
7186 | if ($r4!==self::$FAILED) { |
7187 | $this->savedPos = $p15; |
7188 | $r4 = $this->a77($r24); |
7189 | } |
7190 | // free $p23 |
7191 | choice_1: |
7192 | // dt <- $r4 |
7193 | if ($r4===self::$FAILED) { |
7194 | $r1 = self::$FAILED; |
7195 | goto seq_1; |
7196 | } |
7197 | $r26 = $this->parseNull($silence); |
7198 | // n <- $r26 |
7199 | if ($r26===self::$FAILED) { |
7200 | $this->currPos = $p3; |
7201 | $r1 = self::$FAILED; |
7202 | goto seq_1; |
7203 | } |
7204 | $r1 = true; |
7205 | seq_1: |
7206 | if ($r1!==self::$FAILED) { |
7207 | $this->savedPos = $p2; |
7208 | $r1 = $this->a78($r4, $r26); |
7209 | } |
7210 | // free $p3 |
7211 | return $r1; |
7212 | } |
7213 | private function parseAnyType($silence) { |
7214 | $p2 = $this->currPos; |
7215 | // start seq_1 |
7216 | $p3 = $this->currPos; |
7217 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "any", $this->currPos, 3, false) === 0) { |
7218 | $r4 = "any"; |
7219 | $this->currPos += 3; |
7220 | } else { |
7221 | if (!$silence) {$this->fail(68);} |
7222 | $r4 = self::$FAILED; |
7223 | $r1 = self::$FAILED; |
7224 | goto seq_1; |
7225 | } |
7226 | $r5 = $this->discardi_($silence); |
7227 | if ($r5===self::$FAILED) { |
7228 | $this->currPos = $p3; |
7229 | $r1 = self::$FAILED; |
7230 | goto seq_1; |
7231 | } |
7232 | $r1 = true; |
7233 | seq_1: |
7234 | if ($r1!==self::$FAILED) { |
7235 | $this->savedPos = $p2; |
7236 | $r1 = $this->a79(); |
7237 | } |
7238 | // free $p3 |
7239 | return $r1; |
7240 | } |
7241 | private function parsePromiseType($silence) { |
7242 | $p2 = $this->currPos; |
7243 | // start seq_1 |
7244 | $p3 = $this->currPos; |
7245 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Promise", $this->currPos, 7, false) === 0) { |
7246 | $r4 = "Promise"; |
7247 | $this->currPos += 7; |
7248 | } else { |
7249 | if (!$silence) {$this->fail(66);} |
7250 | $r4 = self::$FAILED; |
7251 | $r1 = self::$FAILED; |
7252 | goto seq_1; |
7253 | } |
7254 | $r5 = $this->discardi_($silence); |
7255 | if ($r5===self::$FAILED) { |
7256 | $this->currPos = $p3; |
7257 | $r1 = self::$FAILED; |
7258 | goto seq_1; |
7259 | } |
7260 | if (($this->input[$this->currPos] ?? null) === "<") { |
7261 | $this->currPos++; |
7262 | $r6 = "<"; |
7263 | } else { |
7264 | if (!$silence) {$this->fail(98);} |
7265 | $r6 = self::$FAILED; |
7266 | $this->currPos = $p3; |
7267 | $r1 = self::$FAILED; |
7268 | goto seq_1; |
7269 | } |
7270 | $r7 = $this->discard_($silence); |
7271 | if ($r7===self::$FAILED) { |
7272 | $this->currPos = $p3; |
7273 | $r1 = self::$FAILED; |
7274 | goto seq_1; |
7275 | } |
7276 | $r8 = $this->parseType($silence); |
7277 | // t <- $r8 |
7278 | if ($r8===self::$FAILED) { |
7279 | $this->currPos = $p3; |
7280 | $r1 = self::$FAILED; |
7281 | goto seq_1; |
7282 | } |
7283 | if (($this->input[$this->currPos] ?? null) === ">") { |
7284 | $this->currPos++; |
7285 | $r9 = ">"; |
7286 | } else { |
7287 | if (!$silence) {$this->fail(99);} |
7288 | $r9 = self::$FAILED; |
7289 | $this->currPos = $p3; |
7290 | $r1 = self::$FAILED; |
7291 | goto seq_1; |
7292 | } |
7293 | $r10 = $this->discard_($silence); |
7294 | if ($r10===self::$FAILED) { |
7295 | $this->currPos = $p3; |
7296 | $r1 = self::$FAILED; |
7297 | goto seq_1; |
7298 | } |
7299 | $r1 = true; |
7300 | seq_1: |
7301 | if ($r1!==self::$FAILED) { |
7302 | $this->savedPos = $p2; |
7303 | $r1 = $this->a80($r8); |
7304 | } |
7305 | // free $p3 |
7306 | return $r1; |
7307 | } |
7308 | private function parseUnionMemberType($silence) { |
7309 | // start choice_1 |
7310 | $p2 = $this->currPos; |
7311 | // start seq_1 |
7312 | $p3 = $this->currPos; |
7313 | $r4 = $this->parseExtendedAttributeList($silence); |
7314 | // e <- $r4 |
7315 | if ($r4===self::$FAILED) { |
7316 | $r1 = self::$FAILED; |
7317 | goto seq_1; |
7318 | } |
7319 | $r5 = $this->parseDistinguishableType($silence); |
7320 | // t <- $r5 |
7321 | if ($r5===self::$FAILED) { |
7322 | $this->currPos = $p3; |
7323 | $r1 = self::$FAILED; |
7324 | goto seq_1; |
7325 | } |
7326 | $r1 = true; |
7327 | seq_1: |
7328 | if ($r1!==self::$FAILED) { |
7329 | $this->savedPos = $p2; |
7330 | $r1 = $this->a25($r4, $r5); |
7331 | goto choice_1; |
7332 | } |
7333 | // free $p3 |
7334 | $p3 = $this->currPos; |
7335 | // start seq_2 |
7336 | $p6 = $this->currPos; |
7337 | $r7 = $this->parseUnionType($silence); |
7338 | // t <- $r7 |
7339 | if ($r7===self::$FAILED) { |
7340 | $r1 = self::$FAILED; |
7341 | goto seq_2; |
7342 | } |
7343 | $r8 = $this->parseNull($silence); |
7344 | // n <- $r8 |
7345 | if ($r8===self::$FAILED) { |
7346 | $this->currPos = $p6; |
7347 | $r1 = self::$FAILED; |
7348 | goto seq_2; |
7349 | } |
7350 | $r1 = true; |
7351 | seq_2: |
7352 | if ($r1!==self::$FAILED) { |
7353 | $this->savedPos = $p3; |
7354 | $r1 = $this->a81($r7, $r8); |
7355 | } |
7356 | // free $p6 |
7357 | choice_1: |
7358 | return $r1; |
7359 | } |
7360 | private function parseArgumentName($silence) { |
7361 | // start choice_1 |
7362 | $r1 = $this->parseArgumentNameKeyword($silence); |
7363 | if ($r1!==self::$FAILED) { |
7364 | goto choice_1; |
7365 | } |
7366 | $p2 = $this->currPos; |
7367 | // start seq_1 |
7368 | $p3 = $this->currPos; |
7369 | $r4 = $this->parseidentifier($silence); |
7370 | // name <- $r4 |
7371 | if ($r4===self::$FAILED) { |
7372 | $r1 = self::$FAILED; |
7373 | goto seq_1; |
7374 | } |
7375 | $r5 = $this->discard_($silence); |
7376 | if ($r5===self::$FAILED) { |
7377 | $this->currPos = $p3; |
7378 | $r1 = self::$FAILED; |
7379 | goto seq_1; |
7380 | } |
7381 | $r1 = true; |
7382 | seq_1: |
7383 | if ($r1!==self::$FAILED) { |
7384 | $this->savedPos = $p2; |
7385 | $r1 = $this->a82($r4); |
7386 | } |
7387 | // free $p3 |
7388 | choice_1: |
7389 | return $r1; |
7390 | } |
7391 | private function parseEllipsis($silence) { |
7392 | // start seq_1 |
7393 | $p2 = $this->currPos; |
7394 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "...", $this->currPos, 3, false) === 0) { |
7395 | $r3 = "..."; |
7396 | $this->currPos += 3; |
7397 | } else { |
7398 | if (!$silence) {$this->fail(97);} |
7399 | $r3 = self::$FAILED; |
7400 | $r1 = self::$FAILED; |
7401 | goto seq_1; |
7402 | } |
7403 | $r4 = $this->parse_($silence); |
7404 | if ($r4===self::$FAILED) { |
7405 | $this->currPos = $p2; |
7406 | $r1 = self::$FAILED; |
7407 | goto seq_1; |
7408 | } |
7409 | $r1 = [$r3,$r4]; |
7410 | seq_1: |
7411 | if ($r1===self::$FAILED) { |
7412 | $r1 = null; |
7413 | } |
7414 | // free $p2 |
7415 | return $r1; |
7416 | } |
7417 | private function parseConstType($silence) { |
7418 | // start choice_1 |
7419 | $p2 = $this->currPos; |
7420 | $r3 = $this->parsePrimitiveType($silence); |
7421 | // t <- $r3 |
7422 | $r1 = $r3; |
7423 | if ($r1!==self::$FAILED) { |
7424 | $this->savedPos = $p2; |
7425 | $r1 = $this->a83($r3); |
7426 | goto choice_1; |
7427 | } |
7428 | $p4 = $this->currPos; |
7429 | // start seq_1 |
7430 | $p5 = $this->currPos; |
7431 | $r6 = $this->parseidentifier($silence); |
7432 | // t <- $r6 |
7433 | if ($r6===self::$FAILED) { |
7434 | $r1 = self::$FAILED; |
7435 | goto seq_1; |
7436 | } |
7437 | $r7 = $this->discard_($silence); |
7438 | if ($r7===self::$FAILED) { |
7439 | $this->currPos = $p5; |
7440 | $r1 = self::$FAILED; |
7441 | goto seq_1; |
7442 | } |
7443 | $r1 = true; |
7444 | seq_1: |
7445 | if ($r1!==self::$FAILED) { |
7446 | $this->savedPos = $p4; |
7447 | $r1 = $this->a83($r6); |
7448 | } |
7449 | // free $p5 |
7450 | choice_1: |
7451 | return $r1; |
7452 | } |
7453 | private function parseConstValue($silence) { |
7454 | // start choice_1 |
7455 | $r1 = $this->parseBooleanLiteral($silence); |
7456 | if ($r1!==self::$FAILED) { |
7457 | goto choice_1; |
7458 | } |
7459 | $r1 = $this->parseFloatLiteral($silence); |
7460 | if ($r1!==self::$FAILED) { |
7461 | goto choice_1; |
7462 | } |
7463 | $r1 = $this->parseIntLiteral($silence); |
7464 | choice_1: |
7465 | return $r1; |
7466 | } |
7467 | private function parsePartialInterfaceMember($silence) { |
7468 | // start choice_1 |
7469 | $r1 = $this->parseConst($silence); |
7470 | if ($r1!==self::$FAILED) { |
7471 | goto choice_1; |
7472 | } |
7473 | $r1 = $this->parseOperation($silence); |
7474 | if ($r1!==self::$FAILED) { |
7475 | goto choice_1; |
7476 | } |
7477 | $r1 = $this->parseStringifier($silence); |
7478 | if ($r1!==self::$FAILED) { |
7479 | goto choice_1; |
7480 | } |
7481 | $r1 = $this->parseStaticMember($silence); |
7482 | if ($r1!==self::$FAILED) { |
7483 | goto choice_1; |
7484 | } |
7485 | $r1 = $this->parseIterable($silence); |
7486 | if ($r1!==self::$FAILED) { |
7487 | goto choice_1; |
7488 | } |
7489 | $r1 = $this->parseAsyncIterable($silence); |
7490 | if ($r1!==self::$FAILED) { |
7491 | goto choice_1; |
7492 | } |
7493 | $r1 = $this->parseReadOnlyMember($silence); |
7494 | if ($r1!==self::$FAILED) { |
7495 | goto choice_1; |
7496 | } |
7497 | $r1 = $this->parseAttributeRest($silence); |
7498 | if ($r1!==self::$FAILED) { |
7499 | goto choice_1; |
7500 | } |
7501 | $r1 = $this->parseMaplikeRest($silence); |
7502 | if ($r1!==self::$FAILED) { |
7503 | goto choice_1; |
7504 | } |
7505 | $r1 = $this->parseSetlikeRest($silence); |
7506 | if ($r1!==self::$FAILED) { |
7507 | goto choice_1; |
7508 | } |
7509 | $r1 = $this->parseInheritAttribute($silence); |
7510 | choice_1: |
7511 | return $r1; |
7512 | } |
7513 | private function parseConstructor($silence) { |
7514 | $p2 = $this->currPos; |
7515 | // start seq_1 |
7516 | $p3 = $this->currPos; |
7517 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "constructor", $this->currPos, 11, false) === 0) { |
7518 | $r4 = "constructor"; |
7519 | $this->currPos += 11; |
7520 | } else { |
7521 | if (!$silence) {$this->fail(36);} |
7522 | $r4 = self::$FAILED; |
7523 | $r1 = self::$FAILED; |
7524 | goto seq_1; |
7525 | } |
7526 | $r5 = $this->discardi_($silence); |
7527 | if ($r5===self::$FAILED) { |
7528 | $this->currPos = $p3; |
7529 | $r1 = self::$FAILED; |
7530 | goto seq_1; |
7531 | } |
7532 | if (($this->input[$this->currPos] ?? null) === "(") { |
7533 | $this->currPos++; |
7534 | $r6 = "("; |
7535 | } else { |
7536 | if (!$silence) {$this->fail(25);} |
7537 | $r6 = self::$FAILED; |
7538 | $this->currPos = $p3; |
7539 | $r1 = self::$FAILED; |
7540 | goto seq_1; |
7541 | } |
7542 | $r7 = $this->discard_($silence); |
7543 | if ($r7===self::$FAILED) { |
7544 | $this->currPos = $p3; |
7545 | $r1 = self::$FAILED; |
7546 | goto seq_1; |
7547 | } |
7548 | $r8 = $this->parseArgumentList($silence); |
7549 | // args <- $r8 |
7550 | if ($r8===self::$FAILED) { |
7551 | $this->currPos = $p3; |
7552 | $r1 = self::$FAILED; |
7553 | goto seq_1; |
7554 | } |
7555 | if (($this->input[$this->currPos] ?? null) === ")") { |
7556 | $this->currPos++; |
7557 | $r9 = ")"; |
7558 | } else { |
7559 | if (!$silence) {$this->fail(26);} |
7560 | $r9 = self::$FAILED; |
7561 | $this->currPos = $p3; |
7562 | $r1 = self::$FAILED; |
7563 | goto seq_1; |
7564 | } |
7565 | $r10 = $this->discard_($silence); |
7566 | if ($r10===self::$FAILED) { |
7567 | $this->currPos = $p3; |
7568 | $r1 = self::$FAILED; |
7569 | goto seq_1; |
7570 | } |
7571 | if (($this->input[$this->currPos] ?? null) === ";") { |
7572 | $this->currPos++; |
7573 | $r11 = ";"; |
7574 | } else { |
7575 | if (!$silence) {$this->fail(19);} |
7576 | $r11 = self::$FAILED; |
7577 | $this->currPos = $p3; |
7578 | $r1 = self::$FAILED; |
7579 | goto seq_1; |
7580 | } |
7581 | $r12 = $this->parsec_($silence); |
7582 | // c <- $r12 |
7583 | if ($r12===self::$FAILED) { |
7584 | $this->currPos = $p3; |
7585 | $r1 = self::$FAILED; |
7586 | goto seq_1; |
7587 | } |
7588 | $r1 = true; |
7589 | seq_1: |
7590 | if ($r1!==self::$FAILED) { |
7591 | $this->savedPos = $p2; |
7592 | $r1 = $this->a84($r8, $r12); |
7593 | } |
7594 | // free $p3 |
7595 | return $r1; |
7596 | } |
7597 | private function parseStringifier($silence) { |
7598 | $p2 = $this->currPos; |
7599 | // start seq_1 |
7600 | $p3 = $this->currPos; |
7601 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "stringifier", $this->currPos, 11, false) === 0) { |
7602 | $r4 = "stringifier"; |
7603 | $this->currPos += 11; |
7604 | } else { |
7605 | if (!$silence) {$this->fail(47);} |
7606 | $r4 = self::$FAILED; |
7607 | $r1 = self::$FAILED; |
7608 | goto seq_1; |
7609 | } |
7610 | $r5 = $this->discardi_($silence); |
7611 | if ($r5===self::$FAILED) { |
7612 | $this->currPos = $p3; |
7613 | $r1 = self::$FAILED; |
7614 | goto seq_1; |
7615 | } |
7616 | $r6 = $this->parseStringifierRest($silence); |
7617 | // rest <- $r6 |
7618 | if ($r6===self::$FAILED) { |
7619 | $this->currPos = $p3; |
7620 | $r1 = self::$FAILED; |
7621 | goto seq_1; |
7622 | } |
7623 | $r1 = true; |
7624 | seq_1: |
7625 | if ($r1!==self::$FAILED) { |
7626 | $this->savedPos = $p2; |
7627 | $r1 = $this->a85($r6); |
7628 | } |
7629 | // free $p3 |
7630 | return $r1; |
7631 | } |
7632 | private function parseOptionalReadOnly($silence) { |
7633 | $p2 = $this->currPos; |
7634 | // start seq_1 |
7635 | $p3 = $this->currPos; |
7636 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "readonly", $this->currPos, 8, false) === 0) { |
7637 | $r4 = "readonly"; |
7638 | $this->currPos += 8; |
7639 | } else { |
7640 | if (!$silence) {$this->fail(42);} |
7641 | $r4 = self::$FAILED; |
7642 | $r1 = self::$FAILED; |
7643 | goto seq_1; |
7644 | } |
7645 | $r5 = $this->discardi_($silence); |
7646 | if ($r5===self::$FAILED) { |
7647 | $this->currPos = $p3; |
7648 | $r1 = self::$FAILED; |
7649 | goto seq_1; |
7650 | } |
7651 | $r1 = true; |
7652 | seq_1: |
7653 | if ($r1!==self::$FAILED) { |
7654 | $this->savedPos = $p2; |
7655 | $r1 = $this->a59(); |
7656 | } else { |
7657 | $r1 = null; |
7658 | } |
7659 | // free $p3 |
7660 | return $r1; |
7661 | } |
7662 | private function parseOptionalOperationName($silence) { |
7663 | $r1 = $this->parseOperationName($silence); |
7664 | if ($r1===self::$FAILED) { |
7665 | $r1 = null; |
7666 | } |
7667 | return $r1; |
7668 | } |
7669 | private function parseAttributeNameKeyword($silence) { |
7670 | $p2 = $this->currPos; |
7671 | // start seq_1 |
7672 | $p3 = $this->currPos; |
7673 | $p5 = $this->currPos; |
7674 | // start choice_1 |
7675 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "async", $this->currPos, 5, false) === 0) { |
7676 | $r4 = "async"; |
7677 | $this->currPos += 5; |
7678 | goto choice_1; |
7679 | } else { |
7680 | if (!$silence) {$this->fail(33);} |
7681 | $r4 = self::$FAILED; |
7682 | } |
7683 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "required", $this->currPos, 8, false) === 0) { |
7684 | $r4 = "required"; |
7685 | $this->currPos += 8; |
7686 | } else { |
7687 | if (!$silence) {$this->fail(43);} |
7688 | $r4 = self::$FAILED; |
7689 | } |
7690 | choice_1: |
7691 | // id <- $r4 |
7692 | if ($r4!==self::$FAILED) { |
7693 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
7694 | } else { |
7695 | $r4 = self::$FAILED; |
7696 | $r1 = self::$FAILED; |
7697 | goto seq_1; |
7698 | } |
7699 | // free $p5 |
7700 | $r6 = $this->discardi_($silence); |
7701 | if ($r6===self::$FAILED) { |
7702 | $this->currPos = $p3; |
7703 | $r1 = self::$FAILED; |
7704 | goto seq_1; |
7705 | } |
7706 | $r1 = true; |
7707 | seq_1: |
7708 | if ($r1!==self::$FAILED) { |
7709 | $this->savedPos = $p2; |
7710 | $r1 = $this->a70($r4); |
7711 | } |
7712 | // free $p3 |
7713 | return $r1; |
7714 | } |
7715 | private function parsePrimitiveType($silence) { |
7716 | // start choice_1 |
7717 | $r1 = $this->parseUnsignedIntegerType($silence); |
7718 | if ($r1!==self::$FAILED) { |
7719 | goto choice_1; |
7720 | } |
7721 | $r1 = $this->parseUnrestrictedFloatType($silence); |
7722 | if ($r1!==self::$FAILED) { |
7723 | goto choice_1; |
7724 | } |
7725 | $p2 = $this->currPos; |
7726 | // start seq_1 |
7727 | $p3 = $this->currPos; |
7728 | $p5 = $this->currPos; |
7729 | // start choice_2 |
7730 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "undefined", $this->currPos, 9, false) === 0) { |
7731 | $r4 = "undefined"; |
7732 | $this->currPos += 9; |
7733 | goto choice_2; |
7734 | } else { |
7735 | if (!$silence) {$this->fail(87);} |
7736 | $r4 = self::$FAILED; |
7737 | } |
7738 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "boolean", $this->currPos, 7, false) === 0) { |
7739 | $r4 = "boolean"; |
7740 | $this->currPos += 7; |
7741 | goto choice_2; |
7742 | } else { |
7743 | if (!$silence) {$this->fail(70);} |
7744 | $r4 = self::$FAILED; |
7745 | } |
7746 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "byte", $this->currPos, 4, false) === 0) { |
7747 | $r4 = "byte"; |
7748 | $this->currPos += 4; |
7749 | goto choice_2; |
7750 | } else { |
7751 | if (!$silence) {$this->fail(71);} |
7752 | $r4 = self::$FAILED; |
7753 | } |
7754 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "octet", $this->currPos, 5, false) === 0) { |
7755 | $r4 = "octet"; |
7756 | $this->currPos += 5; |
7757 | goto choice_2; |
7758 | } else { |
7759 | if (!$silence) {$this->fail(78);} |
7760 | $r4 = self::$FAILED; |
7761 | } |
7762 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "bigint", $this->currPos, 6, false) === 0) { |
7763 | $r4 = "bigint"; |
7764 | $this->currPos += 6; |
7765 | } else { |
7766 | if (!$silence) {$this->fail(69);} |
7767 | $r4 = self::$FAILED; |
7768 | } |
7769 | choice_2: |
7770 | // v <- $r4 |
7771 | if ($r4!==self::$FAILED) { |
7772 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
7773 | } else { |
7774 | $r4 = self::$FAILED; |
7775 | $r1 = self::$FAILED; |
7776 | goto seq_1; |
7777 | } |
7778 | // free $p5 |
7779 | $r6 = $this->discardi_($silence); |
7780 | if ($r6===self::$FAILED) { |
7781 | $this->currPos = $p3; |
7782 | $r1 = self::$FAILED; |
7783 | goto seq_1; |
7784 | } |
7785 | $r1 = true; |
7786 | seq_1: |
7787 | if ($r1!==self::$FAILED) { |
7788 | $this->savedPos = $p2; |
7789 | $r1 = $this->a86($r4); |
7790 | } |
7791 | // free $p3 |
7792 | choice_1: |
7793 | return $r1; |
7794 | } |
7795 | private function parseStringType($silence) { |
7796 | $p2 = $this->currPos; |
7797 | // start seq_1 |
7798 | $p3 = $this->currPos; |
7799 | $p5 = $this->currPos; |
7800 | // start choice_1 |
7801 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ByteString", $this->currPos, 10, false) === 0) { |
7802 | $r4 = "ByteString"; |
7803 | $this->currPos += 10; |
7804 | goto choice_1; |
7805 | } else { |
7806 | if (!$silence) {$this->fail(60);} |
7807 | $r4 = self::$FAILED; |
7808 | } |
7809 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "DOMString", $this->currPos, 9, false) === 0) { |
7810 | $r4 = "DOMString"; |
7811 | $this->currPos += 9; |
7812 | goto choice_1; |
7813 | } else { |
7814 | if (!$silence) {$this->fail(61);} |
7815 | $r4 = self::$FAILED; |
7816 | } |
7817 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "USVString", $this->currPos, 9, false) === 0) { |
7818 | $r4 = "USVString"; |
7819 | $this->currPos += 9; |
7820 | } else { |
7821 | if (!$silence) {$this->fail(67);} |
7822 | $r4 = self::$FAILED; |
7823 | } |
7824 | choice_1: |
7825 | // s <- $r4 |
7826 | if ($r4!==self::$FAILED) { |
7827 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
7828 | } else { |
7829 | $r4 = self::$FAILED; |
7830 | $r1 = self::$FAILED; |
7831 | goto seq_1; |
7832 | } |
7833 | // free $p5 |
7834 | $r6 = $this->discardi_($silence); |
7835 | if ($r6===self::$FAILED) { |
7836 | $this->currPos = $p3; |
7837 | $r1 = self::$FAILED; |
7838 | goto seq_1; |
7839 | } |
7840 | $r1 = true; |
7841 | seq_1: |
7842 | if ($r1!==self::$FAILED) { |
7843 | $this->savedPos = $p2; |
7844 | $r1 = $this->a40($r4); |
7845 | } |
7846 | // free $p3 |
7847 | return $r1; |
7848 | } |
7849 | private function parseBufferRelatedType($silence) { |
7850 | $p2 = $this->currPos; |
7851 | // start seq_1 |
7852 | $p3 = $this->currPos; |
7853 | $p5 = $this->currPos; |
7854 | // start choice_1 |
7855 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "ArrayBuffer", $this->currPos, 11, false) === 0) { |
7856 | $r4 = "ArrayBuffer"; |
7857 | $this->currPos += 11; |
7858 | goto choice_1; |
7859 | } else { |
7860 | if (!$silence) {$this->fail(49);} |
7861 | $r4 = self::$FAILED; |
7862 | } |
7863 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "DataView", $this->currPos, 8, false) === 0) { |
7864 | $r4 = "DataView"; |
7865 | $this->currPos += 8; |
7866 | goto choice_1; |
7867 | } else { |
7868 | if (!$silence) {$this->fail(50);} |
7869 | $r4 = self::$FAILED; |
7870 | } |
7871 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int8Array", $this->currPos, 9, false) === 0) { |
7872 | $r4 = "Int8Array"; |
7873 | $this->currPos += 9; |
7874 | goto choice_1; |
7875 | } else { |
7876 | if (!$silence) {$this->fail(51);} |
7877 | $r4 = self::$FAILED; |
7878 | } |
7879 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int16Array", $this->currPos, 10, false) === 0) { |
7880 | $r4 = "Int16Array"; |
7881 | $this->currPos += 10; |
7882 | goto choice_1; |
7883 | } else { |
7884 | if (!$silence) {$this->fail(52);} |
7885 | $r4 = self::$FAILED; |
7886 | } |
7887 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Int32Array", $this->currPos, 10, false) === 0) { |
7888 | $r4 = "Int32Array"; |
7889 | $this->currPos += 10; |
7890 | goto choice_1; |
7891 | } else { |
7892 | if (!$silence) {$this->fail(53);} |
7893 | $r4 = self::$FAILED; |
7894 | } |
7895 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint8Array", $this->currPos, 10, false) === 0) { |
7896 | $r4 = "Uint8Array"; |
7897 | $this->currPos += 10; |
7898 | goto choice_1; |
7899 | } else { |
7900 | if (!$silence) {$this->fail(54);} |
7901 | $r4 = self::$FAILED; |
7902 | } |
7903 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint16Array", $this->currPos, 11, false) === 0) { |
7904 | $r4 = "Uint16Array"; |
7905 | $this->currPos += 11; |
7906 | goto choice_1; |
7907 | } else { |
7908 | if (!$silence) {$this->fail(55);} |
7909 | $r4 = self::$FAILED; |
7910 | } |
7911 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint32Array", $this->currPos, 11, false) === 0) { |
7912 | $r4 = "Uint32Array"; |
7913 | $this->currPos += 11; |
7914 | goto choice_1; |
7915 | } else { |
7916 | if (!$silence) {$this->fail(56);} |
7917 | $r4 = self::$FAILED; |
7918 | } |
7919 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Uint8ClampedArray", $this->currPos, 17, false) === 0) { |
7920 | $r4 = "Uint8ClampedArray"; |
7921 | $this->currPos += 17; |
7922 | goto choice_1; |
7923 | } else { |
7924 | if (!$silence) {$this->fail(57);} |
7925 | $r4 = self::$FAILED; |
7926 | } |
7927 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Float32Array", $this->currPos, 12, false) === 0) { |
7928 | $r4 = "Float32Array"; |
7929 | $this->currPos += 12; |
7930 | goto choice_1; |
7931 | } else { |
7932 | if (!$silence) {$this->fail(58);} |
7933 | $r4 = self::$FAILED; |
7934 | } |
7935 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Float64Array", $this->currPos, 12, false) === 0) { |
7936 | $r4 = "Float64Array"; |
7937 | $this->currPos += 12; |
7938 | } else { |
7939 | if (!$silence) {$this->fail(59);} |
7940 | $r4 = self::$FAILED; |
7941 | } |
7942 | choice_1: |
7943 | // s <- $r4 |
7944 | if ($r4!==self::$FAILED) { |
7945 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
7946 | } else { |
7947 | $r4 = self::$FAILED; |
7948 | $r1 = self::$FAILED; |
7949 | goto seq_1; |
7950 | } |
7951 | // free $p5 |
7952 | $r6 = $this->discardi_($silence); |
7953 | if ($r6===self::$FAILED) { |
7954 | $this->currPos = $p3; |
7955 | $r1 = self::$FAILED; |
7956 | goto seq_1; |
7957 | } |
7958 | $r1 = true; |
7959 | seq_1: |
7960 | if ($r1!==self::$FAILED) { |
7961 | $this->savedPos = $p2; |
7962 | $r1 = $this->a40($r4); |
7963 | } |
7964 | // free $p3 |
7965 | return $r1; |
7966 | } |
7967 | private function parseRecordType($silence) { |
7968 | $p2 = $this->currPos; |
7969 | // start seq_1 |
7970 | $p3 = $this->currPos; |
7971 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "record", $this->currPos, 6, false) === 0) { |
7972 | $r4 = "record"; |
7973 | $this->currPos += 6; |
7974 | } else { |
7975 | if (!$silence) {$this->fail(81);} |
7976 | $r4 = self::$FAILED; |
7977 | $r1 = self::$FAILED; |
7978 | goto seq_1; |
7979 | } |
7980 | $r5 = $this->discardi_($silence); |
7981 | if ($r5===self::$FAILED) { |
7982 | $this->currPos = $p3; |
7983 | $r1 = self::$FAILED; |
7984 | goto seq_1; |
7985 | } |
7986 | if (($this->input[$this->currPos] ?? null) === "<") { |
7987 | $this->currPos++; |
7988 | $r6 = "<"; |
7989 | } else { |
7990 | if (!$silence) {$this->fail(98);} |
7991 | $r6 = self::$FAILED; |
7992 | $this->currPos = $p3; |
7993 | $r1 = self::$FAILED; |
7994 | goto seq_1; |
7995 | } |
7996 | $r7 = $this->discard_($silence); |
7997 | if ($r7===self::$FAILED) { |
7998 | $this->currPos = $p3; |
7999 | $r1 = self::$FAILED; |
8000 | goto seq_1; |
8001 | } |
8002 | $r8 = $this->parseStringType($silence); |
8003 | // t1 <- $r8 |
8004 | if ($r8===self::$FAILED) { |
8005 | $this->currPos = $p3; |
8006 | $r1 = self::$FAILED; |
8007 | goto seq_1; |
8008 | } |
8009 | if (($this->input[$this->currPos] ?? null) === ",") { |
8010 | $this->currPos++; |
8011 | $r9 = ","; |
8012 | } else { |
8013 | if (!$silence) {$this->fail(13);} |
8014 | $r9 = self::$FAILED; |
8015 | $this->currPos = $p3; |
8016 | $r1 = self::$FAILED; |
8017 | goto seq_1; |
8018 | } |
8019 | $r10 = $this->discard_($silence); |
8020 | if ($r10===self::$FAILED) { |
8021 | $this->currPos = $p3; |
8022 | $r1 = self::$FAILED; |
8023 | goto seq_1; |
8024 | } |
8025 | $r11 = $this->parseTypeWithExtendedAttributes($silence); |
8026 | // t2 <- $r11 |
8027 | if ($r11===self::$FAILED) { |
8028 | $this->currPos = $p3; |
8029 | $r1 = self::$FAILED; |
8030 | goto seq_1; |
8031 | } |
8032 | if (($this->input[$this->currPos] ?? null) === ">") { |
8033 | $this->currPos++; |
8034 | $r12 = ">"; |
8035 | } else { |
8036 | if (!$silence) {$this->fail(99);} |
8037 | $r12 = self::$FAILED; |
8038 | $this->currPos = $p3; |
8039 | $r1 = self::$FAILED; |
8040 | goto seq_1; |
8041 | } |
8042 | $r13 = $this->discard_($silence); |
8043 | if ($r13===self::$FAILED) { |
8044 | $this->currPos = $p3; |
8045 | $r1 = self::$FAILED; |
8046 | goto seq_1; |
8047 | } |
8048 | $r1 = true; |
8049 | seq_1: |
8050 | if ($r1!==self::$FAILED) { |
8051 | $this->savedPos = $p2; |
8052 | $r1 = $this->a87($r8, $r11); |
8053 | } |
8054 | // free $p3 |
8055 | return $r1; |
8056 | } |
8057 | private function parseArgumentNameKeyword($silence) { |
8058 | $p2 = $this->currPos; |
8059 | // start seq_1 |
8060 | $p3 = $this->currPos; |
8061 | $p5 = $this->currPos; |
8062 | // start choice_1 |
8063 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "async", $this->currPos, 5, false) === 0) { |
8064 | $r4 = "async"; |
8065 | $this->currPos += 5; |
8066 | goto choice_1; |
8067 | } else { |
8068 | if (!$silence) {$this->fail(33);} |
8069 | $r4 = self::$FAILED; |
8070 | } |
8071 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "attribute", $this->currPos, 9, false) === 0) { |
8072 | $r4 = "attribute"; |
8073 | $this->currPos += 9; |
8074 | goto choice_1; |
8075 | } else { |
8076 | if (!$silence) {$this->fail(34);} |
8077 | $r4 = self::$FAILED; |
8078 | } |
8079 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "callback", $this->currPos, 8, false) === 0) { |
8080 | $r4 = "callback"; |
8081 | $this->currPos += 8; |
8082 | goto choice_1; |
8083 | } else { |
8084 | if (!$silence) {$this->fail(14);} |
8085 | $r4 = self::$FAILED; |
8086 | } |
8087 | // start seq_2 |
8088 | $p6 = $this->currPos; |
8089 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "const", $this->currPos, 5, false) === 0) { |
8090 | $r7 = "const"; |
8091 | $this->currPos += 5; |
8092 | } else { |
8093 | if (!$silence) {$this->fail(35);} |
8094 | $r7 = self::$FAILED; |
8095 | $r4 = self::$FAILED; |
8096 | goto seq_2; |
8097 | } |
8098 | $p8 = $this->currPos; |
8099 | $r9 = $this->input[$this->currPos] ?? ''; |
8100 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r9)) { |
8101 | $this->currPos++; |
8102 | } else { |
8103 | $r9 = self::$FAILED; |
8104 | } |
8105 | if ($r9 === self::$FAILED) { |
8106 | $r9 = false; |
8107 | } else { |
8108 | $r9 = self::$FAILED; |
8109 | $this->currPos = $p8; |
8110 | $this->currPos = $p6; |
8111 | $r4 = self::$FAILED; |
8112 | goto seq_2; |
8113 | } |
8114 | // free $p8 |
8115 | $r4 = true; |
8116 | seq_2: |
8117 | if ($r4!==self::$FAILED) { |
8118 | goto choice_1; |
8119 | } |
8120 | // free $p6 |
8121 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "constructor", $this->currPos, 11, false) === 0) { |
8122 | $r4 = "constructor"; |
8123 | $this->currPos += 11; |
8124 | goto choice_1; |
8125 | } else { |
8126 | if (!$silence) {$this->fail(36);} |
8127 | $r4 = self::$FAILED; |
8128 | } |
8129 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "deleter", $this->currPos, 7, false) === 0) { |
8130 | $r4 = "deleter"; |
8131 | $this->currPos += 7; |
8132 | goto choice_1; |
8133 | } else { |
8134 | if (!$silence) {$this->fail(37);} |
8135 | $r4 = self::$FAILED; |
8136 | } |
8137 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "dictionary", $this->currPos, 10, false) === 0) { |
8138 | $r4 = "dictionary"; |
8139 | $this->currPos += 10; |
8140 | goto choice_1; |
8141 | } else { |
8142 | if (!$silence) {$this->fail(21);} |
8143 | $r4 = self::$FAILED; |
8144 | } |
8145 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "enum", $this->currPos, 4, false) === 0) { |
8146 | $r4 = "enum"; |
8147 | $this->currPos += 4; |
8148 | goto choice_1; |
8149 | } else { |
8150 | if (!$silence) {$this->fail(22);} |
8151 | $r4 = self::$FAILED; |
8152 | } |
8153 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "getter", $this->currPos, 6, false) === 0) { |
8154 | $r4 = "getter"; |
8155 | $this->currPos += 6; |
8156 | goto choice_1; |
8157 | } else { |
8158 | if (!$silence) {$this->fail(38);} |
8159 | $r4 = self::$FAILED; |
8160 | } |
8161 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "includes", $this->currPos, 8, false) === 0) { |
8162 | $r4 = "includes"; |
8163 | $this->currPos += 8; |
8164 | goto choice_1; |
8165 | } else { |
8166 | if (!$silence) {$this->fail(24);} |
8167 | $r4 = self::$FAILED; |
8168 | } |
8169 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "inherit", $this->currPos, 7, false) === 0) { |
8170 | $r4 = "inherit"; |
8171 | $this->currPos += 7; |
8172 | goto choice_1; |
8173 | } else { |
8174 | if (!$silence) {$this->fail(39);} |
8175 | $r4 = self::$FAILED; |
8176 | } |
8177 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "interface", $this->currPos, 9, false) === 0) { |
8178 | $r4 = "interface"; |
8179 | $this->currPos += 9; |
8180 | goto choice_1; |
8181 | } else { |
8182 | if (!$silence) {$this->fail(15);} |
8183 | $r4 = self::$FAILED; |
8184 | } |
8185 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "iterable", $this->currPos, 8, false) === 0) { |
8186 | $r4 = "iterable"; |
8187 | $this->currPos += 8; |
8188 | goto choice_1; |
8189 | } else { |
8190 | if (!$silence) {$this->fail(40);} |
8191 | $r4 = self::$FAILED; |
8192 | } |
8193 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "maplike", $this->currPos, 7, false) === 0) { |
8194 | $r4 = "maplike"; |
8195 | $this->currPos += 7; |
8196 | goto choice_1; |
8197 | } else { |
8198 | if (!$silence) {$this->fail(41);} |
8199 | $r4 = self::$FAILED; |
8200 | } |
8201 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "mixin", $this->currPos, 5, false) === 0) { |
8202 | $r4 = "mixin"; |
8203 | $this->currPos += 5; |
8204 | goto choice_1; |
8205 | } else { |
8206 | if (!$silence) {$this->fail(32);} |
8207 | $r4 = self::$FAILED; |
8208 | } |
8209 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "namespace", $this->currPos, 9, false) === 0) { |
8210 | $r4 = "namespace"; |
8211 | $this->currPos += 9; |
8212 | goto choice_1; |
8213 | } else { |
8214 | if (!$silence) {$this->fail(16);} |
8215 | $r4 = self::$FAILED; |
8216 | } |
8217 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "partial", $this->currPos, 7, false) === 0) { |
8218 | $r4 = "partial"; |
8219 | $this->currPos += 7; |
8220 | goto choice_1; |
8221 | } else { |
8222 | if (!$silence) {$this->fail(20);} |
8223 | $r4 = self::$FAILED; |
8224 | } |
8225 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "readonly", $this->currPos, 8, false) === 0) { |
8226 | $r4 = "readonly"; |
8227 | $this->currPos += 8; |
8228 | goto choice_1; |
8229 | } else { |
8230 | if (!$silence) {$this->fail(42);} |
8231 | $r4 = self::$FAILED; |
8232 | } |
8233 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "required", $this->currPos, 8, false) === 0) { |
8234 | $r4 = "required"; |
8235 | $this->currPos += 8; |
8236 | goto choice_1; |
8237 | } else { |
8238 | if (!$silence) {$this->fail(43);} |
8239 | $r4 = self::$FAILED; |
8240 | } |
8241 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setlike", $this->currPos, 7, false) === 0) { |
8242 | $r4 = "setlike"; |
8243 | $this->currPos += 7; |
8244 | goto choice_1; |
8245 | } else { |
8246 | if (!$silence) {$this->fail(44);} |
8247 | $r4 = self::$FAILED; |
8248 | } |
8249 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setter", $this->currPos, 6, false) === 0) { |
8250 | $r4 = "setter"; |
8251 | $this->currPos += 6; |
8252 | goto choice_1; |
8253 | } else { |
8254 | if (!$silence) {$this->fail(45);} |
8255 | $r4 = self::$FAILED; |
8256 | } |
8257 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "static", $this->currPos, 6, false) === 0) { |
8258 | $r4 = "static"; |
8259 | $this->currPos += 6; |
8260 | goto choice_1; |
8261 | } else { |
8262 | if (!$silence) {$this->fail(46);} |
8263 | $r4 = self::$FAILED; |
8264 | } |
8265 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "stringifier", $this->currPos, 11, false) === 0) { |
8266 | $r4 = "stringifier"; |
8267 | $this->currPos += 11; |
8268 | goto choice_1; |
8269 | } else { |
8270 | if (!$silence) {$this->fail(47);} |
8271 | $r4 = self::$FAILED; |
8272 | } |
8273 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "typedef", $this->currPos, 7, false) === 0) { |
8274 | $r4 = "typedef"; |
8275 | $this->currPos += 7; |
8276 | goto choice_1; |
8277 | } else { |
8278 | if (!$silence) {$this->fail(23);} |
8279 | $r4 = self::$FAILED; |
8280 | } |
8281 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "unrestricted", $this->currPos, 12, false) === 0) { |
8282 | $r4 = "unrestricted"; |
8283 | $this->currPos += 12; |
8284 | } else { |
8285 | if (!$silence) {$this->fail(48);} |
8286 | $r4 = self::$FAILED; |
8287 | } |
8288 | choice_1: |
8289 | // k <- $r4 |
8290 | if ($r4!==self::$FAILED) { |
8291 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
8292 | } else { |
8293 | $r4 = self::$FAILED; |
8294 | $r1 = self::$FAILED; |
8295 | goto seq_1; |
8296 | } |
8297 | // free $p5 |
8298 | $r10 = $this->discardi_($silence); |
8299 | if ($r10===self::$FAILED) { |
8300 | $this->currPos = $p3; |
8301 | $r1 = self::$FAILED; |
8302 | goto seq_1; |
8303 | } |
8304 | $r1 = true; |
8305 | seq_1: |
8306 | if ($r1!==self::$FAILED) { |
8307 | $this->savedPos = $p2; |
8308 | $r1 = $this->a39($r4); |
8309 | } |
8310 | // free $p3 |
8311 | return $r1; |
8312 | } |
8313 | private function parseBooleanLiteral($silence) { |
8314 | $p2 = $this->currPos; |
8315 | // start seq_1 |
8316 | $p3 = $this->currPos; |
8317 | $p5 = $this->currPos; |
8318 | // start choice_1 |
8319 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "true", $this->currPos, 4, false) === 0) { |
8320 | $r4 = "true"; |
8321 | $this->currPos += 4; |
8322 | goto choice_1; |
8323 | } else { |
8324 | if (!$silence) {$this->fail(85);} |
8325 | $r4 = self::$FAILED; |
8326 | } |
8327 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "false", $this->currPos, 5, false) === 0) { |
8328 | $r4 = "false"; |
8329 | $this->currPos += 5; |
8330 | } else { |
8331 | if (!$silence) {$this->fail(73);} |
8332 | $r4 = self::$FAILED; |
8333 | } |
8334 | choice_1: |
8335 | // v <- $r4 |
8336 | if ($r4!==self::$FAILED) { |
8337 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
8338 | } else { |
8339 | $r4 = self::$FAILED; |
8340 | $r1 = self::$FAILED; |
8341 | goto seq_1; |
8342 | } |
8343 | // free $p5 |
8344 | $r6 = $this->discardi_($silence); |
8345 | if ($r6===self::$FAILED) { |
8346 | $this->currPos = $p3; |
8347 | $r1 = self::$FAILED; |
8348 | goto seq_1; |
8349 | } |
8350 | $r1 = true; |
8351 | seq_1: |
8352 | if ($r1!==self::$FAILED) { |
8353 | $this->savedPos = $p2; |
8354 | $r1 = $this->a88($r4); |
8355 | } |
8356 | // free $p3 |
8357 | return $r1; |
8358 | } |
8359 | private function parseFloatLiteral($silence) { |
8360 | // start choice_1 |
8361 | $p2 = $this->currPos; |
8362 | // start seq_1 |
8363 | $p3 = $this->currPos; |
8364 | $p5 = $this->currPos; |
8365 | $r4 = $this->discarddecimal($silence); |
8366 | // s <- $r4 |
8367 | if ($r4!==self::$FAILED) { |
8368 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
8369 | } else { |
8370 | $r4 = self::$FAILED; |
8371 | $r1 = self::$FAILED; |
8372 | goto seq_1; |
8373 | } |
8374 | // free $p5 |
8375 | $r6 = $this->discard_($silence); |
8376 | if ($r6===self::$FAILED) { |
8377 | $this->currPos = $p3; |
8378 | $r1 = self::$FAILED; |
8379 | goto seq_1; |
8380 | } |
8381 | $r1 = true; |
8382 | seq_1: |
8383 | if ($r1!==self::$FAILED) { |
8384 | $this->savedPos = $p2; |
8385 | $r1 = $this->a89($r4); |
8386 | goto choice_1; |
8387 | } |
8388 | // free $p3 |
8389 | $p3 = $this->currPos; |
8390 | // start seq_2 |
8391 | $p5 = $this->currPos; |
8392 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "-Infinity", $this->currPos, 9, false) === 0) { |
8393 | $r7 = "-Infinity"; |
8394 | $this->currPos += 9; |
8395 | } else { |
8396 | if (!$silence) {$this->fail(96);} |
8397 | $r7 = self::$FAILED; |
8398 | $r1 = self::$FAILED; |
8399 | goto seq_2; |
8400 | } |
8401 | $r8 = $this->discardi_($silence); |
8402 | if ($r8===self::$FAILED) { |
8403 | $this->currPos = $p5; |
8404 | $r1 = self::$FAILED; |
8405 | goto seq_2; |
8406 | } |
8407 | $r1 = true; |
8408 | seq_2: |
8409 | if ($r1!==self::$FAILED) { |
8410 | $this->savedPos = $p3; |
8411 | $r1 = $this->a90(); |
8412 | goto choice_1; |
8413 | } |
8414 | // free $p5 |
8415 | $p5 = $this->currPos; |
8416 | // start seq_3 |
8417 | $p9 = $this->currPos; |
8418 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "Infinity", $this->currPos, 8, false) === 0) { |
8419 | $r10 = "Infinity"; |
8420 | $this->currPos += 8; |
8421 | } else { |
8422 | if (!$silence) {$this->fail(63);} |
8423 | $r10 = self::$FAILED; |
8424 | $r1 = self::$FAILED; |
8425 | goto seq_3; |
8426 | } |
8427 | $r11 = $this->discardi_($silence); |
8428 | if ($r11===self::$FAILED) { |
8429 | $this->currPos = $p9; |
8430 | $r1 = self::$FAILED; |
8431 | goto seq_3; |
8432 | } |
8433 | $r1 = true; |
8434 | seq_3: |
8435 | if ($r1!==self::$FAILED) { |
8436 | $this->savedPos = $p5; |
8437 | $r1 = $this->a91(); |
8438 | goto choice_1; |
8439 | } |
8440 | // free $p9 |
8441 | $p9 = $this->currPos; |
8442 | // start seq_4 |
8443 | $p12 = $this->currPos; |
8444 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "NaN", $this->currPos, 3, false) === 0) { |
8445 | $r13 = "NaN"; |
8446 | $this->currPos += 3; |
8447 | } else { |
8448 | if (!$silence) {$this->fail(64);} |
8449 | $r13 = self::$FAILED; |
8450 | $r1 = self::$FAILED; |
8451 | goto seq_4; |
8452 | } |
8453 | $r14 = $this->discardi_($silence); |
8454 | if ($r14===self::$FAILED) { |
8455 | $this->currPos = $p12; |
8456 | $r1 = self::$FAILED; |
8457 | goto seq_4; |
8458 | } |
8459 | $r1 = true; |
8460 | seq_4: |
8461 | if ($r1!==self::$FAILED) { |
8462 | $this->savedPos = $p9; |
8463 | $r1 = $this->a92(); |
8464 | } |
8465 | // free $p12 |
8466 | choice_1: |
8467 | return $r1; |
8468 | } |
8469 | private function parseIntLiteral($silence) { |
8470 | $p2 = $this->currPos; |
8471 | // start seq_1 |
8472 | $p3 = $this->currPos; |
8473 | $p5 = $this->currPos; |
8474 | $r6 = $this->parseinteger($silence); |
8475 | // i <- $r6 |
8476 | $r4 = $r6; |
8477 | // s <- $r4 |
8478 | if ($r4!==self::$FAILED) { |
8479 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
8480 | } else { |
8481 | $r4 = self::$FAILED; |
8482 | $r1 = self::$FAILED; |
8483 | goto seq_1; |
8484 | } |
8485 | // free $p5 |
8486 | $r7 = $this->discard_($silence); |
8487 | if ($r7===self::$FAILED) { |
8488 | $this->currPos = $p3; |
8489 | $r1 = self::$FAILED; |
8490 | goto seq_1; |
8491 | } |
8492 | $r1 = true; |
8493 | seq_1: |
8494 | if ($r1!==self::$FAILED) { |
8495 | $this->savedPos = $p2; |
8496 | $r1 = $this->a89($r4); |
8497 | } |
8498 | // free $p3 |
8499 | return $r1; |
8500 | } |
8501 | private function parseOperation($silence) { |
8502 | // start choice_1 |
8503 | $r1 = $this->parseRegularOperation($silence); |
8504 | if ($r1!==self::$FAILED) { |
8505 | goto choice_1; |
8506 | } |
8507 | $r1 = $this->parseSpecialOperation($silence); |
8508 | choice_1: |
8509 | return $r1; |
8510 | } |
8511 | private function parseStaticMember($silence) { |
8512 | $p2 = $this->currPos; |
8513 | // start seq_1 |
8514 | $p3 = $this->currPos; |
8515 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "static", $this->currPos, 6, false) === 0) { |
8516 | $r4 = "static"; |
8517 | $this->currPos += 6; |
8518 | } else { |
8519 | if (!$silence) {$this->fail(46);} |
8520 | $r4 = self::$FAILED; |
8521 | $r1 = self::$FAILED; |
8522 | goto seq_1; |
8523 | } |
8524 | $r5 = $this->discardi_($silence); |
8525 | if ($r5===self::$FAILED) { |
8526 | $this->currPos = $p3; |
8527 | $r1 = self::$FAILED; |
8528 | goto seq_1; |
8529 | } |
8530 | $r6 = $this->parseStaticMemberRest($silence); |
8531 | // rest <- $r6 |
8532 | if ($r6===self::$FAILED) { |
8533 | $this->currPos = $p3; |
8534 | $r1 = self::$FAILED; |
8535 | goto seq_1; |
8536 | } |
8537 | $r1 = true; |
8538 | seq_1: |
8539 | if ($r1!==self::$FAILED) { |
8540 | $this->savedPos = $p2; |
8541 | $r1 = $this->a93($r6); |
8542 | } |
8543 | // free $p3 |
8544 | return $r1; |
8545 | } |
8546 | private function parseIterable($silence) { |
8547 | $p2 = $this->currPos; |
8548 | // start seq_1 |
8549 | $p3 = $this->currPos; |
8550 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "iterable", $this->currPos, 8, false) === 0) { |
8551 | $r4 = "iterable"; |
8552 | $this->currPos += 8; |
8553 | } else { |
8554 | if (!$silence) {$this->fail(40);} |
8555 | $r4 = self::$FAILED; |
8556 | $r1 = self::$FAILED; |
8557 | goto seq_1; |
8558 | } |
8559 | $r5 = $this->discardi_($silence); |
8560 | if ($r5===self::$FAILED) { |
8561 | $this->currPos = $p3; |
8562 | $r1 = self::$FAILED; |
8563 | goto seq_1; |
8564 | } |
8565 | if (($this->input[$this->currPos] ?? null) === "<") { |
8566 | $this->currPos++; |
8567 | $r6 = "<"; |
8568 | } else { |
8569 | if (!$silence) {$this->fail(98);} |
8570 | $r6 = self::$FAILED; |
8571 | $this->currPos = $p3; |
8572 | $r1 = self::$FAILED; |
8573 | goto seq_1; |
8574 | } |
8575 | $r7 = $this->discard_($silence); |
8576 | if ($r7===self::$FAILED) { |
8577 | $this->currPos = $p3; |
8578 | $r1 = self::$FAILED; |
8579 | goto seq_1; |
8580 | } |
8581 | $r8 = $this->parseTypeWithExtendedAttributes($silence); |
8582 | // t1 <- $r8 |
8583 | if ($r8===self::$FAILED) { |
8584 | $this->currPos = $p3; |
8585 | $r1 = self::$FAILED; |
8586 | goto seq_1; |
8587 | } |
8588 | $r9 = $this->parseOptionalType($silence); |
8589 | // t2 <- $r9 |
8590 | if ($r9===self::$FAILED) { |
8591 | $this->currPos = $p3; |
8592 | $r1 = self::$FAILED; |
8593 | goto seq_1; |
8594 | } |
8595 | if (($this->input[$this->currPos] ?? null) === ">") { |
8596 | $this->currPos++; |
8597 | $r10 = ">"; |
8598 | } else { |
8599 | if (!$silence) {$this->fail(99);} |
8600 | $r10 = self::$FAILED; |
8601 | $this->currPos = $p3; |
8602 | $r1 = self::$FAILED; |
8603 | goto seq_1; |
8604 | } |
8605 | $r11 = $this->discard_($silence); |
8606 | if ($r11===self::$FAILED) { |
8607 | $this->currPos = $p3; |
8608 | $r1 = self::$FAILED; |
8609 | goto seq_1; |
8610 | } |
8611 | if (($this->input[$this->currPos] ?? null) === ";") { |
8612 | $this->currPos++; |
8613 | $r12 = ";"; |
8614 | } else { |
8615 | if (!$silence) {$this->fail(19);} |
8616 | $r12 = self::$FAILED; |
8617 | $this->currPos = $p3; |
8618 | $r1 = self::$FAILED; |
8619 | goto seq_1; |
8620 | } |
8621 | $r13 = $this->parsec_($silence); |
8622 | // c <- $r13 |
8623 | if ($r13===self::$FAILED) { |
8624 | $this->currPos = $p3; |
8625 | $r1 = self::$FAILED; |
8626 | goto seq_1; |
8627 | } |
8628 | $r1 = true; |
8629 | seq_1: |
8630 | if ($r1!==self::$FAILED) { |
8631 | $this->savedPos = $p2; |
8632 | $r1 = $this->a94($r8, $r9, $r13); |
8633 | } |
8634 | // free $p3 |
8635 | return $r1; |
8636 | } |
8637 | private function parseAsyncIterable($silence) { |
8638 | $p2 = $this->currPos; |
8639 | // start seq_1 |
8640 | $p3 = $this->currPos; |
8641 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "async", $this->currPos, 5, false) === 0) { |
8642 | $r4 = "async"; |
8643 | $this->currPos += 5; |
8644 | } else { |
8645 | if (!$silence) {$this->fail(33);} |
8646 | $r4 = self::$FAILED; |
8647 | $r1 = self::$FAILED; |
8648 | goto seq_1; |
8649 | } |
8650 | $r5 = $this->discardi_($silence); |
8651 | if ($r5===self::$FAILED) { |
8652 | $this->currPos = $p3; |
8653 | $r1 = self::$FAILED; |
8654 | goto seq_1; |
8655 | } |
8656 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "iterable", $this->currPos, 8, false) === 0) { |
8657 | $r6 = "iterable"; |
8658 | $this->currPos += 8; |
8659 | } else { |
8660 | if (!$silence) {$this->fail(40);} |
8661 | $r6 = self::$FAILED; |
8662 | $this->currPos = $p3; |
8663 | $r1 = self::$FAILED; |
8664 | goto seq_1; |
8665 | } |
8666 | $r7 = $this->discardi_($silence); |
8667 | if ($r7===self::$FAILED) { |
8668 | $this->currPos = $p3; |
8669 | $r1 = self::$FAILED; |
8670 | goto seq_1; |
8671 | } |
8672 | if (($this->input[$this->currPos] ?? null) === "<") { |
8673 | $this->currPos++; |
8674 | $r8 = "<"; |
8675 | } else { |
8676 | if (!$silence) {$this->fail(98);} |
8677 | $r8 = self::$FAILED; |
8678 | $this->currPos = $p3; |
8679 | $r1 = self::$FAILED; |
8680 | goto seq_1; |
8681 | } |
8682 | $r9 = $this->discard_($silence); |
8683 | if ($r9===self::$FAILED) { |
8684 | $this->currPos = $p3; |
8685 | $r1 = self::$FAILED; |
8686 | goto seq_1; |
8687 | } |
8688 | $r10 = $this->parseTypeWithExtendedAttributes($silence); |
8689 | // t1 <- $r10 |
8690 | if ($r10===self::$FAILED) { |
8691 | $this->currPos = $p3; |
8692 | $r1 = self::$FAILED; |
8693 | goto seq_1; |
8694 | } |
8695 | $r11 = $this->parseOptionalType($silence); |
8696 | // t2 <- $r11 |
8697 | if ($r11===self::$FAILED) { |
8698 | $this->currPos = $p3; |
8699 | $r1 = self::$FAILED; |
8700 | goto seq_1; |
8701 | } |
8702 | if (($this->input[$this->currPos] ?? null) === ">") { |
8703 | $this->currPos++; |
8704 | $r12 = ">"; |
8705 | } else { |
8706 | if (!$silence) {$this->fail(99);} |
8707 | $r12 = self::$FAILED; |
8708 | $this->currPos = $p3; |
8709 | $r1 = self::$FAILED; |
8710 | goto seq_1; |
8711 | } |
8712 | $r13 = $this->discard_($silence); |
8713 | if ($r13===self::$FAILED) { |
8714 | $this->currPos = $p3; |
8715 | $r1 = self::$FAILED; |
8716 | goto seq_1; |
8717 | } |
8718 | $r14 = $this->parseOptionalArgumentList($silence); |
8719 | // args <- $r14 |
8720 | if ($r14===self::$FAILED) { |
8721 | $this->currPos = $p3; |
8722 | $r1 = self::$FAILED; |
8723 | goto seq_1; |
8724 | } |
8725 | if (($this->input[$this->currPos] ?? null) === ";") { |
8726 | $this->currPos++; |
8727 | $r15 = ";"; |
8728 | } else { |
8729 | if (!$silence) {$this->fail(19);} |
8730 | $r15 = self::$FAILED; |
8731 | $this->currPos = $p3; |
8732 | $r1 = self::$FAILED; |
8733 | goto seq_1; |
8734 | } |
8735 | $r16 = $this->parsec_($silence); |
8736 | // c <- $r16 |
8737 | if ($r16===self::$FAILED) { |
8738 | $this->currPos = $p3; |
8739 | $r1 = self::$FAILED; |
8740 | goto seq_1; |
8741 | } |
8742 | $r1 = true; |
8743 | seq_1: |
8744 | if ($r1!==self::$FAILED) { |
8745 | $this->savedPos = $p2; |
8746 | $r1 = $this->a95($r10, $r11, $r14, $r16); |
8747 | } |
8748 | // free $p3 |
8749 | return $r1; |
8750 | } |
8751 | private function parseReadOnlyMember($silence) { |
8752 | $p2 = $this->currPos; |
8753 | // start seq_1 |
8754 | $p3 = $this->currPos; |
8755 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "readonly", $this->currPos, 8, false) === 0) { |
8756 | $r4 = "readonly"; |
8757 | $this->currPos += 8; |
8758 | } else { |
8759 | if (!$silence) {$this->fail(42);} |
8760 | $r4 = self::$FAILED; |
8761 | $r1 = self::$FAILED; |
8762 | goto seq_1; |
8763 | } |
8764 | $r5 = $this->discardi_($silence); |
8765 | if ($r5===self::$FAILED) { |
8766 | $this->currPos = $p3; |
8767 | $r1 = self::$FAILED; |
8768 | goto seq_1; |
8769 | } |
8770 | $r6 = $this->parseReadOnlyMemberRest($silence); |
8771 | // m <- $r6 |
8772 | if ($r6===self::$FAILED) { |
8773 | $this->currPos = $p3; |
8774 | $r1 = self::$FAILED; |
8775 | goto seq_1; |
8776 | } |
8777 | $r1 = true; |
8778 | seq_1: |
8779 | if ($r1!==self::$FAILED) { |
8780 | $this->savedPos = $p2; |
8781 | $r1 = $this->a96($r6); |
8782 | } |
8783 | // free $p3 |
8784 | return $r1; |
8785 | } |
8786 | private function parseMaplikeRest($silence) { |
8787 | $p2 = $this->currPos; |
8788 | // start seq_1 |
8789 | $p3 = $this->currPos; |
8790 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "maplike", $this->currPos, 7, false) === 0) { |
8791 | $r4 = "maplike"; |
8792 | $this->currPos += 7; |
8793 | } else { |
8794 | if (!$silence) {$this->fail(41);} |
8795 | $r4 = self::$FAILED; |
8796 | $r1 = self::$FAILED; |
8797 | goto seq_1; |
8798 | } |
8799 | $r5 = $this->discardi_($silence); |
8800 | if ($r5===self::$FAILED) { |
8801 | $this->currPos = $p3; |
8802 | $r1 = self::$FAILED; |
8803 | goto seq_1; |
8804 | } |
8805 | if (($this->input[$this->currPos] ?? null) === "<") { |
8806 | $this->currPos++; |
8807 | $r6 = "<"; |
8808 | } else { |
8809 | if (!$silence) {$this->fail(98);} |
8810 | $r6 = self::$FAILED; |
8811 | $this->currPos = $p3; |
8812 | $r1 = self::$FAILED; |
8813 | goto seq_1; |
8814 | } |
8815 | $r7 = $this->discard_($silence); |
8816 | if ($r7===self::$FAILED) { |
8817 | $this->currPos = $p3; |
8818 | $r1 = self::$FAILED; |
8819 | goto seq_1; |
8820 | } |
8821 | $r8 = $this->parseTypeWithExtendedAttributes($silence); |
8822 | // t1 <- $r8 |
8823 | if ($r8===self::$FAILED) { |
8824 | $this->currPos = $p3; |
8825 | $r1 = self::$FAILED; |
8826 | goto seq_1; |
8827 | } |
8828 | if (($this->input[$this->currPos] ?? null) === ",") { |
8829 | $this->currPos++; |
8830 | $r9 = ","; |
8831 | } else { |
8832 | if (!$silence) {$this->fail(13);} |
8833 | $r9 = self::$FAILED; |
8834 | $this->currPos = $p3; |
8835 | $r1 = self::$FAILED; |
8836 | goto seq_1; |
8837 | } |
8838 | $r10 = $this->discard_($silence); |
8839 | if ($r10===self::$FAILED) { |
8840 | $this->currPos = $p3; |
8841 | $r1 = self::$FAILED; |
8842 | goto seq_1; |
8843 | } |
8844 | $r11 = $this->parseTypeWithExtendedAttributes($silence); |
8845 | // t2 <- $r11 |
8846 | if ($r11===self::$FAILED) { |
8847 | $this->currPos = $p3; |
8848 | $r1 = self::$FAILED; |
8849 | goto seq_1; |
8850 | } |
8851 | if (($this->input[$this->currPos] ?? null) === ">") { |
8852 | $this->currPos++; |
8853 | $r12 = ">"; |
8854 | } else { |
8855 | if (!$silence) {$this->fail(99);} |
8856 | $r12 = self::$FAILED; |
8857 | $this->currPos = $p3; |
8858 | $r1 = self::$FAILED; |
8859 | goto seq_1; |
8860 | } |
8861 | $r13 = $this->discard_($silence); |
8862 | if ($r13===self::$FAILED) { |
8863 | $this->currPos = $p3; |
8864 | $r1 = self::$FAILED; |
8865 | goto seq_1; |
8866 | } |
8867 | if (($this->input[$this->currPos] ?? null) === ";") { |
8868 | $this->currPos++; |
8869 | $r14 = ";"; |
8870 | } else { |
8871 | if (!$silence) {$this->fail(19);} |
8872 | $r14 = self::$FAILED; |
8873 | $this->currPos = $p3; |
8874 | $r1 = self::$FAILED; |
8875 | goto seq_1; |
8876 | } |
8877 | $r15 = $this->parsec_($silence); |
8878 | // c <- $r15 |
8879 | if ($r15===self::$FAILED) { |
8880 | $this->currPos = $p3; |
8881 | $r1 = self::$FAILED; |
8882 | goto seq_1; |
8883 | } |
8884 | $r1 = true; |
8885 | seq_1: |
8886 | if ($r1!==self::$FAILED) { |
8887 | $this->savedPos = $p2; |
8888 | $r1 = $this->a97($r8, $r11, $r15); |
8889 | } |
8890 | // free $p3 |
8891 | return $r1; |
8892 | } |
8893 | private function parseSetlikeRest($silence) { |
8894 | $p2 = $this->currPos; |
8895 | // start seq_1 |
8896 | $p3 = $this->currPos; |
8897 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setlike", $this->currPos, 7, false) === 0) { |
8898 | $r4 = "setlike"; |
8899 | $this->currPos += 7; |
8900 | } else { |
8901 | if (!$silence) {$this->fail(44);} |
8902 | $r4 = self::$FAILED; |
8903 | $r1 = self::$FAILED; |
8904 | goto seq_1; |
8905 | } |
8906 | $r5 = $this->discardi_($silence); |
8907 | if ($r5===self::$FAILED) { |
8908 | $this->currPos = $p3; |
8909 | $r1 = self::$FAILED; |
8910 | goto seq_1; |
8911 | } |
8912 | if (($this->input[$this->currPos] ?? null) === "<") { |
8913 | $this->currPos++; |
8914 | $r6 = "<"; |
8915 | } else { |
8916 | if (!$silence) {$this->fail(98);} |
8917 | $r6 = self::$FAILED; |
8918 | $this->currPos = $p3; |
8919 | $r1 = self::$FAILED; |
8920 | goto seq_1; |
8921 | } |
8922 | $r7 = $this->discard_($silence); |
8923 | if ($r7===self::$FAILED) { |
8924 | $this->currPos = $p3; |
8925 | $r1 = self::$FAILED; |
8926 | goto seq_1; |
8927 | } |
8928 | $r8 = $this->parseTypeWithExtendedAttributes($silence); |
8929 | // t <- $r8 |
8930 | if ($r8===self::$FAILED) { |
8931 | $this->currPos = $p3; |
8932 | $r1 = self::$FAILED; |
8933 | goto seq_1; |
8934 | } |
8935 | if (($this->input[$this->currPos] ?? null) === ">") { |
8936 | $this->currPos++; |
8937 | $r9 = ">"; |
8938 | } else { |
8939 | if (!$silence) {$this->fail(99);} |
8940 | $r9 = self::$FAILED; |
8941 | $this->currPos = $p3; |
8942 | $r1 = self::$FAILED; |
8943 | goto seq_1; |
8944 | } |
8945 | $r10 = $this->discard_($silence); |
8946 | if ($r10===self::$FAILED) { |
8947 | $this->currPos = $p3; |
8948 | $r1 = self::$FAILED; |
8949 | goto seq_1; |
8950 | } |
8951 | if (($this->input[$this->currPos] ?? null) === ";") { |
8952 | $this->currPos++; |
8953 | $r11 = ";"; |
8954 | } else { |
8955 | if (!$silence) {$this->fail(19);} |
8956 | $r11 = self::$FAILED; |
8957 | $this->currPos = $p3; |
8958 | $r1 = self::$FAILED; |
8959 | goto seq_1; |
8960 | } |
8961 | $r12 = $this->parsec_($silence); |
8962 | // c <- $r12 |
8963 | if ($r12===self::$FAILED) { |
8964 | $this->currPos = $p3; |
8965 | $r1 = self::$FAILED; |
8966 | goto seq_1; |
8967 | } |
8968 | $r1 = true; |
8969 | seq_1: |
8970 | if ($r1!==self::$FAILED) { |
8971 | $this->savedPos = $p2; |
8972 | $r1 = $this->a98($r8, $r12); |
8973 | } |
8974 | // free $p3 |
8975 | return $r1; |
8976 | } |
8977 | private function parseInheritAttribute($silence) { |
8978 | $p2 = $this->currPos; |
8979 | // start seq_1 |
8980 | $p3 = $this->currPos; |
8981 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "inherit", $this->currPos, 7, false) === 0) { |
8982 | $r4 = "inherit"; |
8983 | $this->currPos += 7; |
8984 | } else { |
8985 | if (!$silence) {$this->fail(39);} |
8986 | $r4 = self::$FAILED; |
8987 | $r1 = self::$FAILED; |
8988 | goto seq_1; |
8989 | } |
8990 | $r5 = $this->discardi_($silence); |
8991 | if ($r5===self::$FAILED) { |
8992 | $this->currPos = $p3; |
8993 | $r1 = self::$FAILED; |
8994 | goto seq_1; |
8995 | } |
8996 | $r6 = $this->parseAttributeRest($silence); |
8997 | // a <- $r6 |
8998 | if ($r6===self::$FAILED) { |
8999 | $this->currPos = $p3; |
9000 | $r1 = self::$FAILED; |
9001 | goto seq_1; |
9002 | } |
9003 | $r1 = true; |
9004 | seq_1: |
9005 | if ($r1!==self::$FAILED) { |
9006 | $this->savedPos = $p2; |
9007 | $r1 = $this->a99($r6); |
9008 | } |
9009 | // free $p3 |
9010 | return $r1; |
9011 | } |
9012 | private function parseStringifierRest($silence) { |
9013 | // start choice_1 |
9014 | $p2 = $this->currPos; |
9015 | // start seq_1 |
9016 | $p3 = $this->currPos; |
9017 | $r4 = $this->parseOptionalReadOnly($silence); |
9018 | // ro <- $r4 |
9019 | if ($r4===self::$FAILED) { |
9020 | $r1 = self::$FAILED; |
9021 | goto seq_1; |
9022 | } |
9023 | $r5 = $this->parseAttributeRest($silence); |
9024 | // a <- $r5 |
9025 | if ($r5===self::$FAILED) { |
9026 | $this->currPos = $p3; |
9027 | $r1 = self::$FAILED; |
9028 | goto seq_1; |
9029 | } |
9030 | $r1 = true; |
9031 | seq_1: |
9032 | if ($r1!==self::$FAILED) { |
9033 | $this->savedPos = $p2; |
9034 | $r1 = $this->a100($r4, $r5); |
9035 | goto choice_1; |
9036 | } |
9037 | // free $p3 |
9038 | $r1 = $this->parseRegularOperation($silence); |
9039 | if ($r1!==self::$FAILED) { |
9040 | goto choice_1; |
9041 | } |
9042 | $p3 = $this->currPos; |
9043 | // start seq_2 |
9044 | $p6 = $this->currPos; |
9045 | if (($this->input[$this->currPos] ?? null) === ";") { |
9046 | $this->currPos++; |
9047 | $r7 = ";"; |
9048 | } else { |
9049 | if (!$silence) {$this->fail(19);} |
9050 | $r7 = self::$FAILED; |
9051 | $r1 = self::$FAILED; |
9052 | goto seq_2; |
9053 | } |
9054 | $r8 = $this->parsec_($silence); |
9055 | // c <- $r8 |
9056 | if ($r8===self::$FAILED) { |
9057 | $this->currPos = $p6; |
9058 | $r1 = self::$FAILED; |
9059 | goto seq_2; |
9060 | } |
9061 | $r1 = true; |
9062 | seq_2: |
9063 | if ($r1!==self::$FAILED) { |
9064 | $this->savedPos = $p3; |
9065 | $r1 = $this->a101($r8); |
9066 | } |
9067 | // free $p6 |
9068 | choice_1: |
9069 | return $r1; |
9070 | } |
9071 | private function parseOperationName($silence) { |
9072 | // start choice_1 |
9073 | $r1 = $this->parseOperationNameKeyword($silence); |
9074 | if ($r1!==self::$FAILED) { |
9075 | goto choice_1; |
9076 | } |
9077 | $p2 = $this->currPos; |
9078 | // start seq_1 |
9079 | $p3 = $this->currPos; |
9080 | $r4 = $this->parseidentifier($silence); |
9081 | // name <- $r4 |
9082 | if ($r4===self::$FAILED) { |
9083 | $r1 = self::$FAILED; |
9084 | goto seq_1; |
9085 | } |
9086 | $r5 = $this->discard_($silence); |
9087 | if ($r5===self::$FAILED) { |
9088 | $this->currPos = $p3; |
9089 | $r1 = self::$FAILED; |
9090 | goto seq_1; |
9091 | } |
9092 | $r1 = true; |
9093 | seq_1: |
9094 | if ($r1!==self::$FAILED) { |
9095 | $this->savedPos = $p2; |
9096 | $r1 = $this->a82($r4); |
9097 | } |
9098 | // free $p3 |
9099 | choice_1: |
9100 | return $r1; |
9101 | } |
9102 | private function parseUnsignedIntegerType($silence) { |
9103 | // start choice_1 |
9104 | $p2 = $this->currPos; |
9105 | // start seq_1 |
9106 | $p3 = $this->currPos; |
9107 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "unsigned", $this->currPos, 8, false) === 0) { |
9108 | $r4 = "unsigned"; |
9109 | $this->currPos += 8; |
9110 | } else { |
9111 | if (!$silence) {$this->fail(86);} |
9112 | $r4 = self::$FAILED; |
9113 | $r1 = self::$FAILED; |
9114 | goto seq_1; |
9115 | } |
9116 | $r5 = $this->discardi_($silence); |
9117 | if ($r5===self::$FAILED) { |
9118 | $this->currPos = $p3; |
9119 | $r1 = self::$FAILED; |
9120 | goto seq_1; |
9121 | } |
9122 | $r6 = $this->parseIntegerType($silence); |
9123 | // t <- $r6 |
9124 | if ($r6===self::$FAILED) { |
9125 | $this->currPos = $p3; |
9126 | $r1 = self::$FAILED; |
9127 | goto seq_1; |
9128 | } |
9129 | $r1 = true; |
9130 | seq_1: |
9131 | if ($r1!==self::$FAILED) { |
9132 | $this->savedPos = $p2; |
9133 | $r1 = $this->a102($r6); |
9134 | goto choice_1; |
9135 | } |
9136 | // free $p3 |
9137 | $r1 = $this->parseIntegerType($silence); |
9138 | choice_1: |
9139 | return $r1; |
9140 | } |
9141 | private function parseUnrestrictedFloatType($silence) { |
9142 | // start choice_1 |
9143 | $p2 = $this->currPos; |
9144 | // start seq_1 |
9145 | $p3 = $this->currPos; |
9146 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "unrestricted", $this->currPos, 12, false) === 0) { |
9147 | $r4 = "unrestricted"; |
9148 | $this->currPos += 12; |
9149 | } else { |
9150 | if (!$silence) {$this->fail(48);} |
9151 | $r4 = self::$FAILED; |
9152 | $r1 = self::$FAILED; |
9153 | goto seq_1; |
9154 | } |
9155 | $r5 = $this->discardi_($silence); |
9156 | if ($r5===self::$FAILED) { |
9157 | $this->currPos = $p3; |
9158 | $r1 = self::$FAILED; |
9159 | goto seq_1; |
9160 | } |
9161 | $r6 = $this->parseFloatType($silence); |
9162 | // t <- $r6 |
9163 | if ($r6===self::$FAILED) { |
9164 | $this->currPos = $p3; |
9165 | $r1 = self::$FAILED; |
9166 | goto seq_1; |
9167 | } |
9168 | $r1 = true; |
9169 | seq_1: |
9170 | if ($r1!==self::$FAILED) { |
9171 | $this->savedPos = $p2; |
9172 | $r1 = $this->a103($r6); |
9173 | goto choice_1; |
9174 | } |
9175 | // free $p3 |
9176 | $r1 = $this->parseFloatType($silence); |
9177 | choice_1: |
9178 | return $r1; |
9179 | } |
9180 | private function parseinteger($silence) { |
9181 | $p2 = $this->currPos; |
9182 | // start seq_1 |
9183 | $p3 = $this->currPos; |
9184 | $r4 = $this->parseopt_minus($silence); |
9185 | // m <- $r4 |
9186 | if ($r4===self::$FAILED) { |
9187 | $r1 = self::$FAILED; |
9188 | goto seq_1; |
9189 | } |
9190 | // start choice_1 |
9191 | $r5 = $this->parsedecimal_integer($silence); |
9192 | if ($r5!==self::$FAILED) { |
9193 | goto choice_1; |
9194 | } |
9195 | $r5 = $this->parsehex_integer($silence); |
9196 | if ($r5!==self::$FAILED) { |
9197 | goto choice_1; |
9198 | } |
9199 | $r5 = $this->parseoctal_integer($silence); |
9200 | choice_1: |
9201 | // n <- $r5 |
9202 | if ($r5===self::$FAILED) { |
9203 | $this->currPos = $p3; |
9204 | $r1 = self::$FAILED; |
9205 | goto seq_1; |
9206 | } |
9207 | $r1 = true; |
9208 | seq_1: |
9209 | if ($r1!==self::$FAILED) { |
9210 | $this->savedPos = $p2; |
9211 | $r1 = $this->a48($r4, $r5); |
9212 | } |
9213 | // free $p3 |
9214 | return $r1; |
9215 | } |
9216 | private function parseSpecialOperation($silence) { |
9217 | $p2 = $this->currPos; |
9218 | // start seq_1 |
9219 | $p3 = $this->currPos; |
9220 | $r4 = $this->parseSpecial($silence); |
9221 | // s <- $r4 |
9222 | if ($r4===self::$FAILED) { |
9223 | $r1 = self::$FAILED; |
9224 | goto seq_1; |
9225 | } |
9226 | $r5 = $this->parseRegularOperation($silence); |
9227 | // o <- $r5 |
9228 | if ($r5===self::$FAILED) { |
9229 | $this->currPos = $p3; |
9230 | $r1 = self::$FAILED; |
9231 | goto seq_1; |
9232 | } |
9233 | $r1 = true; |
9234 | seq_1: |
9235 | if ($r1!==self::$FAILED) { |
9236 | $this->savedPos = $p2; |
9237 | $r1 = $this->a104($r4, $r5); |
9238 | } |
9239 | // free $p3 |
9240 | return $r1; |
9241 | } |
9242 | private function parseStaticMemberRest($silence) { |
9243 | // start choice_1 |
9244 | $p2 = $this->currPos; |
9245 | // start seq_1 |
9246 | $p3 = $this->currPos; |
9247 | $r4 = $this->parseOptionalReadOnly($silence); |
9248 | // ro <- $r4 |
9249 | if ($r4===self::$FAILED) { |
9250 | $r1 = self::$FAILED; |
9251 | goto seq_1; |
9252 | } |
9253 | $r5 = $this->parseAttributeRest($silence); |
9254 | // a <- $r5 |
9255 | if ($r5===self::$FAILED) { |
9256 | $this->currPos = $p3; |
9257 | $r1 = self::$FAILED; |
9258 | goto seq_1; |
9259 | } |
9260 | $r1 = true; |
9261 | seq_1: |
9262 | if ($r1!==self::$FAILED) { |
9263 | $this->savedPos = $p2; |
9264 | $r1 = $this->a100($r4, $r5); |
9265 | goto choice_1; |
9266 | } |
9267 | // free $p3 |
9268 | $r1 = $this->parseRegularOperation($silence); |
9269 | choice_1: |
9270 | return $r1; |
9271 | } |
9272 | private function parseOptionalType($silence) { |
9273 | $p2 = $this->currPos; |
9274 | // start seq_1 |
9275 | $p3 = $this->currPos; |
9276 | if (($this->input[$this->currPos] ?? null) === ",") { |
9277 | $this->currPos++; |
9278 | $r4 = ","; |
9279 | } else { |
9280 | if (!$silence) {$this->fail(13);} |
9281 | $r4 = self::$FAILED; |
9282 | $r1 = self::$FAILED; |
9283 | goto seq_1; |
9284 | } |
9285 | $r5 = $this->discard_($silence); |
9286 | if ($r5===self::$FAILED) { |
9287 | $this->currPos = $p3; |
9288 | $r1 = self::$FAILED; |
9289 | goto seq_1; |
9290 | } |
9291 | $r6 = $this->parseTypeWithExtendedAttributes($silence); |
9292 | // t <- $r6 |
9293 | if ($r6===self::$FAILED) { |
9294 | $this->currPos = $p3; |
9295 | $r1 = self::$FAILED; |
9296 | goto seq_1; |
9297 | } |
9298 | $r1 = true; |
9299 | seq_1: |
9300 | if ($r1!==self::$FAILED) { |
9301 | $this->savedPos = $p2; |
9302 | $r1 = $this->a105($r6); |
9303 | } else { |
9304 | $r1 = null; |
9305 | } |
9306 | // free $p3 |
9307 | return $r1; |
9308 | } |
9309 | private function parseOptionalArgumentList($silence) { |
9310 | $p2 = $this->currPos; |
9311 | // start seq_1 |
9312 | $p3 = $this->currPos; |
9313 | if (($this->input[$this->currPos] ?? null) === "(") { |
9314 | $this->currPos++; |
9315 | $r4 = "("; |
9316 | } else { |
9317 | if (!$silence) {$this->fail(25);} |
9318 | $r4 = self::$FAILED; |
9319 | $r1 = self::$FAILED; |
9320 | goto seq_1; |
9321 | } |
9322 | $r5 = $this->discard_($silence); |
9323 | if ($r5===self::$FAILED) { |
9324 | $this->currPos = $p3; |
9325 | $r1 = self::$FAILED; |
9326 | goto seq_1; |
9327 | } |
9328 | $r6 = $this->parseArgumentList($silence); |
9329 | // args <- $r6 |
9330 | if ($r6===self::$FAILED) { |
9331 | $this->currPos = $p3; |
9332 | $r1 = self::$FAILED; |
9333 | goto seq_1; |
9334 | } |
9335 | if (($this->input[$this->currPos] ?? null) === ")") { |
9336 | $this->currPos++; |
9337 | $r7 = ")"; |
9338 | } else { |
9339 | if (!$silence) {$this->fail(26);} |
9340 | $r7 = self::$FAILED; |
9341 | $this->currPos = $p3; |
9342 | $r1 = self::$FAILED; |
9343 | goto seq_1; |
9344 | } |
9345 | $r8 = $this->discard_($silence); |
9346 | if ($r8===self::$FAILED) { |
9347 | $this->currPos = $p3; |
9348 | $r1 = self::$FAILED; |
9349 | goto seq_1; |
9350 | } |
9351 | $r1 = true; |
9352 | seq_1: |
9353 | if ($r1!==self::$FAILED) { |
9354 | $this->savedPos = $p2; |
9355 | $r1 = $this->a106($r6); |
9356 | } else { |
9357 | $r1 = null; |
9358 | } |
9359 | // free $p3 |
9360 | return $r1; |
9361 | } |
9362 | private function parseReadOnlyMemberRest($silence) { |
9363 | // start choice_1 |
9364 | $r1 = $this->parseAttributeRest($silence); |
9365 | if ($r1!==self::$FAILED) { |
9366 | goto choice_1; |
9367 | } |
9368 | $r1 = $this->parseMaplikeRest($silence); |
9369 | if ($r1!==self::$FAILED) { |
9370 | goto choice_1; |
9371 | } |
9372 | $r1 = $this->parseSetlikeRest($silence); |
9373 | choice_1: |
9374 | return $r1; |
9375 | } |
9376 | private function parseOperationNameKeyword($silence) { |
9377 | $p2 = $this->currPos; |
9378 | // start seq_1 |
9379 | $p3 = $this->currPos; |
9380 | // s <- $r4 |
9381 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "includes", $this->currPos, 8, false) === 0) { |
9382 | $r4 = "includes"; |
9383 | $this->currPos += 8; |
9384 | } else { |
9385 | if (!$silence) {$this->fail(24);} |
9386 | $r4 = self::$FAILED; |
9387 | $r1 = self::$FAILED; |
9388 | goto seq_1; |
9389 | } |
9390 | $r5 = $this->discardi_($silence); |
9391 | if ($r5===self::$FAILED) { |
9392 | $this->currPos = $p3; |
9393 | $r1 = self::$FAILED; |
9394 | goto seq_1; |
9395 | } |
9396 | $r1 = true; |
9397 | seq_1: |
9398 | if ($r1!==self::$FAILED) { |
9399 | $this->savedPos = $p2; |
9400 | $r1 = $this->a40($r4); |
9401 | } |
9402 | // free $p3 |
9403 | return $r1; |
9404 | } |
9405 | private function parseIntegerType($silence) { |
9406 | // start choice_1 |
9407 | $p2 = $this->currPos; |
9408 | // start seq_1 |
9409 | $p3 = $this->currPos; |
9410 | $p5 = $this->currPos; |
9411 | // s <- $r4 |
9412 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "short", $this->currPos, 5, false) === 0) { |
9413 | $r4 = "short"; |
9414 | $this->currPos += 5; |
9415 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
9416 | } else { |
9417 | if (!$silence) {$this->fail(83);} |
9418 | $r4 = self::$FAILED; |
9419 | $r4 = self::$FAILED; |
9420 | $r1 = self::$FAILED; |
9421 | goto seq_1; |
9422 | } |
9423 | // free $p5 |
9424 | $r6 = $this->discardi_($silence); |
9425 | if ($r6===self::$FAILED) { |
9426 | $this->currPos = $p3; |
9427 | $r1 = self::$FAILED; |
9428 | goto seq_1; |
9429 | } |
9430 | $r1 = true; |
9431 | seq_1: |
9432 | if ($r1!==self::$FAILED) { |
9433 | $this->savedPos = $p2; |
9434 | $r1 = $this->a40($r4); |
9435 | goto choice_1; |
9436 | } |
9437 | // free $p3 |
9438 | $p3 = $this->currPos; |
9439 | // start seq_2 |
9440 | $p5 = $this->currPos; |
9441 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "long", $this->currPos, 4, false) === 0) { |
9442 | $r7 = "long"; |
9443 | $this->currPos += 4; |
9444 | } else { |
9445 | if (!$silence) {$this->fail(75);} |
9446 | $r7 = self::$FAILED; |
9447 | $r1 = self::$FAILED; |
9448 | goto seq_2; |
9449 | } |
9450 | $r8 = $this->discardi_($silence); |
9451 | if ($r8===self::$FAILED) { |
9452 | $this->currPos = $p5; |
9453 | $r1 = self::$FAILED; |
9454 | goto seq_2; |
9455 | } |
9456 | // start seq_3 |
9457 | $p10 = $this->currPos; |
9458 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "long", $this->currPos, 4, false) === 0) { |
9459 | $r11 = "long"; |
9460 | $this->currPos += 4; |
9461 | } else { |
9462 | if (!$silence) {$this->fail(75);} |
9463 | $r11 = self::$FAILED; |
9464 | $r9 = self::$FAILED; |
9465 | goto seq_3; |
9466 | } |
9467 | $r12 = $this->parsei_($silence); |
9468 | if ($r12===self::$FAILED) { |
9469 | $this->currPos = $p10; |
9470 | $r9 = self::$FAILED; |
9471 | goto seq_3; |
9472 | } |
9473 | $r9 = [$r11,$r12]; |
9474 | seq_3: |
9475 | if ($r9===self::$FAILED) { |
9476 | $r9 = null; |
9477 | } |
9478 | // free $p10 |
9479 | // l <- $r9 |
9480 | $r1 = true; |
9481 | seq_2: |
9482 | if ($r1!==self::$FAILED) { |
9483 | $this->savedPos = $p3; |
9484 | $r1 = $this->a107($r9); |
9485 | } |
9486 | // free $p5 |
9487 | choice_1: |
9488 | return $r1; |
9489 | } |
9490 | private function parseFloatType($silence) { |
9491 | $p2 = $this->currPos; |
9492 | // start seq_1 |
9493 | $p3 = $this->currPos; |
9494 | $p5 = $this->currPos; |
9495 | // start choice_1 |
9496 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "float", $this->currPos, 5, false) === 0) { |
9497 | $r4 = "float"; |
9498 | $this->currPos += 5; |
9499 | goto choice_1; |
9500 | } else { |
9501 | if (!$silence) {$this->fail(74);} |
9502 | $r4 = self::$FAILED; |
9503 | } |
9504 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "double", $this->currPos, 6, false) === 0) { |
9505 | $r4 = "double"; |
9506 | $this->currPos += 6; |
9507 | } else { |
9508 | if (!$silence) {$this->fail(72);} |
9509 | $r4 = self::$FAILED; |
9510 | } |
9511 | choice_1: |
9512 | // v <- $r4 |
9513 | if ($r4!==self::$FAILED) { |
9514 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
9515 | } else { |
9516 | $r4 = self::$FAILED; |
9517 | $r1 = self::$FAILED; |
9518 | goto seq_1; |
9519 | } |
9520 | // free $p5 |
9521 | $r6 = $this->discardi_($silence); |
9522 | if ($r6===self::$FAILED) { |
9523 | $this->currPos = $p3; |
9524 | $r1 = self::$FAILED; |
9525 | goto seq_1; |
9526 | } |
9527 | $r1 = true; |
9528 | seq_1: |
9529 | if ($r1!==self::$FAILED) { |
9530 | $this->savedPos = $p2; |
9531 | $r1 = $this->a86($r4); |
9532 | } |
9533 | // free $p3 |
9534 | return $r1; |
9535 | } |
9536 | private function parseSpecial($silence) { |
9537 | $p2 = $this->currPos; |
9538 | // start seq_1 |
9539 | $p3 = $this->currPos; |
9540 | $p5 = $this->currPos; |
9541 | // start choice_1 |
9542 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "getter", $this->currPos, 6, false) === 0) { |
9543 | $r4 = "getter"; |
9544 | $this->currPos += 6; |
9545 | goto choice_1; |
9546 | } else { |
9547 | if (!$silence) {$this->fail(38);} |
9548 | $r4 = self::$FAILED; |
9549 | } |
9550 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "setter", $this->currPos, 6, false) === 0) { |
9551 | $r4 = "setter"; |
9552 | $this->currPos += 6; |
9553 | goto choice_1; |
9554 | } else { |
9555 | if (!$silence) {$this->fail(45);} |
9556 | $r4 = self::$FAILED; |
9557 | } |
9558 | if ($this->currPos >= $this->inputLength ? false : substr_compare($this->input, "deleter", $this->currPos, 7, false) === 0) { |
9559 | $r4 = "deleter"; |
9560 | $this->currPos += 7; |
9561 | } else { |
9562 | if (!$silence) {$this->fail(37);} |
9563 | $r4 = self::$FAILED; |
9564 | } |
9565 | choice_1: |
9566 | // s <- $r4 |
9567 | if ($r4!==self::$FAILED) { |
9568 | $r4 = substr($this->input, $p5, $this->currPos - $p5); |
9569 | } else { |
9570 | $r4 = self::$FAILED; |
9571 | $r1 = self::$FAILED; |
9572 | goto seq_1; |
9573 | } |
9574 | // free $p5 |
9575 | $r6 = $this->discardi_($silence); |
9576 | if ($r6===self::$FAILED) { |
9577 | $this->currPos = $p3; |
9578 | $r1 = self::$FAILED; |
9579 | goto seq_1; |
9580 | } |
9581 | $r1 = true; |
9582 | seq_1: |
9583 | if ($r1!==self::$FAILED) { |
9584 | $this->savedPos = $p2; |
9585 | $r1 = $this->a40($r4); |
9586 | } |
9587 | // free $p3 |
9588 | return $r1; |
9589 | } |
9590 | private function parsei_($silence) { |
9591 | $p2 = $this->currPos; |
9592 | // start seq_1 |
9593 | $p3 = $this->currPos; |
9594 | $p4 = $this->currPos; |
9595 | $r5 = $this->input[$this->currPos] ?? ''; |
9596 | if (preg_match("/^[\\-_0-9A-Za-z]/", $r5)) { |
9597 | $this->currPos++; |
9598 | } else { |
9599 | $r5 = self::$FAILED; |
9600 | } |
9601 | if ($r5 === self::$FAILED) { |
9602 | $r5 = false; |
9603 | } else { |
9604 | $r5 = self::$FAILED; |
9605 | $this->currPos = $p4; |
9606 | $r1 = self::$FAILED; |
9607 | goto seq_1; |
9608 | } |
9609 | // free $p4 |
9610 | $r6 = $this->parse_($silence); |
9611 | // c <- $r6 |
9612 | if ($r6===self::$FAILED) { |
9613 | $this->currPos = $p3; |
9614 | $r1 = self::$FAILED; |
9615 | goto seq_1; |
9616 | } |
9617 | $r1 = true; |
9618 | seq_1: |
9619 | if ($r1!==self::$FAILED) { |
9620 | $this->savedPos = $p2; |
9621 | $r1 = $this->a7($r6); |
9622 | } |
9623 | // free $p3 |
9624 | return $r1; |
9625 | } |
9626 | |
9627 | public function parse( $input, $options = [] ) { |
9628 | $this->initInternal( $input, $options ); |
9629 | $startRule = $options['startRule'] ?? '(DEFAULT)'; |
9630 | $result = null; |
9631 | |
9632 | if ( !empty( $options['stream'] ) ) { |
9633 | switch ( $startRule ) { |
9634 | |
9635 | default: |
9636 | throw new \Wikimedia\WikiPEG\InternalError( "Can't stream rule $startRule." ); |
9637 | } |
9638 | } else { |
9639 | switch ( $startRule ) { |
9640 | case '(DEFAULT)': |
9641 | case "start": |
9642 | $result = $this->parsestart(false); |
9643 | break; |
9644 | default: |
9645 | throw new \Wikimedia\WikiPEG\InternalError( "Can't start parsing from rule $startRule." ); |
9646 | } |
9647 | } |
9648 | |
9649 | if ( $result !== self::$FAILED && $this->currPos === $this->inputLength ) { |
9650 | return $result; |
9651 | } else { |
9652 | if ( $result !== self::$FAILED && $this->currPos < $this->inputLength ) { |
9653 | $this->fail( 0 ); |
9654 | } |
9655 | throw $this->buildParseException(); |
9656 | } |
9657 | } |
9658 | } |
9659 |