Php8
extends ParserAbstract
in package
Table of Contents
Constants
- T_ABSTRACT = 354
- T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG = 287
- T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG = 286
- T_AND_EQUAL = 276
- T_ARRAY = 377
- T_ARRAY_CAST = 303
- T_AS = 334
- T_ATTRIBUTE = 399
- T_BOOL_CAST = 305
- T_BOOLEAN_AND = 285
- T_BOOLEAN_OR = 284
- T_BREAK = 340
- T_CALLABLE = 378
- T_CASE = 338
- T_CATCH = 348
- T_CLASS = 368
- T_CLASS_C = 379
- T_CLONE = 309
- T_COALESCE = 283
- T_COALESCE_EQUAL = 282
- T_CONCAT_EQUAL = 274
- T_CONST = 345
- T_CONSTANT_ENCAPSED_STRING = 323
- T_CONTINUE = 341
- T_CURLY_OPEN = 389
- T_DEC = 299
- T_DECLARE = 332
- T_DEFAULT = 339
- T_DIR = 393
- T_DIV_EQUAL = 273
- T_DNUMBER = 316
- T_DO = 325
- T_DOLLAR_OPEN_CURLY_BRACES = 388
- T_DOUBLE_ARROW = 268
- T_DOUBLE_CAST = 301
- T_ECHO = 324
- T_ELLIPSIS = 395
- T_ELSE = 313
- T_ELSEIF = 312
- T_EMPTY = 366
- T_ENCAPSED_AND_WHITESPACE = 322
- T_END_HEREDOC = 387
- T_ENDDECLARE = 333
- T_ENDFOR = 329
- T_ENDFOREACH = 331
- T_ENDIF = 314
- T_ENDSWITCH = 337
- T_ENDWHILE = 327
- T_ENUM = 371
- T_EVAL = 260
- T_EXIT = 310
- T_EXTENDS = 372
- T_FILE = 385
- T_FINAL = 355
- T_FINALLY = 349
- T_FN = 344
- T_FOR = 328
- T_FOREACH = 330
- T_FUNC_C = 382
- T_FUNCTION = 343
- T_GLOBAL = 352
- T_GOTO = 342
- T_HALT_COMPILER = 367
- T_IF = 311
- T_IMPLEMENTS = 373
- T_INC = 298
- T_INCLUDE = 258
- T_INCLUDE_ONCE = 259
- T_INLINE_HTML = 321
- T_INSTANCEOF = 297
- T_INSTEADOF = 351
- T_INT_CAST = 300
- T_INTERFACE = 370
- T_IS_EQUAL = 288
- T_IS_GREATER_OR_EQUAL = 294
- T_IS_IDENTICAL = 290
- T_IS_NOT_EQUAL = 289
- T_IS_NOT_IDENTICAL = 291
- T_IS_SMALLER_OR_EQUAL = 293
- T_ISSET = 365
- T_LINE = 384
- T_LIST = 376
- T_LNUMBER = 315
- T_LOGICAL_AND = 265
- T_LOGICAL_OR = 263
- T_LOGICAL_XOR = 264
- T_MATCH = 336
- T_METHOD_C = 381
- T_MINUS_EQUAL = 271
- T_MOD_EQUAL = 275
- T_MUL_EQUAL = 272
- T_NAME_FULLY_QUALIFIED = 396
- T_NAME_QUALIFIED = 397
- T_NAME_RELATIVE = 398
- T_NAMESPACE = 391
- T_NEW = 308
- T_NS_C = 392
- T_NS_SEPARATOR = 394
- T_NULLSAFE_OBJECT_OPERATOR = 375
- T_NUM_STRING = 320
- T_OBJECT_CAST = 304
- T_OBJECT_OPERATOR = 374
- T_OR_EQUAL = 277
- T_PAAMAYIM_NEKUDOTAYIM = 390
- T_PLUS_EQUAL = 270
- T_POW = 307
- T_POW_EQUAL = 281
- T_PRINT = 266
- T_PRIVATE = 356
- T_PRIVATE_SET = 362
- T_PROPERTY_C = 383
- T_PROTECTED = 357
- T_PROTECTED_SET = 361
- T_PUBLIC = 358
- T_PUBLIC_SET = 360
- T_READONLY = 359
- T_REQUIRE = 261
- T_REQUIRE_ONCE = 262
- T_RETURN = 346
- T_SL = 295
- T_SL_EQUAL = 279
- T_SPACESHIP = 292
- T_SR = 296
- T_SR_EQUAL = 280
- T_START_HEREDOC = 386
- T_STATIC = 353
- T_STRING = 317
- T_STRING_CAST = 302
- T_STRING_VARNAME = 318
- T_SWITCH = 335
- T_THROW = 257
- T_TRAIT = 369
- T_TRAIT_C = 380
- T_TRY = 347
- T_UNSET = 364
- T_UNSET_CAST = 306
- T_USE = 350
- T_VAR = 363
- T_VARIABLE = 319
- T_WHILE = 326
- T_XOR_EQUAL = 278
- T_YIELD = 267
- T_YIELD_FROM = 269
- YYERRTOK = 256
- SYMBOL_NONE = -1
Properties
- $action : array<string|int, mixed>
- $actionBase : array<string|int, mixed>
- $actionCheck : array<string|int, mixed>
- $actionDefault : array<string|int, mixed>
- $actionTableSize : int
- $createdArrays : SplObjectStorage<Array_, null>|null
- $defaultAction : int
- $dropTokens : array<int, bool>
- $errorHandler : ErrorHandler
- $errorState : int
- $errorSymbol : int
- $goto : array<string|int, mixed>
- $gotoBase : array<string|int, mixed>
- $gotoCheck : array<string|int, mixed>
- $gotoDefault : array<string|int, mixed>
- $gotoTableSize : int
- $invalidSymbol : int
- $lexer : Lexer
- $numNonLeafStates : int
- $phpTokenToSymbol : array<string|int, int>
- $phpVersion : PhpVersion
- $productions : array<int, string>
- $reduceCallbacks : array<string|int, callable>
- $ruleToLength : array<string|int, mixed>
- $ruleToNonTerminal : array<string|int, mixed>
- $semStack : array<string|int, mixed>
- $semValue : mixed
- $symbolToName : array<string|int, mixed>
- $tokenEndStack : array<string|int, int>
- $tokenPos : int
- $tokens : array<string|int, Token>
- $tokenStartStack : array<string|int, int>
- $tokenToSymbol : array<string|int, mixed>
- $tokenToSymbolMapSize : int
- $unexpectedTokenRule : int
- $YY2TBLSTATE : int
Methods
- __construct() : mixed
- Creates a parser instance.
- getTokens() : array<string|int, Token>
- Return tokens for the last parse.
- parse() : array<string|int, Stmt>|null
- Parses PHP code into a node tree.
- checkClass() : void
- checkClassConst() : void
- checkClassMethod() : void
- checkClassModifier() : void
- checkEnum() : void
- checkInterface() : void
- checkModifier() : void
- checkNamespace() : void
- checkParam() : void
- checkPropertyHook() : void
- checkPropertyHookList() : void
- checkPropertyHookModifiers() : void
- checkTryCatch() : void
- checkUseUse() : void
- createCommentFromToken() : Comment
- createEmptyElemAttributes() : array<string, mixed>
- createExitExpr() : Expr
- createTokenMap() : array<int, int>
- Creates the token map.
- doParse() : array<string|int, Stmt>|null
- emitError() : void
- fixupAlternativeElse() : void
- fixupArrayDestructuring() : List_
- getAttributes() : array<string, mixed>
- Get attributes for a node with the given start and end token positions.
- getAttributesAt() : array<string, mixed>
- Get combined start and end attributes at a stack location
- getAttributesForToken() : array<string, mixed>
- Get attributes for a single token at the given token position.
- getCommentBeforeToken() : Comment|null
- Get last comment before the given token position, if any
- getErrorMessage() : string
- Format error message including expected tokens.
- getExpectedTokens() : array<string|int, string>
- Get limited number of expected tokens in given state.
- getFloatCastKind() : int
- handleBuiltinTypes() : Name|Identifier
- handleHaltCompiler() : string
- handleNamespaces() : array<string|int, Stmt>
- Moves statements of semicolon-style namespaces into $ns->stmts and checks various error conditions.
- initReduceCallbacks() : void
- Initialize $reduceCallbacks map.
- inlineHtmlHasLeadingNewline() : bool
- maybeCreateNop() : Nop|null
- maybeCreateZeroLengthNop() : Nop|null
- Create a zero-length nop to capture preceding comments, if any.
- parseDocString() : Expr
- parseLNumber() : Int_
- parseNumString() : Int_|String_
- Parse a T_NUM_STRING token into either an integer or string node.
- postprocessList() : void
- stripIndentation() : string
- checkClassName() : void
- checkImplementedInterfaces() : void
- fixupNamespaceAttributes() : void
- getNamespaceErrorAttributes() : array<string, mixed>
- getNamespacingStyle() : null|string
- Determine namespacing style (semicolon or brace)
- isSimpleExit() : bool
Constants
T_ABSTRACT
public
mixed
T_ABSTRACT
= 354
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG
public
mixed
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG
= 287
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG
public
mixed
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG
= 286
T_AND_EQUAL
public
mixed
T_AND_EQUAL
= 276
T_ARRAY
public
mixed
T_ARRAY
= 377
T_ARRAY_CAST
public
mixed
T_ARRAY_CAST
= 303
T_AS
public
mixed
T_AS
= 334
T_ATTRIBUTE
public
mixed
T_ATTRIBUTE
= 399
T_BOOL_CAST
public
mixed
T_BOOL_CAST
= 305
T_BOOLEAN_AND
public
mixed
T_BOOLEAN_AND
= 285
T_BOOLEAN_OR
public
mixed
T_BOOLEAN_OR
= 284
T_BREAK
public
mixed
T_BREAK
= 340
T_CALLABLE
public
mixed
T_CALLABLE
= 378
T_CASE
public
mixed
T_CASE
= 338
T_CATCH
public
mixed
T_CATCH
= 348
T_CLASS
public
mixed
T_CLASS
= 368
T_CLASS_C
public
mixed
T_CLASS_C
= 379
T_CLONE
public
mixed
T_CLONE
= 309
T_COALESCE
public
mixed
T_COALESCE
= 283
T_COALESCE_EQUAL
public
mixed
T_COALESCE_EQUAL
= 282
T_CONCAT_EQUAL
public
mixed
T_CONCAT_EQUAL
= 274
T_CONST
public
mixed
T_CONST
= 345
T_CONSTANT_ENCAPSED_STRING
public
mixed
T_CONSTANT_ENCAPSED_STRING
= 323
T_CONTINUE
public
mixed
T_CONTINUE
= 341
T_CURLY_OPEN
public
mixed
T_CURLY_OPEN
= 389
T_DEC
public
mixed
T_DEC
= 299
T_DECLARE
public
mixed
T_DECLARE
= 332
T_DEFAULT
public
mixed
T_DEFAULT
= 339
T_DIR
public
mixed
T_DIR
= 393
T_DIV_EQUAL
public
mixed
T_DIV_EQUAL
= 273
T_DNUMBER
public
mixed
T_DNUMBER
= 316
T_DO
public
mixed
T_DO
= 325
T_DOLLAR_OPEN_CURLY_BRACES
public
mixed
T_DOLLAR_OPEN_CURLY_BRACES
= 388
T_DOUBLE_ARROW
public
mixed
T_DOUBLE_ARROW
= 268
T_DOUBLE_CAST
public
mixed
T_DOUBLE_CAST
= 301
T_ECHO
public
mixed
T_ECHO
= 324
T_ELLIPSIS
public
mixed
T_ELLIPSIS
= 395
T_ELSE
public
mixed
T_ELSE
= 313
T_ELSEIF
public
mixed
T_ELSEIF
= 312
T_EMPTY
public
mixed
T_EMPTY
= 366
T_ENCAPSED_AND_WHITESPACE
public
mixed
T_ENCAPSED_AND_WHITESPACE
= 322
T_END_HEREDOC
public
mixed
T_END_HEREDOC
= 387
T_ENDDECLARE
public
mixed
T_ENDDECLARE
= 333
T_ENDFOR
public
mixed
T_ENDFOR
= 329
T_ENDFOREACH
public
mixed
T_ENDFOREACH
= 331
T_ENDIF
public
mixed
T_ENDIF
= 314
T_ENDSWITCH
public
mixed
T_ENDSWITCH
= 337
T_ENDWHILE
public
mixed
T_ENDWHILE
= 327
T_ENUM
public
mixed
T_ENUM
= 371
T_EVAL
public
mixed
T_EVAL
= 260
T_EXIT
public
mixed
T_EXIT
= 310
T_EXTENDS
public
mixed
T_EXTENDS
= 372
T_FILE
public
mixed
T_FILE
= 385
T_FINAL
public
mixed
T_FINAL
= 355
T_FINALLY
public
mixed
T_FINALLY
= 349
T_FN
public
mixed
T_FN
= 344
T_FOR
public
mixed
T_FOR
= 328
T_FOREACH
public
mixed
T_FOREACH
= 330
T_FUNC_C
public
mixed
T_FUNC_C
= 382
T_FUNCTION
public
mixed
T_FUNCTION
= 343
T_GLOBAL
public
mixed
T_GLOBAL
= 352
T_GOTO
public
mixed
T_GOTO
= 342
T_HALT_COMPILER
public
mixed
T_HALT_COMPILER
= 367
T_IF
public
mixed
T_IF
= 311
T_IMPLEMENTS
public
mixed
T_IMPLEMENTS
= 373
T_INC
public
mixed
T_INC
= 298
T_INCLUDE
public
mixed
T_INCLUDE
= 258
T_INCLUDE_ONCE
public
mixed
T_INCLUDE_ONCE
= 259
T_INLINE_HTML
public
mixed
T_INLINE_HTML
= 321
T_INSTANCEOF
public
mixed
T_INSTANCEOF
= 297
T_INSTEADOF
public
mixed
T_INSTEADOF
= 351
T_INT_CAST
public
mixed
T_INT_CAST
= 300
T_INTERFACE
public
mixed
T_INTERFACE
= 370
T_IS_EQUAL
public
mixed
T_IS_EQUAL
= 288
T_IS_GREATER_OR_EQUAL
public
mixed
T_IS_GREATER_OR_EQUAL
= 294
T_IS_IDENTICAL
public
mixed
T_IS_IDENTICAL
= 290
T_IS_NOT_EQUAL
public
mixed
T_IS_NOT_EQUAL
= 289
T_IS_NOT_IDENTICAL
public
mixed
T_IS_NOT_IDENTICAL
= 291
T_IS_SMALLER_OR_EQUAL
public
mixed
T_IS_SMALLER_OR_EQUAL
= 293
T_ISSET
public
mixed
T_ISSET
= 365
T_LINE
public
mixed
T_LINE
= 384
T_LIST
public
mixed
T_LIST
= 376
T_LNUMBER
public
mixed
T_LNUMBER
= 315
T_LOGICAL_AND
public
mixed
T_LOGICAL_AND
= 265
T_LOGICAL_OR
public
mixed
T_LOGICAL_OR
= 263
T_LOGICAL_XOR
public
mixed
T_LOGICAL_XOR
= 264
T_MATCH
public
mixed
T_MATCH
= 336
T_METHOD_C
public
mixed
T_METHOD_C
= 381
T_MINUS_EQUAL
public
mixed
T_MINUS_EQUAL
= 271
T_MOD_EQUAL
public
mixed
T_MOD_EQUAL
= 275
T_MUL_EQUAL
public
mixed
T_MUL_EQUAL
= 272
T_NAME_FULLY_QUALIFIED
public
mixed
T_NAME_FULLY_QUALIFIED
= 396
T_NAME_QUALIFIED
public
mixed
T_NAME_QUALIFIED
= 397
T_NAME_RELATIVE
public
mixed
T_NAME_RELATIVE
= 398
T_NAMESPACE
public
mixed
T_NAMESPACE
= 391
T_NEW
public
mixed
T_NEW
= 308
T_NS_C
public
mixed
T_NS_C
= 392
T_NS_SEPARATOR
public
mixed
T_NS_SEPARATOR
= 394
T_NULLSAFE_OBJECT_OPERATOR
public
mixed
T_NULLSAFE_OBJECT_OPERATOR
= 375
T_NUM_STRING
public
mixed
T_NUM_STRING
= 320
T_OBJECT_CAST
public
mixed
T_OBJECT_CAST
= 304
T_OBJECT_OPERATOR
public
mixed
T_OBJECT_OPERATOR
= 374
T_OR_EQUAL
public
mixed
T_OR_EQUAL
= 277
T_PAAMAYIM_NEKUDOTAYIM
public
mixed
T_PAAMAYIM_NEKUDOTAYIM
= 390
T_PLUS_EQUAL
public
mixed
T_PLUS_EQUAL
= 270
T_POW
public
mixed
T_POW
= 307
T_POW_EQUAL
public
mixed
T_POW_EQUAL
= 281
T_PRINT
public
mixed
T_PRINT
= 266
T_PRIVATE
public
mixed
T_PRIVATE
= 356
T_PRIVATE_SET
public
mixed
T_PRIVATE_SET
= 362
T_PROPERTY_C
public
mixed
T_PROPERTY_C
= 383
T_PROTECTED
public
mixed
T_PROTECTED
= 357
T_PROTECTED_SET
public
mixed
T_PROTECTED_SET
= 361
T_PUBLIC
public
mixed
T_PUBLIC
= 358
T_PUBLIC_SET
public
mixed
T_PUBLIC_SET
= 360
T_READONLY
public
mixed
T_READONLY
= 359
T_REQUIRE
public
mixed
T_REQUIRE
= 261
T_REQUIRE_ONCE
public
mixed
T_REQUIRE_ONCE
= 262
T_RETURN
public
mixed
T_RETURN
= 346
T_SL
public
mixed
T_SL
= 295
T_SL_EQUAL
public
mixed
T_SL_EQUAL
= 279
T_SPACESHIP
public
mixed
T_SPACESHIP
= 292
T_SR
public
mixed
T_SR
= 296
T_SR_EQUAL
public
mixed
T_SR_EQUAL
= 280
T_START_HEREDOC
public
mixed
T_START_HEREDOC
= 386
T_STATIC
public
mixed
T_STATIC
= 353
T_STRING
public
mixed
T_STRING
= 317
T_STRING_CAST
public
mixed
T_STRING_CAST
= 302
T_STRING_VARNAME
public
mixed
T_STRING_VARNAME
= 318
T_SWITCH
public
mixed
T_SWITCH
= 335
T_THROW
public
mixed
T_THROW
= 257
T_TRAIT
public
mixed
T_TRAIT
= 369
T_TRAIT_C
public
mixed
T_TRAIT_C
= 380
T_TRY
public
mixed
T_TRY
= 347
T_UNSET
public
mixed
T_UNSET
= 364
T_UNSET_CAST
public
mixed
T_UNSET_CAST
= 306
T_USE
public
mixed
T_USE
= 350
T_VAR
public
mixed
T_VAR
= 363
T_VARIABLE
public
mixed
T_VARIABLE
= 319
T_WHILE
public
mixed
T_WHILE
= 326
T_XOR_EQUAL
public
mixed
T_XOR_EQUAL
= 278
T_YIELD
public
mixed
T_YIELD
= 267
T_YIELD_FROM
public
mixed
T_YIELD_FROM
= 269
YYERRTOK
public
mixed
YYERRTOK
= 256
SYMBOL_NONE
private
mixed
SYMBOL_NONE
= -1
Properties
$action
protected
array<string|int, mixed>
$action
= array(126, 127, 128, 570, 129, 130, 955, 765, 766, 767, 131, 38, 849, -85, -32766, 1375, -32766, -32766, -32766, 0, 840, 1133, 1134, 1135, 1129, 1128, 1127, 1136, 1130, 1131, 1132, -32766, -32766, -32766, 851, 759, 758, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, 1004, -32766, 1044, -569, 768, 1133, 1134, 1135, 1129, 1128, 1127, 1136, 1130, 1131, 1132, 388, 387, 842, 263, 132, 389, 772, 773, 774, 775, 430, -32766, 431, -85, 957, 36, 246, 47, 291, 829, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 805, 571, 806, 807, 808, 809, 797, 798, 343, 344, 800, 801, 786, 787, 788, 790, 791, 792, 359, 832, 833, 834, 835, 836, 572, -569, -569, 360, 793, 794, 573, 574, -331, 817, 815, 816, 828, 812, 813, 2, -194, 575, 576, 811, 577, 578, 579, 580, 322, 581, 582, 876, 844, 877, 297, 298, 814, 583, 584, 722, 133, 236, 126, 127, 128, 570, 129, 130, 1077, 765, 766, 767, 131, 38, -32766, 26, 735, 1037, 1036, 1035, 1041, 1038, 1039, 1040, -32766, -32766, -32766, 1005, 104, 105, 106, 107, 108, 35, 275, 957, -32766, 759, 758, 1053, 850, -32766, -32766, -32766, 848, -32766, 109, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 148, 476, 477, 768, -32766, -32766, -32766, 1053, -32766, 290, -32766, -32766, -32766, -32766, -32766, 616, 134, 263, 132, 389, 772, 773, 774, 775, 365, -32766, 431, -32766, -32766, -32766, -32766, 290, 143, 829, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 805, 571, 806, 807, 808, 809, 797, 798, 343, 344, 800, 801, 786, 787, 788, 790, 791, 792, 359, 832, 833, 834, 835, 836, 572, -32766, -32766, -32766, 793, 794, 573, 574, -331, 817, 815, 816, 828, 812, 813, 1300, -194, 575, 576, 811, 577, 578, 579, 580, 845, 581, 582, 149, 82, 83, 84, -272, 814, 583, 584, 249, 146, 789, 760, 761, 762, 763, 764, 235, 765, 766, 767, 802, 803, 37, 307, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 157, 275, -32766, -32766, -32766, -32767, -32767, -32767, -32767, 101, 102, 103, 1107, 109, 309, 622, 748, 768, -32766, -32766, -32766, 849, 318, -32766, 1106, -32766, -32766, -32766, 338, 846, 1356, 769, 770, 771, 772, 773, 774, 775, 339, -32766, 838, -32766, -32766, 1385, 374, 1280, 1386, 829, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 805, 827, 806, 807, 808, 809, 797, 798, 799, 826, 800, 801, 786, 787, 788, 790, 791, 792, 831, 832, 833, 834, 835, 836, 837, 1076, 431, -566, 793, 794, 795, 796, 1360, 817, 815, 816, 828, 812, 813, 1359, -193, 804, 810, 811, 818, 819, 821, 820, 138, 822, 823, 840, 321, 380, 285, 24, 814, 825, 824, 49, 50, 51, 522, 52, 53, -371, -110, -371, 849, 54, 55, -110, 56, -110, -32766, -32766, -32766, 1341, 303, 125, 1122, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, -110, 161, 750, -566, -566, 291, 973, 974, 466, 467, 468, 975, 396, 285, 1275, 1274, 1276, 57, 58, -566, 566, 448, 59, 1108, 60, 243, 244, 61, 62, 63, 64, 65, 66, 67, 68, -32766, 28, 265, 69, 446, 523, 490, -345, 449, 1306, 1307, 524, 139, 849, 1050, 450, 321, 1304, 42, 20, 525, 934, 526, 934, 527, 74, 528, -567, 698, 529, 530, 321, 386, 387, 44, 45, 452, 383, 382, 1053, 46, 531, 430, 973, 974, 451, 372, 337, 975, 1280, 1312, 725, 934, 1266, -32766, -32766, -32766, 969, 533, 534, 535, 855, 934, 281, 699, -78, -565, 1273, 759, 758, 537, 538, -193, 1292, 1293, 1294, 1295, 1297, 1289, 1290, 295, 1053, 726, 398, 151, 7, 1296, 1291, 700, 701, 1275, 1274, 1276, 296, -567, -567, 70, -153, -153, -153, 316, 317, 321, 1271, 924, 290, 924, 1275, 1274, 1276, -567, 1050, -153, 281, -153, 1149, -153, 81, -153, 740, 152, 321, -573, 153, 759, 758, -32766, 1052, 381, 876, 849, 877, 155, -565, -565, 924, 1053, 1050, 33, 973, 974, -58, 491, -57, 532, 924, 1275, 1274, 1276, -565, 123, 1053, 910, 969, -110, -110, -110, 28, 266, 124, 281, -572, 1053, 102, 103, -110, -110, -32766, -32766, 849, -110, 135, -563, 1304, 136, -605, 142, -605, 156, -110, 665, 21, 158, 936, 159, 936, 160, 720, -32766, 720, -153, -305, 48, 32, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 684, 685, 1266, 296, 759, 758, 74, 936, -87, 934, -84, 720, 321, -4, 934, -78, 934, 936, -73, 537, 538, 720, 1292, 1293, 1294, 1295, 1297, 1289, 1290, 1182, 1184, 934, -563, -563, -564, 1296, 1291, 759, 758, 727, -563, -32766, 147, 413, -301, 72, 730, 1273, -563, -72, 317, 321, 299, 300, -32766, -32766, -32766, -71, -32766, -70, -32766, 737, -32766, 384, 385, -32766, 390, 391, 379, -69, -32766, -32766, -32766, -68, -32766, -67, -32766, -32766, -66, -65, 1273, -46, -32766, 427, 28, 265, -18, -32766, -32766, -32766, 140, -32766, 924, -32766, -32766, -32766, 849, 924, -32766, 924, 1304, -564, -564, -32766, -32766, -32766, 274, -563, -563, -32766, -32766, 282, 656, 657, 924, -32766, 427, -564, 736, 381, 739, 443, 933, -563, 145, 73, 294, -32766, 951, -571, 973, 974, 279, 280, 283, 532, 1266, 28, 266, 284, 327, 275, 109, 536, 969, -110, -110, -110, 286, 849, 287, 292, 293, 1304, 538, 144, 1292, 1293, 1294, 1295, 1297, 1289, 1290, 694, 849, 1140, -32766, 11, 840, 1296, 1291, 990, 709, 687, 671, 720, 936, 1387, 936, 72, 720, -4, 720, 654, 317, 321, -50, 711, 304, 1266, 587, 969, 666, 936, 970, 1311, 672, 720, 302, 301, 10, 308, 1313, 473, 501, -32766, -529, 538, 688, 1292, 1293, 1294, 1295, 1297, 1289, 1290, 953, 40, 593, 137, 41, -519, 1296, 1291, 8, 27, 620, 321, 0, -32766, 378, 0, 72, 0, 0, 1273, 0, 317, 321, 745, 0, 0, -32766, -32766, -32766, 0, -32766, 0, -32766, 0, -32766, 0, 0, -32766, 0, 0, 0, 0, -32766, -32766, -32766, 934, -32766, 746, -32766, -32766, 0, 0, 1273, 848, -32766, 427, 868, 0, 296, -32766, -32766, -32766, 0, -32766, 915, -32766, -32766, -32766, 934, 1014, -32766, 991, 998, 988, 999, -32766, -32766, -32766, 913, -32766, 986, -32766, -32766, 1111, 1114, 1273, 1115, -32766, 427, 1112, 1151, 1113, -32766, -32766, -32766, 1119, -32766, 1301, -32766, -32766, -32766, 860, 1328, -32766, 1345, 1378, 659, 496, -32766, -32766, -32766, -599, -32766, -598, -32766, -32766, -597, -573, 1273, 600, -32766, 427, -572, -571, -570, -32766, -32766, -32766, 924, -32766, -513, -32766, -32766, -32766, 1, 29, -32766, -275, 30, 39, 43, -32766, -32766, -32766, -250, -250, -250, -32766, -32766, 71, 381, 924, 75, -32766, 427, 76, 77, 78, 1280, 79, 80, 973, 974, 141, 150, -32766, 532, -249, -249, -249, -273, 154, 241, 381, 910, 969, -110, -110, -110, 323, 360, 361, 362, 363, 973, 974, 364, 365, -16, 532, 366, 367, 368, 369, 370, 373, 444, 910, 969, -110, -110, -110, -32766, -272, 565, 371, 1305, 936, 1273, 13, 412, 720, -250, 14, 15, -32766, -32766, -32766, 16, -32766, 18, -32766, 354, -32766, 411, 492, -32766, 493, 500, 503, 936, -32766, -32766, -32766, 720, -249, 504, -32766, -32766, 849, 505, 506, 510, -32766, 427, 511, 512, 519, 598, 704, 1079, 1222, 1302, 1078, 1059, -32766, 1261, 1055, -277, -102, 12, 17, 22, 312, 410, 612, 617, 645, 710, 1226, 1279, 1223, 1357, 0, -110, -110, 34, 315, 375, -110, 721, 724, 728, 729, 731, 732, 733, 734, -110, 738, 750, 723, 751, 0, 416, 742, 0, -32766, 911, 1382, 1384, 871, 870, 963, 1006, 1383, 962, 960, 961, 964, 1254, 944, 954, 942, 1150, 1146, 1100, 996, 997, 296, 643, 1381, 74, 1339, 1354, 0, 0, 1239, 321)
Table of actions. Indexed according to $actionBase comment.
$actionBase
protected
array<string|int, mixed>
$actionBase
= array(0, -2, 156, 559, 757, 1004, 1027, 485, 292, 357, -60, -12, 588, 759, 759, 774, 759, 557, 752, 888, 598, 598, 598, 836, 313, 313, 836, 313, 711, 711, 711, 711, 744, 744, 965, 965, 998, 932, 899, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 33, 20, 224, 1083, 661, 1057, 1063, 1059, 1064, 1055, 1054, 1058, 1060, 1065, 1113, 1115, 837, 1112, 1116, 1061, 902, 1056, 1062, 887, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 68, 476, 582, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 624, 624, 22, 22, 22, 362, 811, 758, 811, 811, 811, 811, 811, 811, 811, 811, 346, 205, 188, 714, 171, 171, 7, 7, 7, 7, 7, 376, 1117, 54, 585, 585, 314, 314, 314, 314, 365, 568, 370, 435, 397, 651, 477, 463, 532, 532, 558, 558, 76, 76, 558, 558, 558, 133, 133, 547, 547, 547, 547, 41, 437, 809, 382, 382, 382, 382, 809, 809, 809, 809, 796, 996, 809, 809, 809, 494, 533, 708, 653, 653, 560, -70, -70, 560, 804, -70, 487, 316, -102, 807, -40, 548, -102, 1000, 368, 639, 639, 659, 639, 639, 639, 854, 701, 854, 1053, -42, 825, 825, 794, 731, 69, 892, 1084, 1066, 840, 1109, 852, 1110, 1085, 489, 378, -16, 13, 74, 728, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 800, 568, 1053, 222, 1107, 1108, 800, 800, 800, 568, 568, 568, 568, 568, 568, 568, 568, 799, 568, 568, 745, 222, 642, 669, 222, 849, 568, 812, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 512, 33, 33, 20, 5, 5, 33, 202, 52, 5, 5, 5, 337, 5, 33, 33, 33, 701, 828, 805, 704, -18, 813, 443, 828, 828, 828, 120, 143, 128, 693, 753, 514, 832, 832, 827, 929, 929, 832, 826, 832, 827, 832, 832, 929, 929, 856, 929, 218, 515, 373, 456, 537, 929, 320, 832, 832, 832, 832, 810, 929, 127, 544, 832, 305, 234, 832, 832, 810, 808, 824, 806, 929, 929, 929, 810, 389, 806, 806, 806, 820, 844, 814, 819, 367, 359, 590, 181, 834, 819, 819, 832, 506, 814, 819, 814, 819, 802, 819, 819, 819, 814, 819, 826, 383, 819, 699, 574, 163, 819, 832, 19, 944, 947, 721, 950, 934, 951, 991, 952, 954, 1073, 925, 967, 935, 955, 999, 933, 930, 835, 671, 680, 815, 797, 919, 817, 817, 817, 912, 917, 817, 817, 817, 817, 817, 817, 817, 817, 671, 893, 821, 845, 976, 692, 695, 1042, 789, 1090, 1118, 975, 944, 954, 723, 935, 955, 933, 930, 792, 791, 786, 788, 782, 772, 762, 770, 803, 1044, 958, 798, 697, 1014, 977, 1087, 1070, 978, 981, 1018, 1045, 853, 1046, 1091, 829, 1092, 1093, 897, 985, 1074, 817, 911, 906, 898, 982, 918, 671, 900, 1047, 1003, 1069, 1019, 1021, 1071, 850, 838, 901, 1094, 986, 987, 988, 1075, 1076, 801, 1007, 931, 1022, 851, 1002, 1023, 1030, 1034, 1035, 1077, 1095, 1078, 908, 1079, 861, 846, 964, 822, 1096, 196, 843, 848, 859, 990, 291, 974, 1080, 1086, 1097, 1036, 1039, 1040, 1098, 1099, 959, 866, 1008, 823, 1012, 997, 868, 869, 607, 858, 1048, 841, 842, 857, 643, 646, 1100, 1101, 1102, 966, 831, 830, 870, 871, 1050, 855, 1051, 1103, 655, 875, 1104, 1043, 703, 705, 586, 664, 662, 707, 839, 1082, 816, 818, 847, 989, 705, 833, 877, 1105, 880, 881, 883, 1041, 886, 1016, 1106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 468, 468, 468, 468, 468, 313, 313, 313, 313, 313, 468, 468, 468, 468, 468, 468, 468, 313, 468, 468, 468, 313, 0, 0, 313, 0, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 524, 524, 297, 297, 297, 297, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 297, 297, 297, 0, 297, 297, 297, 297, 297, 297, 297, 856, 524, 524, 524, 524, 133, 133, 133, 133, -95, -95, -95, 524, 524, 133, 524, 856, 524, 524, 524, 524, 524, 524, 524, 524, 524, 0, 0, 524, 524, 524, 524, 222, -70, 524, 826, 826, 826, 826, 524, 524, 524, 524, -70, -70, 524, 524, 524, 0, 0, 0, 133, 133, 222, 0, 0, 222, 391, 0, 826, 826, 524, 391, 856, 442, 524, 489, 0, 0, 0, 0, 0, 0, 0, 222, 826, 222, 568, 832, -70, -70, 568, 568, 832, 5, 33, 442, 685, 685, 685, 685, 33, 0, 0, 0, 0, 0, 701, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 826, 0, 856, 0, 856, 856, 826, 826, 826, 0, 0, 0, 0, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 826, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 817, 850, 0, 0, 850, 0, 817, 817, 817, 0, 0, 0, 858, 855)
Map of states to a displacement into the $action table. The corresponding action for this state/symbol pair is $action[$actionBase[$state] + $symbol]. If $actionBase[$state] is 0, the action is defaulted, i.e. $actionDefault[$state] should be used instead.
$actionCheck
protected
array<string|int, mixed>
$actionCheck
= array(2, 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, 13, 82, 31, 116, 85, 9, 10, 11, 0, 80, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 9, 10, 11, 1, 37, 38, 30, 140, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 31, 30, 1, 70, 57, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 106, 107, 80, 71, 72, 73, 74, 75, 76, 77, 116, 9, 80, 97, 122, 151, 152, 70, 30, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 137, 138, 165, 126, 127, 128, 129, 8, 131, 132, 133, 134, 135, 136, 8, 8, 139, 140, 141, 142, 143, 144, 145, 70, 147, 148, 106, 160, 108, 137, 138, 154, 155, 156, 167, 158, 14, 2, 3, 4, 5, 6, 7, 166, 9, 10, 11, 12, 13, 116, 8, 167, 119, 120, 121, 122, 123, 124, 125, 9, 10, 11, 163, 51, 52, 53, 54, 55, 8, 57, 122, 116, 37, 38, 141, 163, 9, 10, 11, 159, 30, 69, 32, 33, 34, 35, 36, 37, 38, 14, 137, 138, 57, 9, 10, 11, 141, 30, 165, 32, 33, 34, 35, 36, 1, 8, 71, 72, 73, 74, 75, 76, 77, 165, 30, 80, 32, 33, 34, 35, 165, 8, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 9, 10, 11, 126, 127, 128, 129, 166, 131, 132, 133, 134, 135, 136, 1, 166, 139, 140, 141, 142, 143, 144, 145, 80, 147, 148, 14, 9, 10, 11, 166, 154, 155, 156, 8, 158, 2, 3, 4, 5, 6, 7, 97, 9, 10, 11, 12, 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 16, 57, 9, 10, 11, 44, 45, 46, 47, 48, 49, 50, 163, 69, 8, 52, 167, 57, 9, 10, 11, 82, 8, 30, 1, 32, 33, 34, 8, 160, 1, 71, 72, 73, 74, 75, 76, 77, 8, 30, 80, 32, 33, 80, 8, 1, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 80, 70, 126, 127, 128, 129, 1, 131, 132, 133, 134, 135, 136, 8, 8, 139, 140, 141, 142, 143, 144, 145, 167, 147, 148, 80, 171, 8, 30, 101, 154, 155, 156, 2, 3, 4, 5, 6, 7, 106, 101, 108, 82, 12, 13, 106, 15, 108, 9, 10, 11, 1, 113, 14, 126, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 14, 167, 137, 138, 30, 117, 118, 132, 133, 134, 122, 8, 30, 159, 160, 161, 51, 52, 153, 85, 8, 56, 168, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 140, 70, 71, 72, 73, 74, 31, 168, 8, 78, 79, 80, 167, 82, 116, 8, 171, 86, 87, 88, 89, 1, 91, 1, 93, 165, 95, 70, 80, 98, 99, 171, 106, 107, 103, 104, 105, 106, 107, 141, 109, 110, 116, 117, 118, 8, 115, 116, 122, 1, 150, 31, 1, 122, 9, 10, 116, 131, 127, 128, 129, 8, 1, 165, 116, 16, 70, 80, 37, 38, 139, 140, 166, 142, 143, 144, 145, 146, 147, 148, 149, 141, 31, 106, 14, 108, 155, 156, 140, 141, 159, 160, 161, 162, 137, 138, 165, 75, 76, 77, 169, 170, 171, 116, 84, 165, 84, 159, 160, 161, 153, 116, 90, 165, 92, 163, 94, 167, 96, 167, 14, 171, 165, 14, 37, 38, 116, 140, 106, 106, 82, 108, 14, 137, 138, 84, 141, 116, 14, 117, 118, 16, 167, 16, 122, 84, 159, 160, 161, 153, 16, 141, 130, 131, 132, 133, 134, 70, 71, 16, 165, 165, 141, 49, 50, 117, 118, 51, 52, 82, 122, 16, 70, 86, 16, 164, 16, 166, 16, 131, 75, 76, 16, 163, 16, 163, 16, 167, 140, 167, 168, 35, 70, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 75, 76, 122, 162, 37, 38, 165, 163, 31, 1, 31, 167, 171, 0, 1, 31, 1, 163, 31, 139, 140, 167, 142, 143, 144, 145, 146, 147, 148, 59, 60, 1, 137, 138, 70, 155, 156, 37, 38, 31, 70, 74, 101, 102, 35, 165, 31, 80, 153, 31, 170, 171, 137, 138, 87, 88, 89, 31, 91, 31, 93, 31, 95, 106, 107, 98, 106, 107, 153, 31, 103, 104, 105, 31, 74, 31, 109, 110, 31, 31, 80, 31, 115, 116, 70, 71, 31, 87, 88, 89, 31, 91, 84, 93, 127, 95, 82, 84, 98, 84, 86, 137, 138, 103, 104, 105, 31, 137, 138, 109, 110, 31, 111, 112, 84, 115, 116, 153, 31, 106, 31, 108, 31, 153, 31, 158, 113, 127, 38, 165, 117, 118, 35, 35, 35, 122, 122, 70, 71, 35, 35, 57, 69, 130, 131, 132, 133, 134, 37, 82, 37, 37, 37, 86, 140, 70, 142, 143, 144, 145, 146, 147, 148, 77, 82, 82, 85, 154, 80, 155, 156, 163, 80, 94, 96, 167, 163, 83, 163, 165, 167, 168, 167, 113, 170, 171, 31, 92, 114, 122, 89, 131, 90, 163, 131, 150, 100, 167, 136, 135, 97, 135, 150, 97, 97, 140, 153, 140, 100, 142, 143, 144, 145, 146, 147, 148, 158, 163, 157, 31, 163, 153, 155, 156, 153, 153, 157, 171, -1, 74, 153, -1, 165, -1, -1, 80, -1, 170, 171, 163, -1, -1, 87, 88, 89, -1, 91, -1, 93, -1, 95, -1, -1, 98, -1, -1, -1, -1, 103, 104, 105, 1, 74, 163, 109, 110, -1, -1, 80, 159, 115, 116, 163, -1, 162, 87, 88, 89, -1, 91, 163, 93, 127, 95, 1, 163, 98, 163, 163, 163, 163, 103, 104, 105, 163, 74, 163, 109, 110, 163, 163, 80, 163, 115, 116, 163, 163, 163, 87, 88, 89, 163, 91, 164, 93, 127, 95, 164, 164, 98, 164, 164, 164, 102, 103, 104, 105, 165, 74, 165, 109, 110, 165, 165, 80, 81, 115, 116, 165, 165, 165, 87, 88, 89, 84, 91, 165, 93, 127, 95, 165, 165, 98, 166, 165, 165, 165, 103, 104, 105, 100, 101, 102, 109, 110, 165, 106, 84, 165, 115, 116, 165, 165, 165, 1, 165, 165, 117, 118, 165, 165, 127, 122, 100, 101, 102, 166, 165, 165, 106, 130, 131, 132, 133, 134, 165, 165, 165, 165, 165, 117, 118, 165, 165, 31, 122, 165, 165, 165, 165, 165, 165, 165, 130, 131, 132, 133, 134, 74, 166, 165, 165, 170, 163, 80, 166, 168, 167, 168, 166, 166, 87, 88, 89, 166, 91, 166, 93, 166, 95, 166, 166, 98, 166, 166, 166, 163, 103, 104, 105, 167, 168, 166, 109, 110, 82, 166, 166, 166, 115, 116, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 127, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, -1, 117, 118, 167, 167, 167, 122, 167, 167, 167, 167, 167, 167, 167, 167, 131, 167, 167, 167, 167, -1, 168, 168, -1, 140, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 162, 168, 168, 165, 168, 168, -1, -1, 169, 171)
Table indexed analogously to $action. If $actionCheck[$actionBase[$state] + $symbol] != $symbol then the action is defaulted, i.e. $actionDefault[$state] should be used instead.
$actionDefault
protected
array<string|int, mixed>
$actionDefault
= array(3, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 100, 32767, 617, 617, 617, 617, 32767, 32767, 254, 102, 32767, 32767, 488, 405, 405, 405, 32767, 32767, 561, 561, 561, 561, 561, 32767, 32767, 32767, 32767, 32767, 32767, 488, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 17, 327, 100, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 392, 610, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 492, 471, 472, 474, 475, 404, 562, 616, 330, 613, 332, 403, 145, 342, 333, 242, 258, 493, 259, 494, 497, 498, 215, 389, 149, 150, 435, 489, 437, 487, 491, 436, 410, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 408, 409, 490, 32767, 32767, 468, 467, 466, 433, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 434, 438, 441, 407, 439, 440, 457, 458, 455, 456, 459, 32767, 32767, 319, 32767, 32767, 460, 461, 462, 463, 370, 195, 368, 32767, 32767, 442, 319, 111, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 448, 449, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 100, 505, 555, 465, 443, 444, 32767, 530, 32767, 102, 32767, 532, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 557, 430, 432, 525, 611, 411, 614, 32767, 518, 100, 195, 32767, 32767, 531, 195, 195, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 556, 32767, 624, 518, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 195, 110, 32767, 110, 110, 32767, 32767, 100, 195, 195, 195, 195, 195, 195, 195, 195, 533, 195, 195, 190, 32767, 268, 270, 102, 579, 195, 535, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 392, 32767, 32767, 32767, 32767, 518, 453, 138, 32767, 520, 138, 563, 445, 446, 447, 563, 563, 563, 315, 292, 32767, 32767, 32767, 32767, 533, 533, 100, 100, 100, 100, 32767, 32767, 32767, 32767, 111, 504, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 223, 32767, 101, 99, 32767, 101, 101, 32767, 32767, 223, 225, 212, 227, 32767, 583, 584, 223, 101, 227, 227, 227, 247, 247, 507, 321, 101, 99, 101, 101, 197, 321, 321, 32767, 101, 507, 321, 507, 321, 199, 321, 321, 321, 507, 321, 32767, 101, 321, 214, 99, 99, 321, 32767, 32767, 32767, 32767, 520, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 222, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 550, 32767, 568, 581, 451, 452, 454, 567, 565, 476, 477, 478, 479, 480, 481, 482, 484, 612, 32767, 524, 32767, 32767, 32767, 341, 32767, 622, 32767, 32767, 32767, 9, 74, 513, 42, 43, 51, 57, 539, 540, 541, 542, 536, 537, 543, 538, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 623, 32767, 563, 32767, 32767, 32767, 32767, 450, 545, 589, 32767, 32767, 564, 615, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 138, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 550, 32767, 136, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 546, 32767, 32767, 32767, 563, 32767, 32767, 32767, 32767, 317, 314, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 563, 32767, 32767, 32767, 32767, 32767, 294, 32767, 311, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 388, 520, 297, 299, 300, 32767, 32767, 32767, 32767, 364, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 152, 152, 3, 3, 344, 152, 152, 152, 344, 344, 152, 344, 344, 344, 152, 152, 152, 152, 152, 152, 152, 280, 185, 262, 265, 247, 247, 152, 356, 152, 390, 390, 399)
Map of states to their default action
$actionTableSize
protected
int
$actionTableSize
= 1289
Size of $action table
$createdArrays
protected
SplObjectStorage<Array_, null>|null
$createdArrays
Array nodes created during parsing, for postprocessing of empty elements.
$defaultAction
protected
int
$defaultAction
= -32766
Action number signifying default action
$dropTokens
protected
array<int, bool>
$dropTokens
Map of PHP token IDs to drop
$errorHandler
protected
ErrorHandler
$errorHandler
Error handler
$errorState
protected
int
$errorState
Error state, used to avoid error floods
$errorSymbol
protected
int
$errorSymbol
= 1
Symbol number of error recovery token
$goto
protected
array<string|int, mixed>
$goto
= array(194, 194, 1051, 487, 705, 278, 278, 278, 278, 1082, 489, 548, 548, 907, 865, 907, 907, 548, 714, 548, 548, 548, 548, 548, 548, 548, 548, 166, 166, 166, 166, 218, 195, 191, 191, 176, 178, 213, 191, 191, 191, 191, 191, 192, 192, 192, 192, 192, 186, 187, 188, 189, 190, 215, 213, 216, 545, 546, 428, 547, 550, 551, 552, 553, 554, 555, 556, 557, 1168, 167, 168, 169, 193, 170, 171, 172, 164, 173, 174, 175, 177, 212, 214, 217, 237, 240, 251, 252, 253, 255, 256, 257, 258, 259, 260, 261, 267, 268, 269, 270, 276, 288, 289, 313, 314, 434, 435, 436, 607, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 186, 187, 188, 189, 190, 215, 1168, 196, 197, 198, 199, 238, 179, 180, 200, 181, 201, 197, 182, 239, 196, 163, 202, 203, 183, 204, 205, 206, 184, 207, 208, 165, 209, 210, 211, 185, 869, 560, 841, 560, 560, 592, 1099, 866, 847, 744, 646, 648, 609, 560, 668, 1125, 1153, 1126, 692, 695, 1024, 703, 712, 1020, 719, 355, 355, 355, 355, 1054, 1054, 690, 966, 867, 463, 1046, 1062, 1063, 989, 983, 983, 983, 983, 247, 247, 463, 977, 984, 1371, 1371, 847, 426, 847, 923, 918, 919, 932, 875, 920, 872, 921, 922, 873, 1371, 926, 879, 900, 475, 475, 878, 245, 245, 245, 245, 242, 248, 475, 1105, 1101, 1102, 438, 670, 1057, 1056, 1374, 1374, 433, 334, 330, 331, 333, 602, 437, 335, 439, 647, 470, 1272, 1051, 1272, 1272, 341, 599, 456, 456, 1217, 456, 456, 1051, 1272, 350, 1051, 520, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 342, 341, 1051, 1051, 1051, 1051, 663, 664, 1272, 681, 682, 683, 465, 1272, 1272, 1272, 1272, 862, 440, 1272, 1272, 1272, 1353, 1353, 1353, 1353, 348, 1248, 958, 1361, 358, 440, 1249, 1252, 959, 940, 1253, 1058, 1058, 941, 358, 358, 882, 400, 674, 1069, 1065, 1066, 630, 667, 702, 358, 358, 447, 843, 358, 927, 1388, 928, 1010, 894, 569, 562, 881, 862, 956, 702, 1060, 1061, 702, 956, 597, 564, 981, 417, 713, 358, 358, 669, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 1165, 432, 456, 621, 456, 456, 320, 306, 340, 562, 569, 594, 595, 345, 605, 611, 1075, 626, 627, 675, 632, 632, 484, 1346, 1347, 25, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1322, 1322, 640, 642, 644, 1333, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 445, 5, 1344, 6, 1344, 1344, 558, 558, 558, 558, 422, 613, 250, 250, 1344, 895, 883, 1087, 1091, 271, 319, 691, 319, 319, 336, 563, 589, 859, 992, 887, 563, 972, 589, 409, 403, 469, 1355, 1355, 1355, 1355, 884, 564, 402, 405, 610, 614, 625, 478, 606, 479, 480, 982, 862, 1348, 1349, 892, 1319, 1319, 1379, 1380, 1340, 1263, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1013, 1137, 899, 985, 1148, 743, 549, 549, 561, 1022, 1017, 890, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 1267, 1032, 608, 1118, 1088, 351, 352, 508, 328, 509, 747, 1265, 1042, 717, 485, 515, 896, 1090, 516, 708, 1092, 1116, 994, 1342, 1342, 1090, 619, 633, 636, 637, 638, 639, 660, 661, 662, 716, 718, 414, 415, 752, 752, 377, 679, 0, 680, 0, 419, 420, 421, 1139, 693, 603, 624, 423, 0, 1268, 1269, 346, 1255, 0, 0, 0, 0, 615, 857, 0, 945, 1155, 0, 0, 0, 1255, 0, 0, 0, 0, 0, 0, 1029, 0, 0, 0, 0, 1270, 1330, 1331, 886, 0, 673, 1008, 0, 0, 0, 0, 880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, 1027)
Table of states to goto after reduction. Indexed according to $gotoBase comment.
$gotoBase
protected
array<string|int, mixed>
$gotoBase
= array(0, 0, -151, 0, 0, 203, 153, 326, 514, 8, 0, 0, -125, 39, 18, -186, -18, 112, 146, -101, 121, 0, 22, 2, 183, 10, 164, 190, 123, 156, 0, 0, 0, 0, 0, -50, 0, 128, 0, 137, 0, 88, -1, 189, 0, 201, -320, 0, -555, 181, 486, 0, 0, 0, 0, 0, 291, 0, 0, 423, 0, 0, 284, 0, 125, 325, 6, 0, 0, 0, 0, 0, 0, -5, 0, 0, 1, 0, 0, -104, 127, 185, 58, 17, -475, -75, -439, 0, 0, -89, 0, 0, 133, 54, 0, 0, 92, -220, 0, 117, 0, 0, 0, 307, 311, 0, 0, 404, 159, 0, 147, 0, 0, 149, 110, 116, 0, 166, 37, -36, 67, 103, 0, 0, 0, 0, 0, 0, 7, 0, 144, 165, 0, 91, 0, 0, 0, 0, -190, 0, 0, 0, 0, 0, 0, 0, -95, 0, 0, 118, 0, 0, 0, 148, 194, 132, -9, 87, 0, 0, 24, 0, -224, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, -33, 64, 175, 247, 234, 269, 0, 0, 98, 0, 101, 279, 0, 281, -96, 0, 0)
Map of non-terminals to a displacement into the $goto table. The corresponding goto state for this non-terminal/state pair is $goto[$gotoBase[$nonTerminal] + $state] (unless defaulted)
$gotoCheck
protected
array<string|int, mixed>
$gotoCheck
= array(42, 42, 73, 84, 73, 23, 23, 23, 23, 128, 84, 162, 162, 25, 25, 25, 25, 162, 9, 162, 162, 162, 162, 162, 162, 162, 162, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 15, 19, 6, 19, 19, 48, 15, 26, 12, 48, 48, 48, 131, 19, 48, 146, 146, 146, 48, 48, 48, 48, 48, 48, 48, 24, 24, 24, 24, 89, 89, 89, 89, 27, 19, 89, 89, 89, 49, 19, 19, 19, 19, 5, 5, 19, 19, 19, 188, 188, 12, 43, 12, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 188, 15, 15, 45, 154, 154, 15, 5, 5, 5, 5, 5, 5, 154, 15, 15, 15, 66, 66, 119, 119, 188, 188, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 156, 73, 73, 73, 73, 174, 178, 23, 23, 156, 23, 23, 73, 73, 97, 73, 76, 73, 73, 73, 73, 73, 73, 73, 73, 73, 174, 174, 73, 73, 73, 73, 86, 86, 73, 86, 86, 86, 83, 73, 73, 73, 73, 22, 118, 73, 73, 73, 9, 9, 9, 9, 185, 79, 79, 187, 14, 118, 79, 79, 79, 73, 79, 118, 118, 73, 14, 14, 35, 62, 118, 118, 118, 118, 56, 56, 7, 14, 14, 83, 7, 14, 65, 14, 65, 103, 35, 76, 76, 35, 22, 9, 7, 120, 120, 7, 9, 104, 14, 93, 93, 93, 14, 14, 64, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 155, 13, 23, 13, 23, 23, 175, 175, 76, 76, 76, 76, 76, 76, 76, 76, 115, 76, 76, 121, 108, 108, 182, 182, 182, 76, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 176, 176, 85, 85, 85, 14, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 113, 46, 131, 46, 131, 131, 107, 107, 107, 107, 14, 107, 5, 5, 131, 16, 16, 16, 16, 24, 24, 117, 24, 24, 29, 9, 9, 18, 16, 39, 9, 92, 9, 28, 9, 9, 131, 131, 131, 131, 37, 14, 59, 59, 59, 59, 80, 9, 9, 9, 9, 16, 22, 184, 184, 9, 177, 177, 9, 9, 131, 166, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 50, 16, 16, 50, 153, 50, 179, 179, 50, 50, 50, 9, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 20, 110, 8, 8, 130, 97, 97, 160, 9, 160, 99, 14, 114, 8, 157, 160, 41, 131, 8, 8, 133, 8, 96, 131, 131, 131, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 24, 24, 138, 82, -1, 82, -1, 82, 82, 82, 149, 82, 2, 2, 82, -1, 20, 20, 82, 20, -1, -1, -1, -1, 17, 20, -1, 17, 17, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, 20, 20, 20, 17, -1, 17, 17, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, 107)
Table indexed analogously to $goto. If $gotoCheck[$gotoBase[$nonTerminal] + $state] != $nonTerminal then the goto state is defaulted, i.e. $gotoDefault[$nonTerminal] should be used.
$gotoDefault
protected
array<string|int, mixed>
$gotoDefault
= array(-32768, 521, 754, 4, 755, 949, 830, 839, 585, 539, 715, 347, 634, 429, 1338, 925, 1154, 604, 858, 1281, 1287, 464, 861, 325, 741, 937, 908, 909, 406, 393, 874, 404, 658, 635, 502, 893, 460, 885, 494, 888, 459, 897, 162, 425, 518, 901, 3, 904, 567, 935, 987, 394, 912, 395, 686, 914, 588, 916, 917, 401, 407, 408, 1159, 596, 631, 929, 254, 590, 930, 392, 931, 939, 397, 399, 696, 474, 513, 507, 418, 1120, 591, 618, 655, 453, 481, 629, 641, 628, 488, 441, 424, 324, 971, 979, 495, 472, 993, 349, 1001, 749, 1167, 649, 497, 1009, 650, 1016, 1019, 540, 541, 486, 1031, 264, 1034, 498, 1043, 23, 676, 1048, 1049, 677, 651, 1071, 652, 678, 653, 1073, 471, 586, 1081, 461, 1089, 1327, 462, 1093, 262, 1096, 277, 353, 376, 442, 1103, 1104, 9, 1110, 706, 707, 19, 273, 517, 1138, 697, 1144, 272, 1147, 458, 1166, 457, 1236, 1238, 568, 499, 1256, 310, 1259, 689, 514, 1264, 454, 1329, 455, 542, 482, 332, 543, 1372, 305, 356, 329, 559, 311, 357, 544, 483, 1335, 1343, 326, 31, 1362, 1373, 601, 623)
Map of non-terminals to the default state to goto after their reduction
$gotoTableSize
protected
int
$gotoTableSize
= 641
Size of $goto table
$invalidSymbol
protected
int
$invalidSymbol
= 172
Symbol number signifying an invalid token
$lexer
protected
Lexer
$lexer
Lexer that is used when parsing
$numNonLeafStates
protected
int
$numNonLeafStates
= 753
Number of non-leaf states
$phpTokenToSymbol
protected
array<string|int, int>
$phpTokenToSymbol
Map of PHP token IDs to internal symbols
$phpVersion
protected
PhpVersion
$phpVersion
PHP version to target on a best-effort basis
$productions
protected
array<int, string>
$productions
Names of the production rules (only necessary for debugging)
$reduceCallbacks
protected
array<string|int, callable>
$reduceCallbacks
Semantic action callbacks
$ruleToLength
protected
array<string|int, mixed>
$ruleToLength
= array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 1, 3, 1, 1, 8, 7, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 1, 1, 1, 7, 9, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 7, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 0, 2, 0, 3, 5, 8, 1, 3, 3, 0, 2, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 2, 1, 1, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1)
Map of rules to the length of their right-hand side, which is the number of elements that have to be popped from the stack(s) on reduction.
$ruleToNonTerminal
protected
array<string|int, mixed>
$ruleToNonTerminal
= array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 50, 69, 69, 72, 72, 71, 70, 70, 63, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 26, 26, 27, 27, 27, 27, 27, 88, 88, 90, 90, 83, 83, 91, 91, 92, 92, 92, 84, 84, 87, 87, 85, 85, 93, 94, 94, 57, 57, 65, 65, 68, 68, 68, 67, 95, 95, 96, 58, 58, 58, 58, 97, 97, 98, 98, 99, 99, 100, 101, 101, 102, 102, 103, 103, 55, 55, 51, 51, 105, 53, 53, 106, 52, 52, 54, 54, 64, 64, 64, 64, 81, 81, 109, 109, 111, 111, 112, 112, 112, 112, 112, 112, 112, 110, 110, 110, 115, 115, 115, 115, 89, 89, 118, 118, 118, 119, 119, 116, 116, 120, 120, 122, 122, 123, 123, 117, 124, 124, 121, 125, 125, 125, 125, 113, 113, 82, 82, 82, 20, 20, 20, 127, 126, 126, 128, 128, 128, 128, 60, 129, 129, 130, 61, 132, 132, 133, 133, 134, 134, 86, 135, 135, 135, 135, 135, 135, 135, 135, 141, 141, 142, 142, 143, 143, 143, 143, 143, 144, 145, 145, 140, 140, 136, 136, 139, 139, 147, 147, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 137, 148, 148, 150, 149, 149, 138, 138, 114, 114, 151, 151, 153, 153, 153, 152, 152, 62, 104, 154, 154, 56, 56, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 161, 162, 162, 163, 155, 155, 160, 160, 164, 165, 165, 166, 167, 168, 168, 168, 168, 19, 19, 73, 73, 73, 73, 156, 156, 156, 156, 170, 170, 159, 159, 159, 157, 157, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, 177, 177, 108, 179, 179, 179, 179, 158, 158, 158, 158, 158, 158, 158, 158, 59, 59, 173, 173, 173, 173, 173, 180, 180, 169, 169, 169, 169, 181, 181, 181, 181, 181, 74, 74, 66, 66, 66, 66, 131, 131, 131, 131, 184, 183, 172, 172, 172, 172, 172, 172, 171, 171, 171, 182, 182, 182, 182, 107, 178, 186, 186, 185, 185, 187, 187, 187, 187, 187, 187, 187, 187, 175, 175, 175, 175, 174, 189, 188, 188, 188, 188, 188, 188, 188, 188, 190, 190, 190, 190)
Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for determining the state to goto after reduction.
$semStack
protected
array<string|int, mixed>
$semStack
Semantic value stack (contains values of tokens and semantic action results)
$semValue
protected
mixed
$semValue
Temporary value containing the result of last semantic action (reduction)
$symbolToName
protected
array<string|int, mixed>
$symbolToName
= array("EOF", "error", "T_THROW", "T_INCLUDE", "T_INCLUDE_ONCE", "T_EVAL", "T_REQUIRE", "T_REQUIRE_ONCE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR", "T_LOGICAL_AND", "T_PRINT", "T_YIELD", "T_DOUBLE_ARROW", "T_YIELD_FROM", "'='", "T_PLUS_EQUAL", "T_MINUS_EQUAL", "T_MUL_EQUAL", "T_DIV_EQUAL", "T_CONCAT_EQUAL", "T_MOD_EQUAL", "T_AND_EQUAL", "T_OR_EQUAL", "T_XOR_EQUAL", "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "'|'", "'^'", "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", "T_IS_NOT_IDENTICAL", "T_SPACESHIP", "'<'", "T_IS_SMALLER_OR_EQUAL", "'>'", "T_IS_GREATER_OR_EQUAL", "'.'", "T_SL", "T_SR", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "T_INSTANCEOF", "'~'", "T_INC", "T_DEC", "T_INT_CAST", "T_DOUBLE_CAST", "T_STRING_CAST", "T_ARRAY_CAST", "T_OBJECT_CAST", "T_BOOL_CAST", "T_UNSET_CAST", "'@'", "T_POW", "'['", "T_NEW", "T_CLONE", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER", "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE", "T_NUM_STRING", "T_INLINE_HTML", "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING", "T_ECHO", "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR", "T_ENDFOR", "T_FOREACH", "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE", "T_AS", "T_SWITCH", "T_MATCH", "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK", "T_CONTINUE", "T_GOTO", "T_FUNCTION", "T_FN", "T_CONST", "T_RETURN", "T_TRY", "T_CATCH", "T_FINALLY", "T_USE", "T_INSTEADOF", "T_GLOBAL", "T_STATIC", "T_ABSTRACT", "T_FINAL", "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", "T_READONLY", "T_PUBLIC_SET", "T_PROTECTED_SET", "T_PRIVATE_SET", "T_VAR", "T_UNSET", "T_ISSET", "T_EMPTY", "T_HALT_COMPILER", "T_CLASS", "T_TRAIT", "T_INTERFACE", "T_ENUM", "T_EXTENDS", "T_IMPLEMENTS", "T_OBJECT_OPERATOR", "T_NULLSAFE_OBJECT_OPERATOR", "T_LIST", "T_ARRAY", "T_CALLABLE", "T_CLASS_C", "T_TRAIT_C", "T_METHOD_C", "T_FUNC_C", "T_PROPERTY_C", "T_LINE", "T_FILE", "T_START_HEREDOC", "T_END_HEREDOC", "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM", "T_NAMESPACE", "T_NS_C", "T_DIR", "T_NS_SEPARATOR", "T_ELLIPSIS", "T_NAME_FULLY_QUALIFIED", "T_NAME_QUALIFIED", "T_NAME_RELATIVE", "T_ATTRIBUTE", "';'", "']'", "'('", "')'", "'{'", "'}'", "'`'", "'\"'", "'\$'")
Map of symbols to their names
$tokenEndStack
protected
array<string|int, int>
$tokenEndStack
Token end position stack
$tokenPos
protected
int
$tokenPos
Current position in token array
$tokens
protected
array<string|int, Token>
$tokens
Tokens for the current parse
$tokenStartStack
protected
array<string|int, int>
$tokenStartStack
Token start position stack
$tokenToSymbol
protected
array<string|int, mixed>
$tokenToSymbol
= array(0, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 56, 170, 172, 171, 55, 172, 172, 165, 166, 53, 51, 8, 52, 48, 54, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 31, 163, 44, 16, 46, 30, 68, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 70, 172, 164, 36, 172, 169, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 167, 35, 168, 58, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 45, 47, 49, 50, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162)
Map of external symbols (static::T_*) to internal symbols
$tokenToSymbolMapSize
protected
int
$tokenToSymbolMapSize
= 400
Size of $tokenToSymbol map
$unexpectedTokenRule
protected
int
$unexpectedTokenRule
= 32767
Rule number signifying that an unexpected token was encountered
$YY2TBLSTATE
protected
int
$YY2TBLSTATE
= 442
Methods
__construct()
Creates a parser instance.
public
__construct(Lexer $lexer[, PhpVersion $phpVersion = null ]) : mixed
Options:
- phpVersion: ?PhpVersion,
Parameters
- $lexer : Lexer
-
A lexer
- $phpVersion : PhpVersion = null
-
PHP version to target, defaults to latest supported. This option is best-effort: Even if specified, parsing will generally assume the latest supported version and only adjust behavior in minor ways, for example by omitting errors in older versions and interpreting type hints as a name or identifier depending on version.
getTokens()
Return tokens for the last parse.
public
getTokens() : array<string|int, Token>
Return values
array<string|int, Token>parse()
Parses PHP code into a node tree.
public
parse(string $code[, ErrorHandler|null $errorHandler = null ]) : array<string|int, Stmt>|null
If a non-throwing error handler is used, the parser will continue parsing after an error occurred and attempt to build a partial AST.
Parameters
- $code : string
-
The source code to parse
- $errorHandler : ErrorHandler|null = null
-
Error handler to use for lexer/parser errors, defaults to ErrorHandler\Throwing.
Return values
array<string|int, Stmt>|null —Array of statements (or null non-throwing error handler is used and the parser was unable to recover from an error).
checkClass()
protected
checkClass(Class_ $node, int $namePos) : void
Parameters
- $node : Class_
- $namePos : int
checkClassConst()
protected
checkClassConst(ClassConst $node, int $modifierPos) : void
Parameters
- $node : ClassConst
- $modifierPos : int
checkClassMethod()
protected
checkClassMethod(ClassMethod $node, int $modifierPos) : void
Parameters
- $node : ClassMethod
- $modifierPos : int
checkClassModifier()
protected
checkClassModifier(int $a, int $b, int $modifierPos) : void
Parameters
- $a : int
- $b : int
- $modifierPos : int
checkEnum()
protected
checkEnum(Enum_ $node, int $namePos) : void
Parameters
- $node : Enum_
- $namePos : int
checkInterface()
protected
checkInterface(Interface_ $node, int $namePos) : void
Parameters
- $node : Interface_
- $namePos : int
checkModifier()
protected
checkModifier(int $a, int $b, int $modifierPos) : void
Parameters
- $a : int
- $b : int
- $modifierPos : int
checkNamespace()
protected
checkNamespace(Namespace_ $node) : void
Parameters
- $node : Namespace_
checkParam()
protected
checkParam(Param $node) : void
Parameters
- $node : Param
checkPropertyHook()
protected
checkPropertyHook(PropertyHook $hook, int|null $paramListPos) : void
Parameters
- $hook : PropertyHook
- $paramListPos : int|null
checkPropertyHookList()
protected
checkPropertyHookList(array<string|int, PropertyHook> $hooks, int $hookPos) : void
Parameters
- $hooks : array<string|int, PropertyHook>
- $hookPos : int
checkPropertyHookModifiers()
protected
checkPropertyHookModifiers(int $a, int $b, int $modifierPos) : void
Parameters
- $a : int
- $b : int
- $modifierPos : int
checkTryCatch()
protected
checkTryCatch(TryCatch $node) : void
Parameters
- $node : TryCatch
checkUseUse()
protected
checkUseUse(UseItem $node, int $namePos) : void
Parameters
- $node : UseItem
- $namePos : int
createCommentFromToken()
protected
createCommentFromToken(Token $token, int $tokenPos) : Comment
Parameters
- $token : Token
- $tokenPos : int
Return values
CommentcreateEmptyElemAttributes()
protected
createEmptyElemAttributes(int $tokenPos) : array<string, mixed>
Parameters
- $tokenPos : int
Return values
array<string, mixed>createExitExpr()
protected
createExitExpr(string $name, int $namePos, array<string|int, Arg|VariadicPlaceholder> $args, array<string, mixed> $attrs) : Expr
Parameters
- $name : string
- $namePos : int
- $args : array<string|int, Arg|VariadicPlaceholder>
- $attrs : array<string, mixed>
Return values
ExprcreateTokenMap()
Creates the token map.
protected
createTokenMap() : array<int, int>
The token map maps the PHP internal token identifiers to the identifiers used by the Parser. Additionally it maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'.
Return values
array<int, int> —The token map
doParse()
protected
doParse() : array<string|int, Stmt>|null
Return values
array<string|int, Stmt>|nullemitError()
protected
emitError(Error $error) : void
Parameters
- $error : Error
fixupAlternativeElse()
protected
fixupAlternativeElse(ElseIf_|Else_ $node) : void
Parameters
fixupArrayDestructuring()
protected
fixupArrayDestructuring(Array_ $node) : List_
Parameters
- $node : Array_
Return values
List_getAttributes()
Get attributes for a node with the given start and end token positions.
protected
getAttributes(int $tokenStartPos, int $tokenEndPos) : array<string, mixed>
Parameters
- $tokenStartPos : int
-
Token position the node starts at
- $tokenEndPos : int
-
Token position the node ends at
Return values
array<string, mixed> —Attributes
getAttributesAt()
Get combined start and end attributes at a stack location
protected
getAttributesAt(int $stackPos) : array<string, mixed>
Parameters
- $stackPos : int
-
Stack location
Return values
array<string, mixed> —Combined start and end attributes
getAttributesForToken()
Get attributes for a single token at the given token position.
protected
getAttributesForToken(int $tokenPos) : array<string, mixed>
Parameters
- $tokenPos : int
Return values
array<string, mixed> —Attributes
getCommentBeforeToken()
Get last comment before the given token position, if any
protected
getCommentBeforeToken(int $tokenPos) : Comment|null
Parameters
- $tokenPos : int
Return values
Comment|nullgetErrorMessage()
Format error message including expected tokens.
protected
getErrorMessage(int $symbol, int $state) : string
Parameters
- $symbol : int
-
Unexpected symbol
- $state : int
-
State at time of error
Return values
string —Formatted error message
getExpectedTokens()
Get limited number of expected tokens in given state.
protected
getExpectedTokens(int $state) : array<string|int, string>
Parameters
- $state : int
-
State
Return values
array<string|int, string> —Expected tokens. If too many, an empty array is returned.
getFloatCastKind()
protected
getFloatCastKind(string $cast) : int
Parameters
- $cast : string
Return values
inthandleBuiltinTypes()
protected
handleBuiltinTypes(Name $name) : Name|Identifier
Parameters
- $name : Name
Return values
Name|IdentifierhandleHaltCompiler()
protected
handleHaltCompiler() : string
Return values
stringhandleNamespaces()
Moves statements of semicolon-style namespaces into $ns->stmts and checks various error conditions.
protected
handleNamespaces(array<string|int, Stmt> $stmts) : array<string|int, Stmt>
Parameters
- $stmts : array<string|int, Stmt>
Return values
array<string|int, Stmt>initReduceCallbacks()
Initialize $reduceCallbacks map.
protected
initReduceCallbacks() : void
inlineHtmlHasLeadingNewline()
protected
inlineHtmlHasLeadingNewline(int $stackPos) : bool
Parameters
- $stackPos : int
Return values
boolmaybeCreateNop()
protected
maybeCreateNop(int $tokenStartPos, int $tokenEndPos) : Nop|null
Parameters
- $tokenStartPos : int
- $tokenEndPos : int
Return values
Nop|nullmaybeCreateZeroLengthNop()
Create a zero-length nop to capture preceding comments, if any.
protected
maybeCreateZeroLengthNop(int $tokenPos) : Nop|null
Parameters
- $tokenPos : int
Return values
Nop|nullparseDocString()
protected
parseDocString(string $startToken, string|array<string|int, Expr|InterpolatedStringPart> $contents, string $endToken, array<string, mixed> $attributes, array<string, mixed> $endTokenAttributes, bool $parseUnicodeEscape) : Expr
Parameters
- $startToken : string
- $contents : string|array<string|int, Expr|InterpolatedStringPart>
- $endToken : string
- $attributes : array<string, mixed>
- $endTokenAttributes : array<string, mixed>
- $parseUnicodeEscape : bool
Return values
ExprparseLNumber()
protected
parseLNumber(string $str, array<string, mixed> $attributes[, bool $allowInvalidOctal = false ]) : Int_
Parameters
- $str : string
- $attributes : array<string, mixed>
- $allowInvalidOctal : bool = false
Return values
Int_parseNumString()
Parse a T_NUM_STRING token into either an integer or string node.
protected
parseNumString(string $str, array<string, mixed> $attributes) : Int_|String_
Parameters
- $str : string
-
Number string
- $attributes : array<string, mixed>
-
Attributes
Return values
Int_|String_ —Integer or string node.
postprocessList()
protected
postprocessList(List_ $node) : void
Parameters
- $node : List_
stripIndentation()
protected
stripIndentation(string $string, int $indentLen, string $indentChar, bool $newlineAtStart, bool $newlineAtEnd, array<string, mixed> $attributes) : string
Parameters
- $string : string
- $indentLen : int
- $indentChar : string
- $newlineAtStart : bool
- $newlineAtEnd : bool
- $attributes : array<string, mixed>
Return values
stringcheckClassName()
private
checkClassName(Identifier|null $name, int $namePos) : void
Parameters
- $name : Identifier|null
- $namePos : int
checkImplementedInterfaces()
private
checkImplementedInterfaces(array<string|int, Name> $interfaces) : void
Parameters
- $interfaces : array<string|int, Name>
fixupNamespaceAttributes()
private
fixupNamespaceAttributes(Namespace_ $stmt) : void
Parameters
- $stmt : Namespace_
getNamespaceErrorAttributes()
private
getNamespaceErrorAttributes(Namespace_ $node) : array<string, mixed>
Parameters
- $node : Namespace_
Return values
array<string, mixed>getNamespacingStyle()
Determine namespacing style (semicolon or brace)
private
getNamespacingStyle(array<string|int, Node> $stmts) : null|string
Parameters
- $stmts : array<string|int, Node>
-
Top-level statements.
Return values
null|string —One of "semicolon", "brace" or null (no namespaces)
isSimpleExit()
private
isSimpleExit(array<string|int, Arg|VariadicPlaceholder> $args) : bool
Parameters
- $args : array<string|int, Arg|VariadicPlaceholder>