Documentation

Php7 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  = 374
T_ARRAY_CAST  = 303
T_AS  = 334
T_ATTRIBUTE  = 395
T_BOOL_CAST  = 305
T_BOOLEAN_AND  = 285
T_BOOLEAN_OR  = 284
T_BREAK  = 340
T_CALLABLE  = 375
T_CASE  = 338
T_CATCH  = 348
T_CLASS  = 365
T_CLASS_C  = 376
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  = 385
T_DEC  = 299
T_DECLARE  = 332
T_DEFAULT  = 339
T_DIR  = 389
T_DIV_EQUAL  = 273
T_DNUMBER  = 316
T_DO  = 325
T_DOLLAR_OPEN_CURLY_BRACES  = 384
T_DOUBLE_ARROW  = 268
T_DOUBLE_CAST  = 301
T_ECHO  = 324
T_ELLIPSIS  = 391
T_ELSE  = 313
T_ELSEIF  = 312
T_EMPTY  = 363
T_ENCAPSED_AND_WHITESPACE  = 322
T_END_HEREDOC  = 383
T_ENDDECLARE  = 333
T_ENDFOR  = 329
T_ENDFOREACH  = 331
T_ENDIF  = 314
T_ENDSWITCH  = 337
T_ENDWHILE  = 327
T_ENUM  = 368
T_EVAL  = 260
T_EXIT  = 310
T_EXTENDS  = 369
T_FILE  = 381
T_FINAL  = 355
T_FINALLY  = 349
T_FN  = 344
T_FOR  = 328
T_FOREACH  = 330
T_FUNC_C  = 379
T_FUNCTION  = 343
T_GLOBAL  = 352
T_GOTO  = 342
T_HALT_COMPILER  = 364
T_IF  = 311
T_IMPLEMENTS  = 370
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  = 367
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  = 362
T_LINE  = 380
T_LIST  = 373
T_LNUMBER  = 315
T_LOGICAL_AND  = 265
T_LOGICAL_OR  = 263
T_LOGICAL_XOR  = 264
T_MATCH  = 336
T_METHOD_C  = 378
T_MINUS_EQUAL  = 271
T_MOD_EQUAL  = 275
T_MUL_EQUAL  = 272
T_NAME_FULLY_QUALIFIED  = 392
T_NAME_QUALIFIED  = 393
T_NAME_RELATIVE  = 394
T_NAMESPACE  = 387
T_NEW  = 308
T_NS_C  = 388
T_NS_SEPARATOR  = 390
T_NULLSAFE_OBJECT_OPERATOR  = 372
T_NUM_STRING  = 320
T_OBJECT_CAST  = 304
T_OBJECT_OPERATOR  = 371
T_OR_EQUAL  = 277
T_PAAMAYIM_NEKUDOTAYIM  = 386
T_PLUS_EQUAL  = 270
T_POW  = 307
T_POW_EQUAL  = 281
T_PRINT  = 266
T_PRIVATE  = 356
T_PROTECTED  = 357
T_PUBLIC  = 358
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  = 382
T_STATIC  = 353
T_STRING  = 317
T_STRING_CAST  = 302
T_STRING_VARNAME  = 318
T_SWITCH  = 335
T_THROW  = 257
T_TRAIT  = 366
T_TRAIT_C  = 377
T_TRY  = 347
T_UNSET  = 361
T_UNSET_CAST  = 306
T_USE  = 350
T_VAR  = 360
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
checkProperty()  : void
checkTryCatch()  : void
checkUseUse()  : void
createCommentFromToken()  : Comment
createEmptyElemAttributes()  : array<string, mixed>
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)

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 = 374

T_ARRAY_CAST

public mixed T_ARRAY_CAST = 303

T_AS

public mixed T_AS = 334

T_ATTRIBUTE

public mixed T_ATTRIBUTE = 395

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 = 375

T_CASE

public mixed T_CASE = 338

T_CATCH

public mixed T_CATCH = 348

T_CLASS

public mixed T_CLASS = 365

T_CLASS_C

public mixed T_CLASS_C = 376

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 = 385

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 = 389

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 = 384

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 = 391

T_ELSE

public mixed T_ELSE = 313

T_ELSEIF

public mixed T_ELSEIF = 312

T_EMPTY

public mixed T_EMPTY = 363

T_ENCAPSED_AND_WHITESPACE

public mixed T_ENCAPSED_AND_WHITESPACE = 322

T_END_HEREDOC

public mixed T_END_HEREDOC = 383

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 = 368

T_EVAL

public mixed T_EVAL = 260

T_EXIT

public mixed T_EXIT = 310

T_EXTENDS

public mixed T_EXTENDS = 369

T_FILE

public mixed T_FILE = 381

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 = 379

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 = 364

T_IF

public mixed T_IF = 311

T_IMPLEMENTS

public mixed T_IMPLEMENTS = 370

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 = 367

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 = 362

T_LINE

public mixed T_LINE = 380

T_LIST

public mixed T_LIST = 373

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 = 378

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 = 392

T_NAME_QUALIFIED

public mixed T_NAME_QUALIFIED = 393

T_NAME_RELATIVE

public mixed T_NAME_RELATIVE = 394

T_NAMESPACE

public mixed T_NAMESPACE = 387

T_NEW

public mixed T_NEW = 308

T_NS_C

public mixed T_NS_C = 388

T_NS_SEPARATOR

public mixed T_NS_SEPARATOR = 390

T_NULLSAFE_OBJECT_OPERATOR

public mixed T_NULLSAFE_OBJECT_OPERATOR = 372

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 = 371

T_OR_EQUAL

public mixed T_OR_EQUAL = 277

T_PAAMAYIM_NEKUDOTAYIM

public mixed T_PAAMAYIM_NEKUDOTAYIM = 386

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_PROTECTED

public mixed T_PROTECTED = 357

T_PUBLIC

public mixed T_PUBLIC = 358

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 = 382

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 = 366

T_TRAIT_C

public mixed T_TRAIT_C = 377

T_TRY

public mixed T_TRY = 347

T_UNSET

public mixed T_UNSET = 361

T_UNSET_CAST

public mixed T_UNSET_CAST = 306

T_USE

public mixed T_USE = 350

T_VAR

public mixed T_VAR = 360

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

Properties

$action

protected array<string|int, mixed> $action = array(133, 134, 135, 582, 136, 137, 0, 751, 752, 753, 138, 38, -32766, -32766, -32766, 151, -32766, -32766, -32766, -32767, -32767, -32767, -32767, 102, 103, 104, 105, 106, 1112, 1113, 1114, 1111, 1110, 1109, 1115, 745, 744, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, 1245, 837, -32766, 1322, 754, -32766, -32766, -32766, -32766, -594, -32766, -32766, -32766, 104, 105, 106, -594, 1306, 265, 139, 404, 758, 759, 760, 761, 990, -32766, 429, -32766, -32766, -16, -32766, 242, 1027, 815, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, 584, 779, 780, 585, 586, -32766, 803, 801, 802, 814, 798, 799, 835, 826, 587, 588, 797, 589, 590, 591, 592, 593, 594, 826, 459, 460, 461, 1036, 800, 595, 596, 941, 140, 2, 133, 134, 135, 582, 136, 137, 1060, 751, 752, 753, 138, 38, -328, -110, -110, 1326, 290, 23, -110, -32766, -32766, -32766, 1325, 35, -110, 1112, 1113, 1114, 1111, 1110, 1109, 1115, 612, -32766, 129, 745, 744, 107, 108, 109, -32766, 274, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 828, 991, -194, 145, 110, 298, 754, 836, 75, -32766, -32766, -32766, 1351, 142, 326, 1352, -594, 326, -594, 254, 265, 139, 404, 758, 759, 760, 761, 82, -272, 429, -32766, 326, -32766, -32766, -32766, -32766, 815, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 791, 583, 792, 793, 794, 795, 783, 784, 345, 346, 786, 787, 772, 773, 774, 776, 777, 778, 356, 818, 819, 820, 821, 822, 584, 779, 780, 585, 586, 830, 803, 801, 802, 814, 798, 799, 712, 309, 587, 588, 797, 589, 590, 591, 592, 593, 594, -78, 83, 84, 85, -85, 800, 595, 596, 311, 149, 775, 746, 747, 748, 749, 750, 725, 751, 752, 753, 788, 789, 37, -328, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 323, 274, 482, -32766, -32766, -32766, -58, -32766, -32766, -32766, 959, 960, 127, 110, -194, 961, 339, 754, -32766, -32766, -32766, 955, -85, 291, -32766, 1088, -32766, -32766, -32766, -32766, -32766, 755, 756, 757, 758, 759, 760, 761, -193, -32766, 824, -32766, -32766, -32766, -367, 429, -367, 815, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 791, 813, 792, 793, 794, 795, 783, 784, 785, 812, 786, 787, 772, 773, 774, 776, 777, 778, 817, 818, 819, 820, 821, 822, 823, 779, 780, 781, 782, -548, 803, 801, 802, 814, 798, 799, 340, 327, 790, 796, 797, 804, 805, 807, 806, 808, 809, 1033, 391, 606, 7, -32766, 800, 811, 810, 50, 51, 52, 513, 53, 54, 831, 1240, 1239, 1241, 55, 56, -110, 57, 1036, 920, 1090, -110, 1036, -110, 291, 483, 745, 744, 305, 382, 381, -110, -110, -110, -110, -110, -110, -110, -110, 423, 920, 283, -548, -548, 152, 290, 380, 381, 1245, 715, 467, 468, 58, 59, 370, 21, 423, -545, 60, 556, 61, 248, 249, 62, 63, 64, 65, 66, 67, 68, 69, -548, 28, 267, 70, 445, 514, 1104, 374, -342, 1272, 1273, 515, -193, 835, 154, 832, -544, 1270, 42, 25, 516, 389, 517, 241, 518, 920, 519, 298, 1238, 520, 521, 910, 920, 441, 44, 45, 446, 377, 376, -32766, 46, 522, 1023, 1022, 1021, 1024, 368, 338, 442, 1278, -545, -545, 910, 1231, 443, 524, 525, 526, 835, 1245, 835, 1036, 716, 1341, 1236, -545, 155, 528, 529, -32766, 1259, 1260, 1261, 1262, 1256, 1257, 297, -551, 943, -545, -544, -544, 1263, 1258, 290, 1035, 1240, 1239, 1241, 298, 444, 1036, 71, 1266, 841, -544, 321, 322, 326, -153, -153, -153, 920, 1240, 1239, 1241, 922, -550, 910, -544, 710, 943, -591, -32766, -153, 910, -153, 357, -153, -591, -153, 862, 1033, 863, 1089, 36, 251, 922, 737, 156, 375, 710, 717, 862, -585, 863, -585, 75, 158, -546, 835, 959, 960, 326, 1036, -57, 523, 920, -32766, -32766, 362, 896, 955, -110, -110, -110, 32, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 745, 744, 656, 26, 835, -110, -110, 720, 745, 744, -110, 33, 834, 922, 124, 910, -110, 710, -153, 125, 922, 675, 676, 130, 710, -32766, 150, 407, 131, 1150, 1152, 48, 144, -546, -546, 378, 379, -32766, 383, 384, -543, 28, 159, 1238, 920, 160, 298, 1059, -546, 75, -32766, -32766, -32766, 835, -32766, 326, -32766, 1270, -32766, -87, 910, -32766, -546, 647, 648, 161, -32766, -32766, -32766, -4, 920, -84, -32766, -32766, 727, 162, 287, 163, -32766, 420, -302, -78, -73, -72, -71, 141, 287, -32766, -70, 326, 976, 745, 744, 1231, 710, 299, 300, -69, -68, -67, -298, -591, -66, -591, -543, -543, -65, 528, 529, -46, 1259, 1260, 1261, 1262, 1256, 1257, -18, 74, 148, -543, 273, 284, 1263, 1258, 126, -543, 726, 910, -32766, 729, 919, 147, 73, -543, 1238, 922, 690, 322, 326, 710, 279, -32766, -32766, -32766, 280, -32766, 285, -32766, 286, -32766, 332, 288, -32766, 910, 289, 292, 49, -32766, -32766, -32766, 293, 274, 1033, -32766, -32766, 937, 110, -50, 685, -32766, 420, 146, 691, 826, 701, 375, 703, 436, -32766, 1353, 20, 561, 296, 645, 1036, 835, 959, 960, 1119, -543, -543, 523, -32766, 692, 693, 306, 527, 955, -110, -110, -110, 132, 922, 834, -543, 464, 710, 283, 662, 657, -32766, 1240, 1239, 1241, 678, 304, 1238, 283, -543, 10, 301, 302, 493, -32766, -32766, -32766, 663, -32766, 922, -32766, 679, -32766, 710, -4, -32766, 373, 40, -508, 956, -32766, -32766, -32766, -275, 731, -32766, -32766, -32766, 920, 303, 128, 1238, -32766, 420, 310, 0, 567, 0, -32766, -32766, -32766, -32766, -32766, 0, -32766, 0, -32766, -32766, 0, -32766, 0, 1277, -498, 0, -32766, -32766, -32766, -32766, 1279, 0, -32766, -32766, 8, 1238, 24, 372, -32766, 420, 920, 1267, -32766, -32766, -32766, 610, -32766, -32766, -32766, 939, -32766, 298, -579, -32766, 846, 41, 734, 488, -32766, -32766, -32766, -32766, 735, 854, -32766, -32766, 901, 1238, 574, 1000, -32766, 420, 977, 984, -32766, -32766, -32766, 974, -32766, -32766, -32766, 985, -32766, 910, 899, -32766, 972, 1093, 1096, 1097, -32766, -32766, -32766, 1094, 1095, 1101, -32766, -32766, 1292, -250, -250, -250, -32766, 420, 1310, 375, 1344, 650, 28, 267, -578, -32766, -577, -551, -550, -549, 959, 960, -492, 1, 835, 523, 29, 910, 1270, 30, 896, 955, -110, -110, -110, 39, 43, 47, 72, 76, 77, 78, 79, -249, -249, -249, 80, 81, 143, 375, 153, 157, 897, 247, 328, 357, 358, 359, 360, 361, 959, 960, 922, 362, 1231, 523, 710, -250, 363, 364, 896, 955, -110, -110, -110, 365, 366, 367, 369, 529, 28, 1259, 1260, 1261, 1262, 1256, 1257, 437, 555, 1348, -273, -272, 835, 1263, 1258, 13, 1270, 14, -32766, 15, 16, 18, 922, 73, 1238, 1350, 710, -249, 322, 326, 406, -32766, -32766, -32766, 484, -32766, 485, -32766, 492, -32766, 495, 496, -32766, 497, 498, 502, 503, -32766, -32766, -32766, 504, 511, 1231, -32766, -32766, 572, 696, 1249, 1190, -32766, 420, 1268, 1062, 1061, 1042, 1226, 1038, 529, -32766, 1259, 1260, 1261, 1262, 1256, 1257, -277, -102, 12, 17, 27, 295, 1263, 1258, 405, 603, 607, 636, 702, 1194, 1244, 1191, 73, 34, 1323, 0, 320, 322, 326, 371, 711, 714, 718, 719, 721, 722, 723, 724, 0, 728, 713, 0, 857, 856, 865, 949, 992, 864, 1349, 948, 946, 947, 950, 1222, 930, 940, 928, 982, 983, 634, 1347, 1304, 1293, 1311, 1320, 0, 1207, 0, 1271, 0, 326)

Table of actions. Indexed according to $actionBase comment.

$actionBase

protected array<string|int, mixed> $actionBase = array(0, -2, 152, 549, 764, 941, 981, 751, 617, 310, 123, 877, 556, 671, 671, 738, 671, 472, 626, 789, 63, 305, 305, 789, 305, 493, 493, 493, 658, 658, 658, 658, 749, 749, 897, 897, 929, 865, 831, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 51, 45, 451, 692, 1036, 1044, 1040, 1045, 1034, 1033, 1039, 1041, 1046, 1083, 1084, 795, 1085, 1086, 1082, 1087, 1042, 889, 1035, 1043, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 44, 343, 664, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 52, 52, 52, 666, 666, 47, 354, 980, 203, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 665, 339, 164, 164, 7, 7, 7, 7, 7, 50, 369, 583, -25, -25, -25, -25, 448, 741, 501, 408, 283, 338, 394, 334, 334, 14, 14, 531, 531, 9, 9, 531, 531, 531, 478, 478, 478, 478, 441, 471, 552, 428, 824, 53, 53, 53, 53, 824, 824, 824, 824, 826, 1089, 824, 824, 824, 594, 750, 750, 781, 138, 138, 138, 750, 540, 503, 503, 540, 238, 503, 67, 135, -78, 805, 377, 499, -78, 362, 656, 636, 59, 743, 624, 743, 1032, 481, 802, 802, 514, 773, 746, 878, 1064, 1049, 821, 1080, 825, 1081, 15, 370, 745, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1090, 443, 1032, 384, 1090, 1090, 1090, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 647, 384, 622, 641, 384, 810, 443, 51, 817, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 780, 316, 51, 45, 150, 150, 490, 83, 150, 150, 150, 150, 51, 51, 51, 51, 624, 799, 797, 627, 834, 375, 799, 799, 799, 270, 158, 69, 197, 740, 760, 345, 788, 788, 801, 900, 900, 788, 798, 788, 801, 914, 788, 788, 900, 900, 835, 180, 550, 353, 524, 565, 900, 279, 788, 788, 788, 788, 816, 571, 788, 214, 198, 788, 788, 816, 811, 785, 145, 777, 900, 900, 900, 816, 500, 777, 777, 777, 839, 845, 765, 784, 337, 297, 611, 169, 822, 784, 784, 788, 538, 765, 784, 765, 784, 837, 784, 784, 784, 765, 784, 798, 431, 784, 721, 607, 163, 784, 6, 915, 916, 723, 917, 912, 918, 964, 919, 923, 1054, 899, 930, 913, 924, 965, 906, 903, 794, 693, 698, 827, 783, 896, 792, 792, 792, 894, 792, 792, 792, 792, 792, 792, 792, 792, 693, 823, 830, 787, 933, 702, 707, 1011, 819, 926, 1088, 932, 1013, 925, 772, 711, 977, 934, 774, 1050, 935, 936, 986, 1014, 846, 1017, 963, 796, 979, 1065, 836, 945, 1055, 792, 915, 923, 735, 913, 924, 906, 903, 770, 766, 762, 763, 761, 752, 747, 748, 782, 1018, 893, 833, 880, 940, 895, 693, 886, 971, 1047, 990, 992, 1053, 803, 791, 888, 1066, 946, 952, 953, 1056, 1019, 1057, 838, 973, 775, 994, 820, 1067, 996, 997, 999, 1000, 1058, 1068, 1059, 891, 1060, 849, 814, 966, 807, 1069, 1, 806, 808, 818, 955, 484, 931, 1061, 1070, 1071, 1001, 1002, 1006, 1072, 1073, 927, 852, 975, 815, 976, 967, 855, 856, 525, 813, 1020, 800, 804, 812, 577, 640, 1074, 1075, 1076, 928, 790, 786, 860, 864, 1021, 809, 1022, 1077, 649, 867, 724, 1078, 1012, 744, 754, 281, 654, 335, 756, 779, 1063, 829, 776, 778, 954, 754, 793, 869, 1079, 870, 871, 872, 1007, 876, 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, 456, 456, 456, 456, 456, 456, 305, 305, 305, 305, 305, 456, 456, 456, 456, 456, 456, 456, 305, 305, 0, 0, 305, 0, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 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, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 473, 473, 289, 289, 473, 289, 473, 473, 473, 473, 473, 473, 473, 473, 473, 0, 289, 289, 289, 289, 289, 289, 289, 289, 473, 835, 473, 138, 138, 138, 138, 473, 473, 473, -88, -88, 473, 238, 473, 473, 138, 138, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 0, 0, 384, 503, 473, 798, 798, 798, 798, 473, 473, 473, 473, 503, 503, 473, 473, 473, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 384, 0, 0, 798, 798, 473, 238, 835, 168, 473, 0, 0, 0, 0, 384, 798, 384, 443, 788, 503, 503, 788, 443, 443, 150, 51, 168, 620, 620, 620, 620, 0, 0, 624, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 798, 0, 835, 0, 798, 798, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 792, 803, 0, 803, 0, 792, 792, 792, 0, 0, 0, 0, 813, 809)

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, 0, 9, 10, 11, 12, 13, 9, 10, 11, 14, 9, 10, 11, 44, 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, 118, 119, 120, 121, 122, 37, 38, 30, 116, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 1, 1, 9, 1, 57, 9, 10, 11, 137, 1, 9, 10, 11, 50, 51, 52, 8, 1, 71, 72, 73, 74, 75, 76, 77, 31, 30, 80, 32, 33, 31, 30, 14, 1, 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, 116, 128, 129, 130, 131, 132, 133, 82, 80, 136, 137, 138, 139, 140, 141, 142, 143, 144, 80, 129, 130, 131, 138, 150, 151, 152, 1, 154, 8, 2, 3, 4, 5, 6, 7, 162, 9, 10, 11, 12, 13, 8, 117, 118, 1, 161, 8, 122, 9, 10, 11, 8, 8, 128, 116, 117, 118, 119, 120, 121, 122, 51, 137, 8, 37, 38, 53, 54, 55, 30, 57, 32, 33, 34, 35, 36, 37, 38, 80, 159, 8, 8, 69, 158, 57, 159, 161, 9, 10, 11, 80, 163, 167, 83, 160, 167, 162, 8, 71, 72, 73, 74, 75, 76, 77, 163, 162, 80, 30, 167, 32, 33, 34, 35, 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, 156, 128, 129, 130, 131, 132, 133, 163, 8, 136, 137, 138, 139, 140, 141, 142, 143, 144, 16, 9, 10, 11, 31, 150, 151, 152, 8, 154, 2, 3, 4, 5, 6, 7, 163, 9, 10, 11, 12, 13, 30, 162, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 8, 57, 31, 9, 10, 11, 16, 9, 10, 11, 117, 118, 14, 69, 162, 122, 8, 57, 9, 10, 11, 128, 97, 30, 30, 1, 32, 33, 34, 35, 36, 71, 72, 73, 74, 75, 76, 77, 8, 30, 80, 32, 33, 34, 106, 80, 108, 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, 70, 128, 129, 130, 131, 132, 133, 8, 70, 136, 137, 138, 139, 140, 141, 142, 143, 144, 116, 106, 1, 108, 116, 150, 151, 152, 2, 3, 4, 5, 6, 7, 80, 155, 156, 157, 12, 13, 101, 15, 138, 1, 164, 106, 138, 108, 30, 163, 37, 38, 113, 106, 107, 116, 117, 118, 119, 120, 121, 122, 123, 116, 1, 161, 134, 135, 14, 161, 106, 107, 1, 31, 134, 135, 50, 51, 8, 101, 116, 70, 56, 85, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 163, 70, 71, 72, 73, 74, 123, 8, 164, 78, 79, 80, 162, 82, 14, 156, 70, 86, 87, 88, 89, 8, 91, 97, 93, 1, 95, 158, 80, 98, 99, 84, 1, 8, 103, 104, 105, 106, 107, 116, 109, 110, 119, 120, 121, 122, 115, 116, 8, 146, 134, 135, 84, 122, 8, 124, 125, 126, 82, 1, 82, 138, 31, 85, 116, 149, 14, 136, 137, 116, 139, 140, 141, 142, 143, 144, 145, 161, 122, 163, 134, 135, 151, 152, 161, 137, 155, 156, 157, 158, 8, 138, 161, 1, 8, 149, 165, 166, 167, 75, 76, 77, 1, 155, 156, 157, 159, 161, 84, 163, 163, 122, 1, 137, 90, 84, 92, 161, 94, 8, 96, 106, 116, 108, 159, 147, 148, 159, 163, 14, 106, 163, 31, 106, 160, 108, 162, 161, 14, 70, 82, 117, 118, 167, 138, 16, 122, 1, 9, 10, 161, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 38, 75, 76, 82, 117, 118, 31, 37, 38, 122, 14, 155, 159, 16, 84, 128, 163, 164, 16, 159, 75, 76, 16, 163, 137, 101, 102, 16, 59, 60, 70, 16, 134, 135, 106, 107, 74, 106, 107, 70, 70, 16, 80, 1, 16, 158, 1, 149, 161, 87, 88, 89, 82, 91, 167, 93, 86, 95, 31, 84, 98, 163, 111, 112, 16, 103, 104, 105, 0, 1, 31, 109, 110, 31, 16, 30, 16, 115, 116, 35, 31, 31, 31, 31, 163, 30, 124, 31, 167, 159, 37, 38, 122, 163, 134, 135, 31, 31, 31, 35, 160, 31, 162, 134, 135, 31, 136, 137, 31, 139, 140, 141, 142, 143, 144, 31, 154, 31, 149, 31, 31, 151, 152, 163, 70, 31, 84, 74, 31, 31, 31, 161, 163, 80, 159, 80, 166, 167, 163, 35, 87, 88, 89, 35, 91, 35, 93, 35, 95, 35, 37, 98, 84, 37, 37, 70, 103, 104, 105, 37, 57, 116, 109, 110, 38, 69, 31, 77, 115, 116, 70, 116, 80, 80, 106, 92, 108, 124, 83, 97, 89, 113, 113, 138, 82, 117, 118, 82, 134, 135, 122, 85, 137, 138, 114, 127, 128, 129, 130, 131, 31, 159, 155, 149, 97, 163, 161, 96, 90, 74, 155, 156, 157, 94, 133, 80, 161, 163, 150, 134, 135, 97, 87, 88, 89, 100, 91, 159, 93, 100, 95, 163, 164, 98, 149, 159, 149, 128, 103, 104, 105, 162, 164, 74, 109, 110, 1, 132, 163, 80, 115, 116, 132, -1, 153, -1, 87, 88, 89, 124, 91, -1, 93, -1, 95, 137, -1, 98, -1, 146, 149, -1, 103, 104, 105, 74, 146, -1, 109, 110, 149, 80, 149, 149, 115, 116, 1, 160, 87, 88, 89, 153, 91, 124, 93, 154, 95, 158, 161, 98, 160, 159, 159, 102, 103, 104, 105, 74, 159, 159, 109, 110, 159, 80, 81, 159, 115, 116, 159, 159, 87, 88, 89, 159, 91, 124, 93, 159, 95, 84, 159, 98, 159, 159, 159, 159, 103, 104, 105, 159, 159, 159, 109, 110, 160, 100, 101, 102, 115, 116, 160, 106, 160, 160, 70, 71, 161, 124, 161, 161, 161, 161, 117, 118, 161, 161, 82, 122, 161, 84, 86, 161, 127, 128, 129, 130, 131, 161, 161, 161, 161, 161, 161, 161, 161, 100, 101, 102, 161, 161, 161, 106, 161, 161, 164, 161, 161, 161, 161, 161, 161, 161, 117, 118, 159, 161, 122, 122, 163, 164, 161, 161, 127, 128, 129, 130, 131, 161, 161, 161, 161, 137, 70, 139, 140, 141, 142, 143, 144, 161, 161, 164, 162, 162, 82, 151, 152, 162, 86, 162, 74, 162, 162, 162, 159, 161, 80, 164, 163, 164, 166, 167, 162, 87, 88, 89, 162, 91, 162, 93, 162, 95, 162, 162, 98, 162, 162, 162, 162, 103, 104, 105, 162, 162, 122, 109, 110, 162, 162, 162, 162, 115, 116, 162, 162, 162, 162, 162, 162, 137, 124, 139, 140, 141, 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, 162, 162, 162, 162, 162, 162, 161, 163, 162, -1, 163, 166, 167, 163, 163, 163, 163, 163, 163, 163, 163, 163, -1, 163, 163, -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, -1, 165, -1, 166, -1, 167)

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, 100, 32767, 32767, 32767, 32767, 597, 597, 597, 597, 32767, 32767, 254, 102, 32767, 32767, 470, 387, 387, 387, 32767, 32767, 541, 541, 541, 541, 541, 541, 32767, 32767, 32767, 32767, 32767, 32767, 470, 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, 32767, 32767, 100, 32767, 32767, 32767, 36, 7, 8, 10, 11, 49, 17, 324, 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, 590, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 474, 453, 454, 456, 457, 386, 542, 596, 327, 593, 385, 145, 339, 329, 242, 330, 258, 475, 259, 476, 479, 480, 215, 287, 382, 149, 150, 417, 471, 419, 469, 473, 418, 392, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 390, 391, 472, 450, 449, 448, 32767, 32767, 415, 416, 32767, 420, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 389, 423, 421, 422, 439, 440, 437, 438, 441, 32767, 32767, 32767, 442, 443, 444, 445, 316, 32767, 32767, 366, 364, 316, 111, 32767, 32767, 430, 431, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 535, 447, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 102, 32767, 100, 537, 412, 414, 504, 425, 426, 424, 393, 32767, 511, 32767, 102, 32767, 513, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 536, 32767, 543, 543, 32767, 497, 100, 195, 32767, 32767, 512, 32767, 195, 195, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 604, 497, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 32767, 195, 110, 32767, 32767, 32767, 100, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 190, 32767, 268, 270, 102, 558, 195, 32767, 516, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 509, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 497, 435, 138, 32767, 138, 543, 427, 428, 429, 499, 543, 543, 543, 312, 289, 32767, 32767, 32767, 32767, 514, 514, 100, 100, 100, 100, 509, 32767, 32767, 32767, 32767, 111, 99, 99, 99, 99, 99, 103, 101, 32767, 32767, 32767, 32767, 223, 99, 32767, 101, 101, 32767, 32767, 223, 225, 212, 101, 227, 32767, 562, 563, 223, 101, 227, 227, 227, 247, 247, 486, 318, 101, 99, 101, 101, 197, 318, 318, 32767, 101, 486, 318, 486, 318, 199, 318, 318, 318, 486, 318, 32767, 101, 318, 214, 99, 99, 318, 32767, 32767, 32767, 499, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 222, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 530, 32767, 547, 560, 433, 434, 436, 545, 458, 459, 460, 461, 462, 463, 464, 466, 592, 32767, 503, 32767, 32767, 32767, 338, 32767, 602, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 603, 32767, 543, 32767, 32767, 32767, 32767, 432, 9, 74, 492, 42, 43, 51, 57, 520, 521, 522, 523, 517, 518, 524, 519, 32767, 32767, 525, 568, 32767, 32767, 544, 595, 32767, 32767, 32767, 32767, 32767, 32767, 138, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 530, 32767, 136, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 526, 32767, 32767, 32767, 543, 32767, 32767, 32767, 32767, 314, 311, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 543, 32767, 32767, 32767, 32767, 32767, 291, 32767, 308, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 286, 32767, 32767, 381, 499, 294, 296, 297, 32767, 32767, 32767, 32767, 360, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 152, 152, 3, 3, 341, 152, 152, 152, 341, 341, 152, 341, 341, 341, 152, 152, 152, 152, 152, 152, 280, 185, 262, 265, 247, 247, 152, 352, 152)

Map of states to their default action

$actionTableSize

protected int $actionTableSize = 1258

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

$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(196, 196, 1034, 1065, 697, 431, 661, 621, 658, 319, 706, 425, 313, 314, 335, 576, 430, 336, 432, 638, 654, 655, 852, 672, 673, 674, 853, 167, 167, 167, 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, 189, 190, 191, 192, 218, 216, 219, 536, 537, 421, 538, 540, 541, 542, 543, 544, 545, 546, 547, 1136, 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, 176, 178, 215, 217, 220, 238, 243, 244, 246, 257, 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, 271, 281, 282, 316, 317, 318, 426, 427, 428, 581, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, 200, 239, 188, 189, 190, 191, 192, 218, 1136, 201, 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, 212, 213, 214, 855, 466, 466, 278, 278, 278, 278, 623, 623, 351, 466, 1269, 600, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1287, 1287, 599, 1100, 1287, 709, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 508, 700, 458, 1098, 975, 559, 552, 860, 419, 909, 904, 905, 918, 861, 906, 858, 907, 908, 859, 848, 827, 912, 354, 354, 354, 354, 396, 399, 560, 601, 605, 1087, 1082, 1083, 1084, 341, 552, 559, 568, 569, 344, 579, 602, 616, 617, 408, 409, 1232, 440, 479, 670, 22, 671, 886, 412, 413, 414, 481, 684, 349, 1237, 415, 1237, 1107, 1108, 347, 833, 1034, 1034, 1237, 573, 848, 1034, 1327, 1034, 1034, 1040, 1039, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1319, 1319, 1319, 1319, 1237, 893, 851, 893, 893, 1237, 1237, 1237, 1237, 1233, 1234, 1237, 1237, 1237, 833, 355, 833, 843, 996, 252, 252, 1043, 1044, 1037, 1037, 355, 355, 681, 952, 394, 926, 1029, 1045, 1046, 927, 1235, 1295, 1296, 942, 355, 355, 942, 913, 355, 914, 1354, 250, 250, 250, 250, 245, 253, 548, 548, 548, 548, 554, 604, 1285, 1285, 355, 355, 1285, 571, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 539, 539, 342, 424, 539, 611, 539, 539, 539, 539, 539, 539, 539, 539, 539, 566, 476, 1312, 1313, 733, 637, 639, 325, 308, 659, 848, 343, 342, 683, 687, 1010, 695, 704, 1006, 660, 1298, 609, 624, 627, 628, 629, 630, 651, 652, 653, 708, 1216, 944, 1314, 1315, 1217, 1220, 945, 1221, 1337, 1337, 686, 352, 353, 868, 553, 563, 450, 450, 450, 553, 1309, 563, 1309, 1133, 397, 462, 1337, 1058, 880, 1309, 1185, 867, 500, 5, 501, 6, 469, 580, 470, 471, 507, 554, 878, 1340, 1340, 1345, 1346, 433, 438, 550, 666, 550, 433, 682, 1321, 1321, 1321, 1321, 550, 337, 1041, 1041, 931, 1123, 873, 665, 1052, 1048, 1049, 619, 845, 876, 324, 275, 324, 1015, 967, 410, 705, 577, 614, 1305, 456, 872, 403, 664, 994, 969, 969, 969, 969, 866, 870, 456, 963, 970, 881, 869, 1070, 1074, 631, 633, 635, 1227, 1230, 958, 615, 978, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 999, 1018, 450, 971, 1073, 732, 477, 1228, 1307, 1307, 1073, 736, 968, 551, 1008, 1003, 882, 694, 1075, 1071, 829, 255, 255, 980, 0, 1118, 0, 1013, 1013, 694, 0, 0, 0, 694, 1116, 885)

Table of states to goto after reduction. Indexed according to $gotoBase comment.

$gotoBase

protected array<string|int, mixed> $gotoBase = array(0, 0, -221, 0, 0, 311, 200, 541, 179, -10, 0, 0, -30, 32, 11, -185, 56, 9, 173, 196, -146, 0, -59, 163, 219, 291, 18, 22, 159, 175, 0, 0, 0, 0, 0, 54, 0, 165, 0, 153, 0, 106, -1, 189, 0, 230, -291, 0, -330, 186, 519, 0, 0, 0, 0, 0, -33, 0, 0, 181, 0, 0, 280, 0, 158, 321, -236, 0, 0, 0, 0, 0, 0, -5, 0, 0, -140, 0, 0, 4, 174, 44, -246, -76, -220, 33, -698, 0, 0, 37, 0, 0, 188, 184, 0, 0, 111, -311, 0, 135, 0, 0, 0, 276, 313, 0, 0, 317, -71, 0, 162, 0, 0, 183, 166, 0, 182, 187, -3, 29, 172, 0, 0, 0, 0, 0, 0, 1, 0, 176, 167, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 112, 0, 130, 190, 168, 0, 0, 0, -51, 0, 97, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 71, 67, -56, 110, 241, 125, 0, 0, 82, 0, 42, 229, 0, 242, 113, 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, 127, 73, 66, 66, 56, 56, 66, 9, 66, 66, 66, 66, 66, 66, 66, 66, 66, 86, 86, 26, 86, 86, 86, 27, 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, 42, 42, 15, 149, 149, 23, 23, 23, 23, 108, 108, 97, 149, 108, 130, 108, 108, 108, 108, 108, 108, 108, 108, 108, 170, 170, 8, 8, 170, 8, 170, 170, 170, 170, 170, 170, 170, 170, 170, 8, 8, 83, 8, 49, 76, 76, 15, 43, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 22, 6, 15, 24, 24, 24, 24, 59, 59, 59, 59, 59, 15, 15, 15, 15, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 82, 82, 20, 83, 84, 82, 76, 82, 45, 82, 82, 82, 84, 82, 179, 73, 82, 73, 144, 144, 82, 12, 73, 73, 73, 172, 22, 73, 181, 73, 73, 118, 118, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 9, 9, 9, 9, 73, 25, 25, 25, 25, 73, 73, 73, 73, 20, 20, 73, 73, 73, 12, 14, 12, 20, 103, 5, 5, 119, 119, 89, 89, 14, 14, 89, 89, 62, 73, 89, 89, 89, 73, 20, 20, 20, 9, 14, 14, 9, 65, 14, 65, 14, 5, 5, 5, 5, 5, 5, 107, 107, 107, 107, 14, 107, 171, 171, 14, 14, 171, 104, 171, 171, 171, 171, 171, 171, 171, 171, 171, 173, 173, 168, 13, 173, 13, 173, 173, 173, 173, 173, 173, 173, 173, 173, 48, 176, 176, 176, 48, 48, 48, 169, 169, 48, 22, 168, 168, 48, 48, 48, 48, 48, 48, 64, 14, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 79, 79, 178, 178, 79, 79, 79, 79, 182, 182, 14, 97, 97, 35, 9, 9, 23, 23, 23, 9, 130, 9, 130, 150, 9, 9, 182, 114, 35, 130, 151, 35, 155, 46, 155, 46, 9, 9, 9, 9, 155, 14, 9, 182, 182, 9, 9, 117, 113, 19, 120, 19, 117, 116, 130, 130, 130, 130, 19, 29, 117, 117, 17, 17, 39, 117, 117, 117, 117, 17, 18, 9, 24, 24, 24, 17, 93, 93, 93, 2, 2, 130, 19, 17, 28, 17, 17, 19, 19, 19, 19, 17, 37, 19, 19, 19, 16, 16, 16, 16, 85, 85, 85, 17, 14, 92, 80, 16, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 50, 110, 23, 50, 130, 50, 157, 160, 130, 130, 130, 99, 16, 50, 50, 50, 41, 7, 132, 129, 7, 5, 5, 96, -1, 147, -1, 107, 107, 7, -1, -1, -1, 7, 16, 16)

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, 512, 740, 4, 741, 935, 816, 825, 597, 530, 707, 348, 625, 422, 1303, 911, 1122, 578, 844, 1246, 1254, 457, 847, 330, 730, 923, 894, 895, 400, 386, 392, 398, 649, 626, 494, 879, 453, 871, 486, 874, 452, 883, 164, 418, 510, 887, 3, 890, 557, 921, 973, 387, 898, 388, 677, 900, 562, 902, 903, 395, 401, 402, 1127, 570, 622, 915, 256, 564, 916, 385, 917, 925, 390, 393, 688, 465, 505, 499, 411, 1102, 565, 608, 646, 447, 473, 620, 632, 618, 480, 434, 416, 329, 957, 965, 487, 463, 979, 350, 987, 738, 1135, 640, 489, 995, 641, 1002, 1005, 531, 532, 478, 1017, 272, 1020, 490, 19, 667, 1031, 1032, 668, 642, 1054, 643, 669, 644, 1056, 472, 598, 1064, 454, 1072, 1291, 455, 1076, 266, 1079, 277, 417, 435, 1085, 1086, 9, 1092, 698, 699, 11, 276, 509, 1117, 689, 451, 1134, 439, 1204, 1206, 558, 491, 1224, 1223, 680, 506, 1229, 448, 1294, 449, 533, 474, 315, 534, 1338, 307, 333, 312, 549, 294, 334, 535, 475, 1300, 1308, 331, 31, 1328, 1339, 575, 613)

Map of non-terminals to the default state to goto after their reduction

$gotoTableSize

protected int $gotoTableSize = 567

Size of $goto table

$invalidSymbol

protected int $invalidSymbol = 168

Symbol number signifying an invalid token

$numNonLeafStates

protected int $numNonLeafStates = 739

Number of non-leaf states

$phpTokenToSymbol

protected array<string|int, int> $phpTokenToSymbol

Map of PHP token IDs to internal symbols

$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, 2, 3, 1, 1, 7, 6, 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, 6, 8, 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, 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, 2, 1, 3, 1, 1, 3, 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, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 3, 0, 1, 1, 0, 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, 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 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, 110, 110, 110, 114, 114, 114, 114, 89, 89, 117, 117, 117, 118, 118, 115, 115, 119, 119, 121, 121, 122, 122, 116, 123, 123, 120, 124, 124, 124, 124, 113, 113, 82, 82, 82, 20, 20, 20, 126, 125, 125, 127, 127, 127, 127, 60, 128, 128, 129, 61, 131, 131, 132, 132, 133, 133, 86, 134, 134, 134, 134, 134, 134, 134, 139, 139, 140, 140, 141, 141, 141, 141, 141, 142, 143, 143, 138, 138, 135, 135, 137, 137, 145, 145, 144, 144, 144, 144, 144, 144, 144, 136, 146, 146, 148, 147, 147, 62, 104, 149, 149, 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, 156, 150, 150, 155, 155, 158, 159, 159, 160, 161, 162, 162, 162, 162, 19, 19, 73, 73, 73, 73, 151, 151, 151, 151, 164, 164, 152, 152, 154, 154, 154, 157, 157, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 108, 173, 173, 173, 173, 153, 153, 153, 153, 153, 153, 153, 153, 59, 59, 167, 167, 167, 167, 174, 174, 163, 163, 163, 175, 175, 175, 175, 175, 175, 74, 74, 66, 66, 66, 66, 130, 130, 130, 130, 178, 177, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 176, 176, 176, 176, 107, 172, 180, 180, 179, 179, 181, 181, 181, 181, 181, 181, 181, 181, 169, 169, 169, 169, 168, 183, 182, 182, 182, 182, 182, 182, 182, 182, 184, 184, 184, 184)

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_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_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

$tokenStartStack

protected array<string|int, int> $tokenStartStack

Token start position stack

$tokenToSymbol

protected array<string|int, mixed> $tokenToSymbol = array(0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, 161, 162, 53, 50, 8, 51, 52, 54, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 163, 35, 164, 58, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 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, 48, 49, 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)

Map of external symbols (static::T_*) to internal symbols

$tokenToSymbolMapSize

protected int $tokenToSymbolMapSize = 396

Size of $tokenToSymbol map

$unexpectedTokenRule

protected int $unexpectedTokenRule = 32767

Rule number signifying that an unexpected token was encountered

$YY2TBLSTATE

protected int $YY2TBLSTATE = 435

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).

checkClassModifier()

protected checkClassModifier(int $a, int $b, int $modifierPos) : void
Parameters
$a : int
$b : int
$modifierPos : int

checkModifier()

protected checkModifier(int $a, int $b, int $modifierPos) : void
Parameters
$a : int
$b : int
$modifierPos : int

createEmptyElemAttributes()

protected createEmptyElemAttributes(int $tokenPos) : array<string, mixed>
Parameters
$tokenPos : int
Return values
array<string, mixed>

createTokenMap()

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>|null

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|null

getErrorMessage()

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
int

handleHaltCompiler()

protected handleHaltCompiler() : string
Return values
string

handleNamespaces()

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
bool

maybeCreateNop()

protected maybeCreateNop(int $tokenStartPos, int $tokenEndPos) : Nop|null
Parameters
$tokenStartPos : int
$tokenEndPos : int
Return values
Nop|null

maybeCreateZeroLengthNop()

Create a zero-length nop to capture preceding comments, if any.

protected maybeCreateZeroLengthNop(int $tokenPos) : Nop|null
Parameters
$tokenPos : int
Return values
Nop|null

parseDocString()

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
Expr

parseLNumber()

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.

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
string

checkImplementedInterfaces()

private checkImplementedInterfaces(array<string|int, Name$interfaces) : void
Parameters
$interfaces : array<string|int, Name>

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)


        
On this page

Search results