@prettier/plugin-php 0.19.7 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -19
- package/package.json +32 -20
- package/src/clean.js +5 -7
- package/src/comments.js +39 -50
- package/src/index.js +54 -30
- package/src/linguist-languages.cjs +4 -0
- package/src/needs-parens.js +17 -25
- package/src/options.js +1 -3
- package/src/parser.js +3 -4
- package/src/pragma.js +3 -8
- package/src/printer.js +236 -324
- package/src/util.js +13 -26
- package/standalone.js +3 -1
- package/src/module.js +0 -2
package/standalone.js
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("prettier/standalone")):"function"==typeof define&&define.amd?define(["exports","prettier/standalone"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).prettierPlugins=t.prettierPlugins||{},t.prettierPlugins.php={}),t.prettier)}(this,(function(t,e){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=i(e),n={attributeIndex:0,attributeListDepth:{},matchST_ATTRIBUTE:function(){let t=this.input();if(this.is_WHITESPACE()){do{t=this.input()}while(this.is_WHITESPACE());return this.unput(1),null}switch(t){case"]":return 0===this.attributeListDepth[this.attributeIndex]?(delete this.attributeListDepth[this.attributeIndex],this.attributeIndex--,this.popState()):this.attributeListDepth[this.attributeIndex]--,"]";case"(":case")":case":":case"=":case"|":case"&":case"^":case"-":case"+":case"*":case"%":case"~":case"<":case">":case"!":case".":return this.consume_TOKEN();case"[":return this.attributeListDepth[this.attributeIndex]++,"[";case",":return",";case'"':return this.ST_DOUBLE_QUOTES();case"'":return this.T_CONSTANT_ENCAPSED_STRING();case"/":return"/"===this._input[this.offset]?this.T_COMMENT():"*"===this._input[this.offset]?(this.input(),this.T_DOC_COMMENT()):this.consume_TOKEN()}if(this.is_LABEL_START()||"\\"===t){for(;this.offset<this.size;){const t=this.input();if(!this.is_LABEL()&&"\\"!==t){t&&this.unput(1);break}}return this.T_STRING()}if(this.is_NUM())return this.consume_NUM();throw new Error('Bad terminal sequence "'.concat(t,'" at line ').concat(this.yylineno," (offset ").concat(this.offset,")"))}};n.attributeIndex,n.attributeListDepth,n.matchST_ATTRIBUTE;var r={T_COMMENT:function(){for(;this.offset<this.size;){const t=this.input();if("\n"===t||"\r"===t)return this.tok.T_COMMENT;if("?"===t&&!this.aspTagMode&&">"===this._input[this.offset])return this.unput(1),this.tok.T_COMMENT;if("%"===t&&this.aspTagMode&&">"===this._input[this.offset])return this.unput(1),this.tok.T_COMMENT}return this.tok.T_COMMENT},T_DOC_COMMENT:function(){let t=this.input(),e=this.tok.T_COMMENT;if("*"===t){if(t=this.input(),this.is_WHITESPACE()&&(e=this.tok.T_DOC_COMMENT),"/"===t)return e;this.unput(1)}for(;this.offset<this.size;)if(t=this.input(),"*"===t&&"/"===this._input[this.offset]){this.input();break}return e}};r.T_COMMENT,r.T_DOC_COMMENT;var o={nextINITIAL:function(){return this.conditionStack.length>1&&"INITIAL"===this.conditionStack[this.conditionStack.length-1]?this.popState():this.begin("ST_IN_SCRIPTING"),this},matchINITIAL:function(){for(;this.offset<this.size;){let t=this.input();if("<"==t)if(t=this.ahead(1),"?"==t){if(this.tryMatch("?=")){this.unput(1).appendToken(this.tok.T_OPEN_TAG_WITH_ECHO,3).nextINITIAL();break}if(this.tryMatchCaseless("?php")&&(t=this._input[this.offset+4]," "===t||"\t"===t||"\n"===t||"\r"===t)){this.unput(1).appendToken(this.tok.T_OPEN_TAG,6).nextINITIAL();break}if(this.short_tags){this.unput(1).appendToken(this.tok.T_OPEN_TAG,2).nextINITIAL();break}}else if(this.asp_tags&&"%"==t){if(this.tryMatch("%=")){this.aspTagMode=!0,this.unput(1).appendToken(this.tok.T_OPEN_TAG_WITH_ECHO,3).nextINITIAL();break}this.aspTagMode=!0,this.unput(1).appendToken(this.tok.T_OPEN_TAG,2).nextINITIAL();break}}return this.yytext.length>0&&this.tok.T_INLINE_HTML}};o.nextINITIAL,o.matchINITIAL;var h={consume_NUM:function(){let t=this.yytext[0],e="."===t;if("0"===t)if(t=this.input(),"x"===t||"X"===t){if(t=this.input(),"_"!==t&&this.is_HEX())return this.consume_HNUM();this.unput(t?2:1)}else if("b"===t||"B"===t){if(t=this.input(),"_"!==t&&"0"===t||"1"===t)return this.consume_BNUM();this.unput(t?2:1)}else if("o"===t||"O"===t){if(t=this.input(),"_"!==t&&this.is_OCTAL())return this.consume_ONUM();this.unput(t?2:1)}else this.is_NUM()||t&&this.unput(1);for(;this.offset<this.size;){const i=t;if(t=this.input(),"_"===t){if("_"===i){this.unput(2);break}if("."===i){this.unput(1);break}if("e"===i||"E"===i){this.unput(2);break}}else{if("."===t){if(e){this.unput(1);break}if("_"===i){this.unput(2);break}e=!0;continue}if("e"===t||"E"===t){if("_"===i){this.unput(1);break}let e=2;if(t=this.input(),"+"!==t&&"-"!==t||(e=3,t=this.input()),this.is_NUM_START())return this.consume_LNUM(),this.tok.T_DNUMBER;this.unput(t?e:e-1);break}}if(!this.is_NUM()){t&&this.unput(1);break}}return e?this.tok.T_DNUMBER:this.yytext.length<9||this.yytext.length<10||10==this.yytext.length&&this.yytext<"2147483648"?this.tok.T_LNUMBER:this.tok.T_DNUMBER},consume_HNUM:function(){for(;this.offset<this.size;){const t=this.input();if(!this.is_HEX()){t&&this.unput(1);break}}return this.tok.T_LNUMBER},consume_LNUM:function(){for(;this.offset<this.size;){const t=this.input();if(!this.is_NUM()){t&&this.unput(1);break}}return this.tok.T_LNUMBER},consume_BNUM:function(){let t;for(;this.offset<this.size;)if(t=this.input(),"0"!==t&&"1"!==t&&"_"!==t){t&&this.unput(1);break}return this.tok.T_LNUMBER},consume_ONUM:function(){for(;this.offset<this.size;){const t=this.input();if(!this.is_OCTAL()){t&&this.unput(1);break}}return this.tok.T_LNUMBER}};h.consume_NUM,h.consume_HNUM,h.consume_LNUM,h.consume_BNUM,h.consume_ONUM;var a={matchST_LOOKING_FOR_PROPERTY:function(){let t=this.input();if("-"===t){if(t=this.input(),">"===t)return this.tok.T_OBJECT_OPERATOR;t&&this.unput(1)}else{if(this.is_WHITESPACE())return this.tok.T_WHITESPACE;if(this.is_LABEL_START())return this.consume_LABEL(),this.popState(),this.tok.T_STRING}return this.popState(),t&&this.unput(1),!1},matchST_LOOKING_FOR_VARNAME:function(){let t=this.input();if(this.popState(),this.begin("ST_IN_SCRIPTING"),this.is_LABEL_START()){if(this.consume_LABEL(),t=this.input(),"["===t||"}"===t)return this.unput(1),this.tok.T_STRING_VARNAME;this.unput(this.yytext.length)}else t&&this.unput(1);return!1},matchST_VAR_OFFSET:function(){const t=this.input();if(this.is_NUM_START())return this.consume_NUM(),this.tok.T_NUM_STRING;if("]"===t)return this.popState(),"]";if("$"===t){if(this.input(),this.is_LABEL_START())return this.consume_LABEL(),this.tok.T_VARIABLE;throw new Error("Unexpected terminal")}if(this.is_LABEL_START())return this.consume_LABEL(),this.tok.T_STRING;if(this.is_WHITESPACE()||"\\"===t||"'"===t||"#"===t)return this.tok.T_ENCAPSED_AND_WHITESPACE;if("["===t||"{"===t||"}"===t||'"'===t||"`"===t||this.is_TOKEN())return t;throw new Error("Unexpected terminal")}};a.matchST_LOOKING_FOR_PROPERTY,a.matchST_LOOKING_FOR_VARNAME,a.matchST_VAR_OFFSET;var c={matchST_IN_SCRIPTING:function(){let t=this.input();switch(t){case" ":case"\t":case"\n":case"\r":case"\r\n":return this.T_WHITESPACE();case"#":return this.version>=800&&"["===this._input[this.offset]?(this.input(),this.attributeListDepth[++this.attributeIndex]=0,this.begin("ST_ATTRIBUTE"),this.tok.T_ATTRIBUTE):this.T_COMMENT();case"/":return"/"===this._input[this.offset]?this.T_COMMENT():"*"===this._input[this.offset]?(this.input(),this.T_DOC_COMMENT()):this.consume_TOKEN();case"'":return this.T_CONSTANT_ENCAPSED_STRING();case'"':return this.ST_DOUBLE_QUOTES();case"`":return this.begin("ST_BACKQUOTE"),"`";case"?":if(!this.aspTagMode&&this.tryMatch(">")){this.input();const t=this._input[this.offset];return"\n"!==t&&"\r"!==t||this.input(),this.conditionStack.length>1&&this.begin("INITIAL"),this.tok.T_CLOSE_TAG}return this.consume_TOKEN();case"%":return this.aspTagMode&&">"===this._input[this.offset]?(this.input(),t=this._input[this.offset],"\n"!==t&&"\r"!==t||this.input(),this.aspTagMode=!1,this.conditionStack.length>1&&this.begin("INITIAL"),this.tok.T_CLOSE_TAG):this.consume_TOKEN();case"{":return this.begin("ST_IN_SCRIPTING"),"{";case"}":return this.conditionStack.length>2&&this.popState(),"}";default:if("."===t){if(t=this.input(),this.is_NUM_START())return this.consume_NUM();t&&this.unput(1)}if(this.is_NUM_START())return this.consume_NUM();if(this.is_LABEL_START())return this.consume_LABEL().T_STRING();if(this.is_TOKEN())return this.consume_TOKEN()}throw new Error('Bad terminal sequence "'+t+'" at line '+this.yylineno+" (offset "+this.offset+")")},T_WHITESPACE:function(){for(;this.offset<this.size;){const t=this.input();if(" "!==t&&"\t"!==t&&"\n"!==t&&"\r"!==t){t&&this.unput(1);break}}return this.tok.T_WHITESPACE}};c.matchST_IN_SCRIPTING,c.T_WHITESPACE;const l=["\n","\r"],_=["\n","\r",";"],u=_.concat(["\t"," ",",","]",")","/","=","!"]);var d={T_CONSTANT_ENCAPSED_STRING:function(){let t;for(;this.offset<this.size;)if(t=this.input(),"\\"==t)this.input();else if("'"==t)break;return this.tok.T_CONSTANT_ENCAPSED_STRING},is_HEREDOC:function(){const t=this.offset;if("<"===this._input[this.offset-1]&&"<"===this._input[this.offset]&&"<"===this._input[this.offset+1]){if(this.offset+=3,this.is_TABSPACE())for(;this.offset<this.size&&(this.offset++,this.is_TABSPACE()););let e=this._input[this.offset-1];if("'"===e||'"'===e?this.offset++:e=null,this.is_LABEL_START()){let i=this.offset-1;for(;this.offset<this.size&&(this.offset++,this.is_LABEL()););const s=this._input.substring(i,this.offset-1);if((!e||e===this._input[this.offset-1])&&(e&&this.offset++,l.includes(this._input[this.offset-1])))return this.heredoc_label.label=s,this.heredoc_label.length=s.length,this.heredoc_label.finished=!1,i=this.offset-t,this.offset=t,this.consume(i),"'"===e?this.begin("ST_NOWDOC"):this.begin("ST_HEREDOC"),this.prematch_ENDOFDOC(),this.tok.T_START_HEREDOC}}return this.offset=t,!1},ST_DOUBLE_QUOTES:function(){let t;for(;this.offset<this.size;)if(t=this.input(),"\\"==t)this.input();else{if('"'==t)break;if("$"==t){if(t=this.input(),"{"==t||this.is_LABEL_START()){this.unput(2);break}t&&this.unput(1)}else if("{"==t){if(t=this.input(),"$"==t){this.unput(2);break}t&&this.unput(1)}}if('"'==t)return this.tok.T_CONSTANT_ENCAPSED_STRING;{let t=1;return"b"!==this.yytext[0]&&"B"!==this.yytext[0]||(t=2),this.yytext.length>2&&this.appendToken(this.tok.T_ENCAPSED_AND_WHITESPACE,this.yytext.length-t),this.unput(this.yytext.length-t),this.begin("ST_DOUBLE_QUOTES"),this.yytext}},isDOC_MATCH:function(t,e){const i=this._input[t-2];if(!l.includes(i))return!1;let s=!1,n=!1,r=0,o=this._input[t-1];if(this.version>=703){for(;"\t"===o||" "===o;)" "===o?s=!0:"\t"===o&&(n=!0),o=this._input[t+r],r++;if(t+=r,l.includes(this._input[t-1]))return!1}if(this._input.substring(t-1,t-1+this.heredoc_label.length)===this.heredoc_label.label){const i=this._input[t-1+this.heredoc_label.length];if((this.version>=703?u:_).includes(i)){if(e){if(this.consume(r),s&&n)throw new Error("Parse error: mixing spaces and tabs in ending marker at line "+this.yylineno+" (offset "+this.offset+")")}else this.heredoc_label.indentation=r,this.heredoc_label.indentation_uses_spaces=s,this.heredoc_label.first_encaps_node=!0;return!0}}return!1},prematch_ENDOFDOC:function(){this.heredoc_label.indentation_uses_spaces=!1,this.heredoc_label.indentation=0,this.heredoc_label.first_encaps_node=!0;let t=this.offset+1;for(;t<this._input.length;){if(this.isDOC_MATCH(t,!1))return;if(!l.includes(this._input[t-1]))for(;!l.includes(this._input[t++])&&t<this._input.length;);t++}},matchST_NOWDOC:function(){if(this.isDOC_MATCH(this.offset,!0))return this.consume(this.heredoc_label.length),this.popState(),this.tok.T_END_HEREDOC;let t=this._input[this.offset-1];for(;this.offset<this.size;)if(l.includes(t)){if(t=this.input(),this.isDOC_MATCH(this.offset,!0))return this.unput(1).popState(),this.appendToken(this.tok.T_END_HEREDOC,this.heredoc_label.length),this.tok.T_ENCAPSED_AND_WHITESPACE}else t=this.input();return this.tok.T_ENCAPSED_AND_WHITESPACE},matchST_HEREDOC:function(){let t=this.input();if(this.isDOC_MATCH(this.offset,!0))return this.consume(this.heredoc_label.length-1),this.popState(),this.tok.T_END_HEREDOC;for(;this.offset<this.size;)if("\\"===t&&(t=this.input(),l.includes(t)||(t=this.input())),l.includes(t)){if(t=this.input(),this.isDOC_MATCH(this.offset,!0))return this.unput(1).popState(),this.appendToken(this.tok.T_END_HEREDOC,this.heredoc_label.length),this.tok.T_ENCAPSED_AND_WHITESPACE}else if("$"===t){if(t=this.input(),"{"===t)return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){const t=this.offset,e=this.consume_VARIABLE();return this.yytext.length>this.offset-t+2?(this.appendToken(e,this.offset-t+2),this.unput(this.offset-t+2),this.tok.T_ENCAPSED_AND_WHITESPACE):e}}else if("{"===t){if(t=this.input(),"$"===t)return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN)}else t=this.input();return this.tok.T_ENCAPSED_AND_WHITESPACE},consume_VARIABLE:function(){this.consume_LABEL();const t=this.input();if("["==t)return this.unput(1),this.begin("ST_VAR_OFFSET"),this.tok.T_VARIABLE;if("-"===t){if(">"===this.input())return this.input(),this.is_LABEL_START()&&this.begin("ST_LOOKING_FOR_PROPERTY"),this.unput(3),this.tok.T_VARIABLE;this.unput(2)}else t&&this.unput(1);return this.tok.T_VARIABLE},matchST_BACKQUOTE:function(){let t=this.input();if("$"===t){if(t=this.input(),"{"===t)return this.begin("ST_LOOKING_FOR_VARNAME"),this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){return this.consume_VARIABLE()}}else if("{"===t){if("$"===this._input[this.offset])return this.begin("ST_IN_SCRIPTING"),this.tok.T_CURLY_OPEN}else if("`"===t)return this.popState(),"`";for(;this.offset<this.size;){if("\\"===t)this.input();else{if("`"===t){this.unput(1),this.popState(),this.appendToken("`",1);break}if("$"===t){if(t=this.input(),"{"===t)return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){const t=this.offset,e=this.consume_VARIABLE();return this.yytext.length>this.offset-t+2?(this.appendToken(e,this.offset-t+2),this.unput(this.offset-t+2),this.tok.T_ENCAPSED_AND_WHITESPACE):e}continue}if("{"===t){if(t=this.input(),"$"===t)return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN);continue}}t=this.input()}return this.tok.T_ENCAPSED_AND_WHITESPACE},matchST_DOUBLE_QUOTES:function(){let t=this.input();if("$"===t){if(t=this.input(),"{"===t)return this.begin("ST_LOOKING_FOR_VARNAME"),this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){return this.consume_VARIABLE()}}else if("{"===t){if("$"===this._input[this.offset])return this.begin("ST_IN_SCRIPTING"),this.tok.T_CURLY_OPEN}else if('"'===t)return this.popState(),'"';for(;this.offset<this.size;){if("\\"===t)this.input();else{if('"'===t){this.unput(1),this.popState(),this.appendToken('"',1);break}if("$"===t){if(t=this.input(),"{"===t)return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){const t=this.offset,e=this.consume_VARIABLE();return this.yytext.length>this.offset-t+2?(this.appendToken(e,this.offset-t+2),this.unput(this.offset-t+2),this.tok.T_ENCAPSED_AND_WHITESPACE):e}t&&this.unput(1)}else if("{"===t){if(t=this.input(),"$"===t)return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN);t&&this.unput(1)}}t=this.input()}return this.tok.T_ENCAPSED_AND_WHITESPACE}};d.T_CONSTANT_ENCAPSED_STRING,d.is_HEREDOC,d.ST_DOUBLE_QUOTES,d.isDOC_MATCH,d.prematch_ENDOFDOC,d.matchST_NOWDOC,d.matchST_HEREDOC,d.consume_VARIABLE,d.matchST_BACKQUOTE,d.matchST_DOUBLE_QUOTES;var p={T_STRING:function(){const t=this.yytext.toLowerCase();let e=this.keywords[t];if("number"!=typeof e)if("yield"===t)this.version>=700&&this.tryMatch(" from")?(this.consume(5),e=this.tok.T_YIELD_FROM):e=this.tok.T_YIELD;else if(e=this.tok.T_STRING,"b"===t||"B"===t){const t=this.input();if('"'===t)return this.ST_DOUBLE_QUOTES();if("'"===t)return this.T_CONSTANT_ENCAPSED_STRING();t&&this.unput(1)}if(e===this.tok.T_ENUM){if(this.version<801)return this.tok.T_STRING;const t=this.offset;let e=this.input();for(;" "==e;)e=this.input();let i=!1;if(this.is_LABEL_START()){for(;this.is_LABEL();)e+=this.input();const t=e.slice(0,-1).toLowerCase();i="extends"!==t&&"implements"!==t}return this.unput(this.offset-t),i?this.tok.T_ENUM:this.tok.T_STRING}if(this.offset<this.size&&e!==this.tok.T_YIELD_FROM){let i=this.input();if("\\"===i){e="namespace"===t?this.tok.T_NAME_RELATIVE:this.tok.T_NAME_QUALIFIED;do{if("{"===this._input[this.offset]){this.input();break}this.consume_LABEL(),i=this.input()}while("\\"===i)}i&&this.unput(1)}return e},consume_TOKEN:function(){const t=this._input[this.offset-1],e=this.tokenTerminals[t];return e?e.apply(this,[]):this.yytext},tokenTerminals:{$:function(){return this.offset++,this.is_LABEL_START()?(this.offset--,this.consume_LABEL(),this.tok.T_VARIABLE):(this.offset--,"$")},"-":function(){const t=this._input[this.offset];return">"===t?(this.begin("ST_LOOKING_FOR_PROPERTY").input(),this.tok.T_OBJECT_OPERATOR):"-"===t?(this.input(),this.tok.T_DEC):"="===t?(this.input(),this.tok.T_MINUS_EQUAL):"-"},"\\":function(){if(this.offset<this.size){if(this.input(),this.is_LABEL_START()){let t;do{if("{"===this._input[this.offset]){this.input();break}this.consume_LABEL(),t=this.input()}while("\\"===t);return this.unput(1),this.tok.T_NAME_FULLY_QUALIFIED}this.unput(1)}return this.tok.T_NS_SEPARATOR},"/":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_DIV_EQUAL):"/"},":":function(){return":"===this._input[this.offset]?(this.input(),this.tok.T_DOUBLE_COLON):":"},"(":function(){const t=this.offset;if(this.input(),this.is_TABSPACE()&&this.consume_TABSPACE().input(),this.is_LABEL_START()){const t=this.yytext.length;this.consume_LABEL();const e=this.yytext.substring(t-1).toLowerCase(),i=this.castKeywords[e];if("number"==typeof i&&(this.input(),this.is_TABSPACE()&&this.consume_TABSPACE().input(),")"===this._input[this.offset-1]))return i}return this.unput(this.offset-t),"("},"=":function(){const t=this._input[this.offset];return">"===t?(this.input(),this.tok.T_DOUBLE_ARROW):"="===t?"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_IS_IDENTICAL):(this.input(),this.tok.T_IS_EQUAL):"="},"+":function(){const t=this._input[this.offset];return"+"===t?(this.input(),this.tok.T_INC):"="===t?(this.input(),this.tok.T_PLUS_EQUAL):"+"},"!":function(){return"="===this._input[this.offset]?"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_IS_NOT_IDENTICAL):(this.input(),this.tok.T_IS_NOT_EQUAL):"!"},"?":function(){return this.version>=700&&"?"===this._input[this.offset]?this.version>=704&&"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_COALESCE_EQUAL):(this.input(),this.tok.T_COALESCE):this.version>=800&&"-"===this._input[this.offset]&&">"===this._input[this.offset+1]?(this.consume(2),this.tok.T_NULLSAFE_OBJECT_OPERATOR):"?"},"<":function(){let t=this._input[this.offset];return"<"===t?(t=this._input[this.offset+1],"="===t?(this.consume(2),this.tok.T_SL_EQUAL):"<"===t&&this.is_HEREDOC()?this.tok.T_START_HEREDOC:(this.input(),this.tok.T_SL)):"="===t?(this.input(),this.version>=700&&">"===this._input[this.offset]?(this.input(),this.tok.T_SPACESHIP):this.tok.T_IS_SMALLER_OR_EQUAL):">"===t?(this.input(),this.tok.T_IS_NOT_EQUAL):"<"},">":function(){let t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_IS_GREATER_OR_EQUAL):">"===t?(t=this._input[this.offset+1],"="===t?(this.consume(2),this.tok.T_SR_EQUAL):(this.input(),this.tok.T_SR)):">"},"*":function(){const t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_MUL_EQUAL):"*"===t?(this.input(),"="===this._input[this.offset]?(this.input(),this.tok.T_POW_EQUAL):this.tok.T_POW):"*"},".":function(){const t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_CONCAT_EQUAL):"."===t&&"."===this._input[this.offset+1]?(this.consume(2),this.tok.T_ELLIPSIS):"."},"%":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_MOD_EQUAL):"%"},"&":function(){const t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_AND_EQUAL):"&"===t?(this.input(),this.tok.T_BOOLEAN_AND):"&"},"|":function(){const t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_OR_EQUAL):"|"===t?(this.input(),this.tok.T_BOOLEAN_OR):"|"},"^":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_XOR_EQUAL):"^"}}};p.T_STRING,p.consume_TOKEN,p.tokenTerminals;var f={is_NUM:function(){const t=this._input.charCodeAt(this.offset-1);return t>47&&t<58||95===t},is_NUM_START:function(){const t=this._input.charCodeAt(this.offset-1);return t>47&&t<58},is_LABEL:function(){const t=this._input.charCodeAt(this.offset-1);return t>96&&t<123||t>64&&t<91||95===t||t>47&&t<58||t>126},is_LABEL_START:function(){const t=this._input.charCodeAt(this.offset-1);return t>64&&t<91||(t>96&&t<123||(95===t||t>126))},consume_LABEL:function(){for(;this.offset<this.size;){const t=this.input();if(!this.is_LABEL()){t&&this.unput(1);break}}return this},is_TOKEN:function(){const t=this._input[this.offset-1];return-1!==";:,.\\[]()|^&+-/*=%!~$<>?@".indexOf(t)},is_WHITESPACE:function(){const t=this._input[this.offset-1];return" "===t||"\t"===t||"\n"===t||"\r"===t},is_TABSPACE:function(){const t=this._input[this.offset-1];return" "===t||"\t"===t},consume_TABSPACE:function(){for(;this.offset<this.size;){const t=this.input();if(!this.is_TABSPACE()){t&&this.unput(1);break}}return this},is_HEX:function(){const t=this._input.charCodeAt(this.offset-1);return t>47&&t<58||(t>64&&t<71||(t>96&&t<103||95===t))},is_OCTAL:function(){const t=this._input.charCodeAt(this.offset-1);return t>47&&t<56||95===t}};f.is_NUM,f.is_NUM_START,f.is_LABEL,f.is_LABEL_START,f.consume_LABEL,f.is_TOKEN,f.is_WHITESPACE,f.is_TABSPACE,f.consume_TABSPACE,f.is_HEX,f.is_OCTAL;const k=function(t){this.engine=t,this.tok=this.engine.tokens.names,this.EOF=1,this.debug=!1,this.all_tokens=!0,this.comment_tokens=!1,this.mode_eval=!1,this.asp_tags=!1,this.short_tags=!1,this.version=801,this.yyprevcol=0,this.keywords={__class__:this.tok.T_CLASS_C,__trait__:this.tok.T_TRAIT_C,__function__:this.tok.T_FUNC_C,__method__:this.tok.T_METHOD_C,__line__:this.tok.T_LINE,__file__:this.tok.T_FILE,__dir__:this.tok.T_DIR,__namespace__:this.tok.T_NS_C,exit:this.tok.T_EXIT,die:this.tok.T_EXIT,function:this.tok.T_FUNCTION,const:this.tok.T_CONST,return:this.tok.T_RETURN,try:this.tok.T_TRY,catch:this.tok.T_CATCH,finally:this.tok.T_FINALLY,throw:this.tok.T_THROW,if:this.tok.T_IF,elseif:this.tok.T_ELSEIF,endif:this.tok.T_ENDIF,else:this.tok.T_ELSE,while:this.tok.T_WHILE,endwhile:this.tok.T_ENDWHILE,do:this.tok.T_DO,for:this.tok.T_FOR,endfor:this.tok.T_ENDFOR,foreach:this.tok.T_FOREACH,endforeach:this.tok.T_ENDFOREACH,declare:this.tok.T_DECLARE,enddeclare:this.tok.T_ENDDECLARE,instanceof:this.tok.T_INSTANCEOF,as:this.tok.T_AS,switch:this.tok.T_SWITCH,endswitch:this.tok.T_ENDSWITCH,case:this.tok.T_CASE,default:this.tok.T_DEFAULT,break:this.tok.T_BREAK,continue:this.tok.T_CONTINUE,goto:this.tok.T_GOTO,echo:this.tok.T_ECHO,print:this.tok.T_PRINT,class:this.tok.T_CLASS,interface:this.tok.T_INTERFACE,trait:this.tok.T_TRAIT,enum:this.tok.T_ENUM,extends:this.tok.T_EXTENDS,implements:this.tok.T_IMPLEMENTS,new:this.tok.T_NEW,clone:this.tok.T_CLONE,var:this.tok.T_VAR,eval:this.tok.T_EVAL,include:this.tok.T_INCLUDE,include_once:this.tok.T_INCLUDE_ONCE,require:this.tok.T_REQUIRE,require_once:this.tok.T_REQUIRE_ONCE,namespace:this.tok.T_NAMESPACE,use:this.tok.T_USE,insteadof:this.tok.T_INSTEADOF,global:this.tok.T_GLOBAL,isset:this.tok.T_ISSET,empty:this.tok.T_EMPTY,__halt_compiler:this.tok.T_HALT_COMPILER,static:this.tok.T_STATIC,abstract:this.tok.T_ABSTRACT,final:this.tok.T_FINAL,private:this.tok.T_PRIVATE,protected:this.tok.T_PROTECTED,public:this.tok.T_PUBLIC,unset:this.tok.T_UNSET,list:this.tok.T_LIST,array:this.tok.T_ARRAY,callable:this.tok.T_CALLABLE,or:this.tok.T_LOGICAL_OR,and:this.tok.T_LOGICAL_AND,xor:this.tok.T_LOGICAL_XOR,match:this.tok.T_MATCH,readonly:this.tok.T_READ_ONLY},this.castKeywords={int:this.tok.T_INT_CAST,integer:this.tok.T_INT_CAST,real:this.tok.T_DOUBLE_CAST,double:this.tok.T_DOUBLE_CAST,float:this.tok.T_DOUBLE_CAST,string:this.tok.T_STRING_CAST,binary:this.tok.T_STRING_CAST,array:this.tok.T_ARRAY_CAST,object:this.tok.T_OBJECT_CAST,bool:this.tok.T_BOOL_CAST,boolean:this.tok.T_BOOL_CAST,unset:this.tok.T_UNSET_CAST}};k.prototype.setInput=function(t){return this._input=t,this.size=t.length,this.yylineno=1,this.offset=0,this.yyprevcol=0,this.yytext="",this.yylloc={first_offset:0,first_line:1,first_column:0,prev_offset:0,prev_line:1,prev_column:0,last_line:1,last_column:0},this.tokens=[],this.version>703?this.keywords.fn=this.tok.T_FN:delete this.keywords.fn,this.done=this.offset>=this.size,!this.all_tokens&&this.mode_eval?(this.conditionStack=["INITIAL"],this.begin("ST_IN_SCRIPTING")):(this.conditionStack=[],this.begin("INITIAL")),this.heredoc_label={label:"",length:0,indentation:0,indentation_uses_spaces:!1,finished:!1,first_encaps_node:!1,toString:function(){this.label}},this},k.prototype.input=function(){const t=this._input[this.offset];return t?(this.yytext+=t,this.offset++,"\r"===t&&"\n"===this._input[this.offset]&&(this.yytext+="\n",this.offset++),"\n"===t||"\r"===t?(this.yylloc.last_line=++this.yylineno,this.yyprevcol=this.yylloc.last_column,this.yylloc.last_column=0):this.yylloc.last_column++,t):""},k.prototype.unput=function(t){if(1===t)this.offset--,"\n"===this._input[this.offset]&&"\r"===this._input[this.offset-1]&&(this.offset--,t++),"\r"===this._input[this.offset]||"\n"===this._input[this.offset]?(this.yylloc.last_line--,this.yylineno--,this.yylloc.last_column=this.yyprevcol):this.yylloc.last_column--,this.yytext=this.yytext.substring(0,this.yytext.length-t);else if(t>0)if(this.offset-=t,t<this.yytext.length){this.yytext=this.yytext.substring(0,this.yytext.length-t),this.yylloc.last_line=this.yylloc.first_line,this.yylloc.last_column=this.yyprevcol=this.yylloc.first_column;for(let t=0;t<this.yytext.length;t++){let e=this.yytext[t];"\r"===e?(e=this.yytext[++t],this.yyprevcol=this.yylloc.last_column,this.yylloc.last_line++,this.yylloc.last_column=0,"\n"!==e&&("\r"===e?this.yylloc.last_line++:this.yylloc.last_column++)):"\n"===e?(this.yyprevcol=this.yylloc.last_column,this.yylloc.last_line++,this.yylloc.last_column=0):this.yylloc.last_column++}this.yylineno=this.yylloc.last_line}else this.yytext="",this.yylloc.last_line=this.yylineno=this.yylloc.first_line,this.yylloc.last_column=this.yylloc.first_column;return this},k.prototype.tryMatch=function(t){return t===this.ahead(t.length)},k.prototype.tryMatchCaseless=function(t){return t===this.ahead(t.length).toLowerCase()},k.prototype.ahead=function(t){let e=this._input.substring(this.offset,this.offset+t);return"\r"===e[e.length-1]&&"\n"===this._input[this.offset+t+1]&&(e+="\n"),e},k.prototype.consume=function(t){for(let e=0;e<t;e++){const t=this._input[this.offset];if(!t)break;this.yytext+=t,this.offset++,"\r"===t&&"\n"===this._input[this.offset]&&(this.yytext+="\n",this.offset++,e++),"\n"===t||"\r"===t?(this.yylloc.last_line=++this.yylineno,this.yyprevcol=this.yylloc.last_column,this.yylloc.last_column=0):this.yylloc.last_column++}return this},k.prototype.getState=function(){return{yytext:this.yytext,offset:this.offset,yylineno:this.yylineno,yyprevcol:this.yyprevcol,yylloc:{first_offset:this.yylloc.first_offset,first_line:this.yylloc.first_line,first_column:this.yylloc.first_column,last_line:this.yylloc.last_line,last_column:this.yylloc.last_column},heredoc_label:this.heredoc_label}},k.prototype.setState=function(t){return this.yytext=t.yytext,this.offset=t.offset,this.yylineno=t.yylineno,this.yyprevcol=t.yyprevcol,this.yylloc=t.yylloc,t.heredoc_label&&(this.heredoc_label=t.heredoc_label),this},k.prototype.appendToken=function(t,e){return this.tokens.push([t,e]),this},k.prototype.lex=function(){this.yylloc.prev_offset=this.offset,this.yylloc.prev_line=this.yylloc.last_line,this.yylloc.prev_column=this.yylloc.last_column;let t=this.next()||this.lex();if(!this.all_tokens){for(;t===this.tok.T_WHITESPACE||!this.comment_tokens&&(t===this.tok.T_COMMENT||t===this.tok.T_DOC_COMMENT)||t===this.tok.T_OPEN_TAG;)t=this.next()||this.lex();if(t==this.tok.T_OPEN_TAG_WITH_ECHO)return this.tok.T_ECHO;if(t===this.tok.T_CLOSE_TAG)return";"}return this.yylloc.prev_offset||(this.yylloc.prev_offset=this.yylloc.first_offset,this.yylloc.prev_line=this.yylloc.first_line,this.yylloc.prev_column=this.yylloc.first_column),t},k.prototype.begin=function(t){if(this.conditionStack.push(t),this.curCondition=t,this.stateCb=this["match"+t],"function"!=typeof this.stateCb)throw new Error('Undefined condition state "'+t+'"');return this},k.prototype.popState=function(){const t=this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0];if(this.curCondition=this.conditionStack[this.conditionStack.length-1],this.stateCb=this["match"+this.curCondition],"function"!=typeof this.stateCb)throw new Error('Undefined condition state "'+this.curCondition+'"');return t},k.prototype.next=function(){let t;if(this._input||(this.done=!0),this.yylloc.first_offset=this.offset,this.yylloc.first_line=this.yylloc.last_line,this.yylloc.first_column=this.yylloc.last_column,this.yytext="",this.done)return this.yylloc.prev_offset=this.yylloc.first_offset,this.yylloc.prev_line=this.yylloc.first_line,this.yylloc.prev_column=this.yylloc.first_column,this.EOF;if(this.tokens.length>0?(t=this.tokens.shift(),"object"==typeof t[1]?this.setState(t[1]):this.consume(t[1]),t=t[0]):t=this.stateCb.apply(this,[]),this.offset>=this.size&&0===this.tokens.length&&(this.done=!0),this.debug){let e=t;e="number"==typeof e?this.engine.tokens.values[e]:'"'+e+'"';const i=new Error(e+"\tfrom "+this.yylloc.first_line+","+this.yylloc.first_column+"\t - to "+this.yylloc.last_line+","+this.yylloc.last_column+'\t"'+this.yytext+'"');console.error(i.stack)}return t},[n,r,o,h,a,c,d,p,f].forEach((function(t){for(const e in t)k.prototype[e]=t[e]}));var T=k;var m=function(t,e,i){this.line=t,this.column=e,this.offset=i},x={read_array:function(){let t=null,e=!1;const i=this.node("array");this.token===this.tok.T_ARRAY?(this.next().expect("("),t=")"):(e=!0,t="]");let s=[];return this.next().token!==t&&(s=this.read_array_pair_list(e)),this.expect(t),this.next(),i(e,s)},read_array_pair_list:function(t){const e=this;return this.read_list((function(){return e.read_array_pair(t)}),",",!0)},read_array_pair:function(t){if(!t&&")"===this.token||t&&"]"===this.token)return;if(","===this.token)return this.node("noop")();const e=this.node("entry");let i=null,s=null,n=!1,r=!1;if("&"===this.token)this.next(),n=!0,s=this.read_variable(!0,!1);else if(this.token===this.tok.T_ELLIPSIS&&this.version>=704)this.next(),"&"===this.token&&this.error(),r=!0,s=this.read_expr();else{const t=this.read_expr();this.token===this.tok.T_DOUBLE_ARROW?(this.next(),i=t,"&"===this.token?(this.next(),n=!0,s=this.read_variable(!0,!1)):s=this.read_expr()):s=t}return e(i,s,n,r)}};x.read_array,x.read_array_pair_list,x.read_array_pair;var E={read_class_declaration_statement:function(t){const e=this.node("class"),i=this.read_class_modifiers();if(this.token!==this.tok.T_CLASS)return this.error(this.tok.T_CLASS),this.next(),null;this.next().expect(this.tok.T_STRING);let s=this.node("identifier");const n=this.text();this.next(),s=s(n);const r=this.read_extends_from(),o=this.read_implements_list();this.expect("{");const h=e(s,r,o,this.next().read_class_body(!0,!1),i);return t&&(h.attrGroups=t),h},read_class_modifiers:function(){const t=this.read_class_modifier({readonly:0,final_or_abstract:0});return[0,0,t.final_or_abstract,t.readonly]},read_class_modifier:function(t){return this.token===this.tok.T_READ_ONLY?(this.next(),t.readonly=1,t=this.read_class_modifier(t)):0===t.final_or_abstract&&this.token===this.tok.T_ABSTRACT?(this.next(),t.final_or_abstract=1,t=this.read_class_modifier(t)):0===t.final_or_abstract&&this.token===this.tok.T_FINAL&&(this.next(),t.final_or_abstract=2,t=this.read_class_modifier(t)),t},read_class_body:function(t,e){let i=[],s=[];for(;this.token!==this.EOF&&"}"!==this.token;){if(this.token===this.tok.T_COMMENT){i.push(this.read_comment());continue}if(this.token===this.tok.T_DOC_COMMENT){i.push(this.read_doc_comment());continue}if(this.token===this.tok.T_USE){i=i.concat(this.read_trait_use_statement());continue}if(e&&this.token===this.tok.T_CASE){const t=this.read_enum_case();this.expect(";")&&this.next(),i=i.concat(t);continue}this.token===this.tok.T_ATTRIBUTE&&(s=this.read_attr_list());const n=this.position(),r=this.read_member_flags(!1);if(this.token!==this.tok.T_CONST)if(t&&this.token===this.tok.T_VAR&&(this.next().expect(this.tok.T_VARIABLE),r[0]=null,r[1]=0),this.token===this.tok.T_FUNCTION)i.push(this.read_function(!1,r,s,n)),s=[];else if(t&&(this.token===this.tok.T_VARIABLE||this.version>=801&&this.token===this.tok.T_READ_ONLY||this.version>=704&&("?"===this.token||this.token===this.tok.T_ARRAY||this.token===this.tok.T_CALLABLE||this.token===this.tok.T_NAMESPACE||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_STRING))){const t=this.read_variable_list(r,s);s=[],this.expect(";"),this.next(),i=i.concat(t)}else this.error([this.tok.T_CONST,...t?[this.tok.T_VARIABLE]:[],...e?[this.tok.T_CASE]:[],this.tok.T_FUNCTION]),this.next();else{const t=this.read_constant_list(r,s);this.expect(";")&&this.next(),i=i.concat(t)}}return this.expect("}"),this.next(),i},read_variable_list:function(t,e){const i=this.node("propertystatement"),s=this.read_list((function(){const t=this.node("property");let i=!1;this.token===this.tok.T_READ_ONLY&&(i=!0,this.next());const[s,n]=this.read_optional_type();this.expect(this.tok.T_VARIABLE);let r=this.node("identifier");const o=this.text().substring(1);return this.next(),r=r(o),";"===this.token||","===this.token?t(r,null,i,s,n,e||[]):"="===this.token?t(r,this.next().read_expr(),i,s,n,e||[]):(this.expect([",",";","="]),t(r,null,s,n,e||[]))}),",");return i(null,s,t)},read_constant_list:function(t,e){this.expect(this.tok.T_CONST)&&this.next();const i=this.node("classconstant"),s=this.read_list((function(){const t=this.node("constant");let e=null,i=null;if(this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){e=this.node("identifier");const t=this.text();this.next(),e=e(t)}else this.expect("IDENTIFIER");return this.expect("=")&&(i=this.next().read_expr()),t(e,i)}),",");return i(null,s,t,e||[])},read_member_flags:function(t){const e=[-1,-1,-1];if(this.is("T_MEMBER_FLAGS")){let i=0,s=0;do{switch(this.token){case this.tok.T_PUBLIC:i=0,s=0;break;case this.tok.T_PROTECTED:i=0,s=1;break;case this.tok.T_PRIVATE:i=0,s=2;break;case this.tok.T_STATIC:i=1,s=1;break;case this.tok.T_ABSTRACT:i=2,s=1;break;case this.tok.T_FINAL:i=2,s=2}t&&(0==i&&2==s?(this.expect([this.tok.T_PUBLIC,this.tok.T_PROTECTED]),s=-1):2==i&&1==s&&(this.error(),s=-1)),-1!==e[i]?this.error():-1!==s&&(e[i]=s)}while(this.next().is("T_MEMBER_FLAGS"))}return-1==e[1]&&(e[1]=0),-1==e[2]&&(e[2]=0),e},read_optional_type:function(){let t=!1;"?"===this.token&&(t=!0,this.next());let e=this.read_types();if(t&&!e&&this.raiseError("Expecting a type definition combined with nullable operator"),!t&&!e)return[!1,null];if("|"===this.token){e=[e];do{this.next();const t=this.read_type();if(!t){this.raiseError("Expecting a type definition");break}e.push(t)}while("|"===this.token)}return[t,e]},read_interface_declaration_statement:function(t){const e=this.node("interface");if(this.token!==this.tok.T_INTERFACE)return this.error(this.tok.T_INTERFACE),this.next(),null;this.next().expect(this.tok.T_STRING);let i=this.node("identifier");const s=this.text();this.next(),i=i(s);const n=this.read_interface_extends_list();this.expect("{");return e(i,n,this.next().read_interface_body(),t||[])},read_interface_body:function(){let t=[],e=[];for(;this.token!==this.EOF&&"}"!==this.token;){if(this.token===this.tok.T_COMMENT){t.push(this.read_comment());continue}if(this.token===this.tok.T_DOC_COMMENT){t.push(this.read_doc_comment());continue}const i=this.position();e=this.read_attr_list();const s=this.read_member_flags(!0);if(this.token==this.tok.T_CONST){const i=this.read_constant_list(s,e);this.expect(";")&&this.next(),t=t.concat(i),e=[]}else if(this.token===this.tok.T_FUNCTION){const n=this.read_function_declaration(2,s,e,i);n.parseFlags(s),t.push(n),this.expect(";")&&this.next(),e=[]}else this.error([this.tok.T_CONST,this.tok.T_FUNCTION]),this.next()}return this.expect("}")&&this.next(),t},read_trait_declaration_statement:function(){const t=this.node("trait");if(this.token!==this.tok.T_TRAIT)return this.error(this.tok.T_TRAIT),this.next(),null;this.next().expect(this.tok.T_STRING);let e=this.node("identifier");const i=this.text();this.next(),e=e(i),this.expect("{");return t(e,this.next().read_class_body(!0,!1))},read_trait_use_statement:function(){const t=this.node("traituse");this.expect(this.tok.T_USE)&&this.next();const e=[this.read_namespace_name()];let i=null;for(;","===this.token;)e.push(this.next().read_namespace_name());if("{"===this.token){for(i=[];this.next().token!==this.EOF&&"}"!==this.token;)i.push(this.read_trait_use_alias()),this.expect(";");this.expect("}")&&this.next()}else this.expect(";")&&this.next();return t(e,i)},read_trait_use_alias:function(){const t=this.node();let e,i=null;if(this.is("IDENTIFIER")){e=this.node("identifier");const t=this.text();this.next(),e=e(t)}else if(e=this.read_namespace_name(),this.token===this.tok.T_DOUBLE_COLON)if(this.next(),this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){i=e,e=this.node("identifier");const t=this.text();this.next(),e=e(t)}else this.expect(this.tok.T_STRING);else e=e.name;if(this.token===this.tok.T_INSTEADOF)return t("traitprecedence",i,e,this.next().read_name_list());if(this.token===this.tok.T_AS){let s=null,n=null;if(this.next().is("T_MEMBER_FLAGS")&&(s=this.read_member_flags()),this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){n=this.node("identifier");const t=this.text();this.next(),n=n(t)}else!1===s&&this.expect(this.tok.T_STRING);return t("traitalias",i,e,n,s)}return this.expect([this.tok.T_AS,this.tok.T_INSTEADOF]),t("traitalias",i,e,null,null)}};E.read_class_declaration_statement,E.read_class_modifiers,E.read_class_modifier,E.read_class_body,E.read_variable_list,E.read_constant_list,E.read_member_flags,E.read_optional_type,E.read_interface_declaration_statement,E.read_interface_body,E.read_trait_declaration_statement,E.read_trait_use_statement,E.read_trait_use_alias;var y={read_comment:function(){const t=this.text();let e=this.ast.prepare("/*"===t.substring(0,2)?"commentblock":"commentline",null,this);const i=this.lexer.yylloc.first_offset,s=this.prev;return this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset],this.lex(),e=e(t),e.offset=i,this.prev=s,e},read_doc_comment:function(){let t=this.ast.prepare("commentblock",null,this);const e=this.lexer.yylloc.first_offset,i=this.text(),s=this.prev;return this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset],this.lex(),t=t(i),t.offset=e,this.prev=s,t}};y.read_comment,y.read_doc_comment;var A={read_expr:function(t){const e=this.node();if("@"===this.token)return t||(t=this.next().read_expr()),e("silent",t);if(t||(t=this.read_expr_item()),"|"===this.token)return e("bin","|",t,this.next().read_expr());if("&"===this.token)return e("bin","&",t,this.next().read_expr());if("^"===this.token)return e("bin","^",t,this.next().read_expr());if("."===this.token)return e("bin",".",t,this.next().read_expr());if("+"===this.token)return e("bin","+",t,this.next().read_expr());if("-"===this.token)return e("bin","-",t,this.next().read_expr());if("*"===this.token)return e("bin","*",t,this.next().read_expr());if("/"===this.token)return e("bin","/",t,this.next().read_expr());if("%"===this.token)return e("bin","%",t,this.next().read_expr());if(this.token===this.tok.T_POW)return e("bin","**",t,this.next().read_expr());if(this.token===this.tok.T_SL)return e("bin","<<",t,this.next().read_expr());if(this.token===this.tok.T_SR)return e("bin",">>",t,this.next().read_expr());if(this.token===this.tok.T_BOOLEAN_OR)return e("bin","||",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_OR)return e("bin","or",t,this.next().read_expr());if(this.token===this.tok.T_BOOLEAN_AND)return e("bin","&&",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_AND)return e("bin","and",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_XOR)return e("bin","xor",t,this.next().read_expr());if(this.token===this.tok.T_IS_IDENTICAL)return e("bin","===",t,this.next().read_expr());if(this.token===this.tok.T_IS_NOT_IDENTICAL)return e("bin","!==",t,this.next().read_expr());if(this.token===this.tok.T_IS_EQUAL)return e("bin","==",t,this.next().read_expr());if(this.token===this.tok.T_IS_NOT_EQUAL)return e("bin","!=",t,this.next().read_expr());if("<"===this.token)return e("bin","<",t,this.next().read_expr());if(">"===this.token)return e("bin",">",t,this.next().read_expr());if(this.token===this.tok.T_IS_SMALLER_OR_EQUAL)return e("bin","<=",t,this.next().read_expr());if(this.token===this.tok.T_IS_GREATER_OR_EQUAL)return e("bin",">=",t,this.next().read_expr());if(this.token===this.tok.T_SPACESHIP)return e("bin","<=>",t,this.next().read_expr());if(this.token===this.tok.T_INSTANCEOF&&(t=e("bin","instanceof",t,this.next().read_class_name_reference()),";"!==this.token&&this.token!==this.tok.T_INLINE_HTML&&this.token!==this.EOF&&(t=this.read_expr(t))),this.token===this.tok.T_COALESCE)return e("bin","??",t,this.next().read_expr());if("?"===this.token){let i=null;return":"!==this.next().token&&(i=this.read_expr()),this.expect(":")&&this.next(),e("retif",t,i,this.read_expr())}return e.destroy(t),t},read_expr_cast:function(t){return this.node("cast")(t,this.text(),this.next().read_expr())},read_isset_variable:function(){return this.read_expr()},read_isset_variables:function(){return this.read_function_list(this.read_isset_variable,",")},read_internal_functions_in_yacc:function(){let t=null;switch(this.token){case this.tok.T_ISSET:{t=this.node("isset"),this.next().expect("(")&&this.next();const e=this.read_isset_variables();this.expect(")")&&this.next(),t=t(e)}break;case this.tok.T_EMPTY:{t=this.node("empty"),this.next().expect("(")&&this.next();const e=this.read_expr();this.expect(")")&&this.next(),t=t(e)}break;case this.tok.T_INCLUDE:t=this.node("include")(!1,!1,this.next().read_expr());break;case this.tok.T_INCLUDE_ONCE:t=this.node("include")(!0,!1,this.next().read_expr());break;case this.tok.T_EVAL:{t=this.node("eval"),this.next().expect("(")&&this.next();const e=this.read_expr();this.expect(")")&&this.next(),t=t(e)}break;case this.tok.T_REQUIRE:t=this.node("include")(!1,!0,this.next().read_expr());break;case this.tok.T_REQUIRE_ONCE:t=this.node("include")(!0,!0,this.next().read_expr())}return t},read_optional_expr:function(t){return this.token!==t?this.read_expr():null},read_exit_expr:function(){let t=null;return"("===this.token&&(this.next(),t=this.read_optional_expr(")"),this.expect(")")&&this.next()),t},read_expr_item:function(){let t,e,i=[];if("+"===this.token)return this.node("unary")("+",this.next().read_expr());if("-"===this.token)return this.node("unary")("-",this.next().read_expr());if("!"===this.token)return this.node("unary")("!",this.next().read_expr());if("~"===this.token)return this.node("unary")("~",this.next().read_expr());if("("===this.token)return e=this.next().read_expr(),e.parenthesizedExpression=!0,this.expect(")")&&this.next(),this.handleDereferencable(e);if("`"===this.token)return this.read_encapsed_string("`");if(this.token===this.tok.T_LIST){let e=null;const i=this.innerList;t=this.node("list"),i||(e=this.node("assign")),this.next().expect("(")&&this.next(),this.innerList||(this.innerList=!0);const s=this.read_array_pair_list(!1);this.expect(")")&&this.next();let n=!1;for(let t=0;t<s.length;t++)if(null!==s[t]&&"noop"!==s[t].kind){n=!0;break}return n||this.raiseError("Fatal Error : Cannot use empty list on line "+this.lexer.yylloc.first_line),i?t(s,!1):(this.innerList=!1,this.expect("=")?e(t(s,!1),this.next().read_expr(),"="):t(s,!1))}if(this.token===this.tok.T_ATTRIBUTE&&(i=this.read_attr_list()),this.token===this.tok.T_CLONE)return this.node("clone")(this.next().read_expr());switch(this.token){case this.tok.T_INC:return this.node("pre")("+",this.next().read_variable(!1,!1));case this.tok.T_DEC:return this.node("pre")("-",this.next().read_variable(!1,!1));case this.tok.T_NEW:return this.read_new_expr();case this.tok.T_ISSET:case this.tok.T_EMPTY:case this.tok.T_INCLUDE:case this.tok.T_INCLUDE_ONCE:case this.tok.T_EVAL:case this.tok.T_REQUIRE:case this.tok.T_REQUIRE_ONCE:return this.read_internal_functions_in_yacc();case this.tok.T_MATCH:return this.read_match_expression();case this.tok.T_INT_CAST:return this.read_expr_cast("int");case this.tok.T_DOUBLE_CAST:return this.read_expr_cast("float");case this.tok.T_STRING_CAST:return this.read_expr_cast(-1!==this.text().indexOf("binary")?"binary":"string");case this.tok.T_ARRAY_CAST:return this.read_expr_cast("array");case this.tok.T_OBJECT_CAST:return this.read_expr_cast("object");case this.tok.T_BOOL_CAST:return this.read_expr_cast("bool");case this.tok.T_UNSET_CAST:return this.read_expr_cast("unset");case this.tok.T_THROW:this.version<800&&this.raiseError("PHP 8+ is required to use throw as an expression");return this.node("throw")(this.next().read_expr());case this.tok.T_EXIT:{const e="die"===this.lexer.yytext.toLowerCase();t=this.node("exit"),this.next();return t(this.read_exit_expr(),e)}case this.tok.T_PRINT:return this.node("print")(this.next().read_expr());case this.tok.T_YIELD:{let e=null,i=null;return t=this.node("yield"),this.next().is("EXPR")&&(e=this.read_expr(),this.token===this.tok.T_DOUBLE_ARROW&&(i=e,e=this.next().read_expr())),t(e,i)}case this.tok.T_YIELD_FROM:return t=this.node("yieldfrom"),e=this.next().read_expr(),t(e);case this.tok.T_FN:case this.tok.T_FUNCTION:return this.read_inline_function(void 0,i);case this.tok.T_STATIC:{const t=[this.token,this.lexer.getState()];if(this.next(),this.token===this.tok.T_FUNCTION||this.version>=704&&this.token===this.tok.T_FN)return this.read_inline_function([0,1,0],i);this.lexer.tokens.push(t),this.next()}}if(this.is("VARIABLE")){t=this.node(),e=this.read_variable(!1,!1);const i="identifier"===e.kind||"staticlookup"===e.kind&&"identifier"===e.offset.kind;switch(this.token){case"=":return i&&this.error("VARIABLE"),"&"==this.next().token?this.read_assignref(t,e):t("assign",e,this.read_expr(),"=");case this.tok.T_PLUS_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"+=");case this.tok.T_MINUS_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"-=");case this.tok.T_MUL_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"*=");case this.tok.T_POW_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"**=");case this.tok.T_DIV_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"/=");case this.tok.T_CONCAT_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),".=");case this.tok.T_MOD_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"%=");case this.tok.T_AND_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"&=");case this.tok.T_OR_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"|=");case this.tok.T_XOR_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"^=");case this.tok.T_SL_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"<<=");case this.tok.T_SR_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),">>=");case this.tok.T_COALESCE_EQUAL:return i&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"??=");case this.tok.T_INC:return i&&this.error("VARIABLE"),this.next(),t("post","+",e);case this.tok.T_DEC:return i&&this.error("VARIABLE"),this.next(),t("post","-",e);default:t.destroy(e)}}else{if(this.is("SCALAR")){if(t=this.node(),e=this.read_scalar(),"array"===e.kind&&e.shortForm&&"="===this.token){const i=this.convertToList(e);e.loc&&(i.loc=e.loc);return t("assign",i,this.next().read_expr(),"=")}return t.destroy(e),this.handleDereferencable(e)}this.error("EXPR"),this.next()}return e},convertToList:function(t){const e=t.items.map((t=>(t.value&&"array"===t.value.kind&&t.value.shortForm&&(t.value=this.convertToList(t.value)),t))),i=this.node("list")(e,!0);return t.loc&&(i.loc=t.loc),t.leadingComments&&(i.leadingComments=t.leadingComments),t.trailingComments&&(i.trailingComments=t.trailingComments),i},read_assignref:function(t,e){let i;return this.next(),this.token===this.tok.T_NEW?(this.version>=700&&this.error(),i=this.read_new_expr()):i=this.read_variable(!1,!1),t("assignref",e,i)},read_inline_function:function(t,e){if(this.token===this.tok.T_FUNCTION){const i=this.read_function(!0,t,e);return i.attrGroups=e,i}!this.version>=704&&this.raiseError("Arrow Functions are not allowed");const i=this.node("arrowfunc");this.expect(this.tok.T_FN)&&this.next();const s=this.is_reference();this.expect("(")&&this.next();const n=this.read_parameter_list();this.expect(")")&&this.next();let r=!1,o=null;":"===this.token&&("?"===this.next().token&&(r=!0,this.next()),o=this.read_types()),this.expect(this.tok.T_DOUBLE_ARROW)&&this.next();const h=i(n,s,this.read_expr(),o,r,!!t);return h.attrGroups=e,h},read_match_expression:function(){const t=this.node("match");this.expect(this.tok.T_MATCH)&&this.next(),this.version<800&&this.raiseError("Match statements are not allowed before PHP 8");let e=null,i=[];return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(")")&&this.next(),this.expect("{")&&this.next(),i=this.read_match_arms(),this.expect("}")&&this.next(),t(e,i)},read_match_arms:function(){return this.read_list((()=>this.read_match_arm()),",",!0)},read_match_arm:function(){if("}"!==this.token)return this.node("matcharm")(this.read_match_arm_conds(),this.read_expr())},read_match_arm_conds:function(){let t=[];if(this.token===this.tok.T_DEFAULT)t=null,this.next();else for(t.push(this.read_expr());","===this.token;){if(this.next(),this.token===this.tok.T_DOUBLE_ARROW)return this.next(),t;t.push(this.read_expr())}return this.expect(this.tok.T_DOUBLE_ARROW)&&this.next(),t},read_attribute(){const t=this.text();let e=[];return this.next(),"("===this.token&&(e=this.read_argument_list()),this.node("attribute")(t,e)},read_attr_list(){const t=[];if(this.token===this.tok.T_ATTRIBUTE)do{const e=this.node("attrgroup")([]);for(this.next(),e.attrs.push(this.read_attribute());","===this.token;)this.next(),"]"!==this.token&&e.attrs.push(this.read_attribute());t.push(e),this.expect("]"),this.next()}while(this.token===this.tok.T_ATTRIBUTE);return t},read_new_expr:function(){const t=this.node("new");this.expect(this.tok.T_NEW)&&this.next();let e=[];if("("===this.token){this.next();const i=this.read_expr();return this.expect(")"),this.next(),"("===this.token&&(e=this.read_argument_list()),t(i,e)}const i=this.read_attr_list();if(this.token===this.tok.T_CLASS){const s=this.node("class");"("===this.next().token&&(e=this.read_argument_list());const n=this.read_extends_from(),r=this.read_implements_list();let o=null;this.expect("{")&&(o=this.next().read_class_body(!0,!1));const h=s(null,n,r,o,[0,0,0]);return h.attrGroups=i,t(h,e)}let s=this.read_new_class_name();for(;"["===this.token;){const t=this.node("offsetlookup"),e=this.next().read_encaps_var_offset();this.expect("]")&&this.next(),s=t(s,e)}return"("===this.token&&(e=this.read_argument_list()),t(s,e)},read_new_class_name:function(){if(this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_STRING||this.token===this.tok.T_NAMESPACE){let t=this.read_namespace_name(!0);return this.token===this.tok.T_DOUBLE_COLON&&(t=this.read_static_getter(t)),t}if(this.is("VARIABLE"))return this.read_variable(!0,!1);this.expect([this.tok.T_STRING,"VARIABLE"])},handleDereferencable:function(t){for(;this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR||this.token===this.tok.T_DOUBLE_COLON)t=this.recursive_variable_chain_scan(t,!1,!1,!0);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)t=this.read_dereferencable(t);else{if("("!==this.token)return t;t=this.node("call")(t,this.read_argument_list())}return t}};A.read_expr,A.read_expr_cast,A.read_isset_variable,A.read_isset_variables,A.read_internal_functions_in_yacc,A.read_optional_expr,A.read_exit_expr,A.read_expr_item,A.convertToList,A.read_assignref,A.read_inline_function,A.read_match_expression,A.read_match_arms,A.read_match_arm,A.read_match_arm_conds,A.read_attribute,A.read_attr_list,A.read_new_expr,A.read_new_class_name,A.handleDereferencable;var g={read_enum_declaration_statement:function(t){const e=this.node("enum");if(!this.expect(this.tok.T_ENUM))return null;this.next().expect(this.tok.T_STRING);let i=this.node("identifier");const s=this.text();this.next(),i=i(s);const n=this.read_enum_value_type(),r=this.read_implements_list();this.expect("{");const o=e(i,n,r,this.next().read_class_body(!1,!0));return t&&(o.attrGroups=t),o},read_enum_value_type:function(){return":"===this.token?this.next().read_namespace_name():null},read_enum_case:function(){this.expect(this.tok.T_CASE);const t=this.node("enumcase");let e=this.node("identifier");const i=this.next().text();this.next(),e=e(i);const s="="===this.token?this.next().read_expr():null;return this.expect(";"),t(e,s)}};g.read_enum_declaration_statement,g.read_enum_value_type,g.read_enum_case;var N={is_reference:function(){return"&"===this.token&&(this.next(),!0)},is_variadic:function(){return this.token===this.tok.T_ELLIPSIS&&(this.next(),!0)},read_function:function(t,e,i,s){const n=this.read_function_declaration(t?1:e?2:0,e&&1===e[1],i||[],s);return e&&1==e[2]?(n.parseFlags(e),this.expect(";")&&this.next()):(this.expect("{")&&(n.body=this.read_code_block(!1),n.loc&&n.body.loc&&(n.loc.end=n.body.loc.end)),!t&&e&&n.parseFlags(e)),n},read_function_declaration:function(t,e,i,s){let n="function";1===t?n="closure":2===t&&(n="method");const r=this.node(n);this.expect(this.tok.T_FUNCTION)&&this.next();const o=this.is_reference();let h=!1,a=[],c=null,l=!1;if(1!==t){const e=this.node("identifier");2===t?this.version>=700?this.token===this.tok.T_STRING||this.is("IDENTIFIER")?(h=this.text(),this.next()):this.version<704&&this.error("IDENTIFIER"):this.token===this.tok.T_STRING?(h=this.text(),this.next()):this.error("IDENTIFIER"):this.version>=700?this.token===this.tok.T_STRING?(h=this.text(),this.next()):this.version>=704?this.expect("(")||this.next():(this.error(this.tok.T_STRING),this.next()):(this.expect(this.tok.T_STRING)&&(h=this.text()),this.next()),h=e(h)}this.expect("(")&&this.next();const _=this.read_parameter_list("__construct"===h.name);this.expect(")")&&this.next(),1===t&&(a=this.read_lexical_vars()),":"===this.token&&("?"===this.next().token&&(l=!0,this.next()),c=this.read_types());const u=t=>(t.attrGroups=i||[],s&&t.loc&&(t.loc.start=s,t.loc.source&&(t.loc.source=this.lexer._input.substr(t.loc.start.offset,t.loc.end.offset-t.loc.start.offset))),t);return u(1===t?r(_,o,a,c,l,e):r(h,_,o,c,l))},read_lexical_vars:function(){let t=[];return this.token===this.tok.T_USE&&(this.next(),this.expect("(")&&this.next(),t=this.read_lexical_var_list(),this.expect(")")&&this.next()),t},read_list_with_dangling_comma:function(t){const e=[];for(;this.token!=this.EOF;){if(e.push(t()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}if(this.next(),this.version>=800&&")"===this.token)return e}return e},read_lexical_var_list:function(){return this.read_list_with_dangling_comma(this.read_lexical_var.bind(this))},read_lexical_var:function(){if("&"===this.token)return this.read_byref(this.read_lexical_var.bind(this));const t=this.node("variable");this.expect(this.tok.T_VARIABLE);const e=this.text().substring(1);return this.next(),t(e,!1)},read_parameter_list:function(t){if(")"!==this.token){let e=!1;return this.read_list_with_dangling_comma(function(){const i=this.read_parameter(t);return i&&(e&&this.raiseError("Unexpected parameter after a variadic parameter"),i.variadic&&(e=!0)),i}.bind(this),",")}return[]},read_parameter:function(t){const e=this.node("parameter");let i=null,s=null,n=null,r=!1,o=!1,h=[];this.token===this.tok.T_ATTRIBUTE&&(h=this.read_attr_list()),this.version>=801&&this.token===this.tok.T_READ_ONLY&&(t?(this.next(),o=!0):this.raiseError("readonly properties can be used only on class constructor"));const a=this.read_promoted();!o&&this.version>=801&&this.token===this.tok.T_READ_ONLY&&(t?(this.next(),o=!0):this.raiseError("readonly properties can be used only on class constructor")),"?"===this.token&&(this.next(),r=!0),n=this.read_types(),r&&!n&&this.raiseError("Expecting a type definition combined with nullable operator");const c=this.is_reference(),l=this.is_variadic();if(this.expect(this.tok.T_VARIABLE)){i=this.node("identifier");const t=this.text().substring(1);this.next(),i=i(t)}"="==this.token&&(s=this.next().read_expr());const _=e(i,n,s,c,l,o,r,a);return h&&(_.attrGroups=h),_},read_types(){const t="unset",e="union",i="intersection",s=[];let n=t;const r=this.read_type();if(!r)return null;for(s.push(r);"|"===this.token||this.version>=801&&"&"===this.token;){const r=this.peek();if(r===this.tok.T_ELLIPSIS||r===this.tok.T_VARIABLE)break;n===t?n="|"===this.token?e:i:(n===e&&"|"!==this.token||n===i&&"&"!==this.token)&&this.raiseError('Unexpect token "'+this.token+'", "|" and "&" can not be mixed'),this.next(),s.push(this.read_type())}return 1===s.length?s[0]:n===i?this.node("intersectiontype")(s):this.node("uniontype")(s)},read_promoted(){return this.token===this.tok.T_PUBLIC?(this.next(),1):this.token===this.tok.T_PROTECTED?(this.next(),2):this.token===this.tok.T_PRIVATE?(this.next(),4):0},read_argument_list:function(){let t=[];return this.expect("(")&&this.next(),this.version>=801&&this.token===this.tok.T_ELLIPSIS&&")"===this.peek()?(t.push(this.node("variadicplaceholder")()),this.next()):")"!==this.token&&(t=this.read_non_empty_argument_list()),this.expect(")")&&this.next(),t},read_non_empty_argument_list:function(){let t=!1;return this.read_function_list(function(){const e=this.read_argument();if(e){const i="variadic"===e.kind;t&&!i&&this.raiseError("Unexpected non-variadic argument after a variadic argument"),i&&(t=!0)}return e}.bind(this),",")},read_argument:function(){if(this.token===this.tok.T_ELLIPSIS)return this.node("variadic")(this.next().read_expr());if(this.token===this.tok.T_STRING||Object.values(this.lexer.keywords).includes(this.token)){if(":"===this.peek())return this.version<800&&this.raiseError("PHP 8+ is required to use named arguments"),this.node("namedargument")(this.text(),this.next().next().read_expr())}return this.read_expr()},read_type:function(){const t=this.node();if(this.token===this.tok.T_ARRAY||this.token===this.tok.T_CALLABLE){const e=this.text();return this.next(),t("typereference",e.toLowerCase(),e)}if(this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_STRING||this.token===this.tok.T_STATIC){const e=this.text(),i=[this.token,this.lexer.getState()];return this.next(),this.token!==this.tok.T_NS_SEPARATOR&&this.ast.typereference.types.indexOf(e.toLowerCase())>-1?t("typereference",e.toLowerCase(),e):(this.lexer.tokens.push(i),this.next(),t.destroy(),this.read_namespace_name())}return t.destroy(),null}};N.is_reference,N.is_variadic,N.read_function,N.read_function_declaration,N.read_lexical_vars,N.read_list_with_dangling_comma,N.read_lexical_var_list,N.read_lexical_var,N.read_parameter_list,N.read_parameter,N.read_types,N.read_promoted,N.read_argument_list,N.read_non_empty_argument_list,N.read_argument,N.read_type;var C={read_if:function(){const t=this.node("if"),e=this.next().read_if_expr();let i=null,s=null,n=!1;if(":"===this.token){n=!0,this.next(),i=this.node("block");const t=[];for(;this.token!==this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){s=this.read_elseif_short();break}if(this.token===this.tok.T_ELSE){s=this.read_else_short();break}t.push(this.read_inner_statement())}i=i(null,t),this.expect(this.tok.T_ENDIF)&&this.next(),this.expectEndOfStatement()}else i=this.read_statement(),this.token===this.tok.T_ELSEIF?s=this.read_if():this.token===this.tok.T_ELSE&&(s=this.next().read_statement());return t(e,i,s,n)},read_if_expr:function(){this.expect("(")&&this.next();const t=this.read_expr();return this.expect(")")&&this.next(),t},read_elseif_short:function(){let t=null;const e=this.node("if"),i=this.next().read_if_expr();this.expect(":")&&this.next();const s=this.node("block"),n=[];for(;this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){t=this.read_elseif_short();break}if(this.token===this.tok.T_ELSE){t=this.read_else_short();break}n.push(this.read_inner_statement())}return e(i,s(null,n),t,!0)},read_else_short:function(){this.next().expect(":")&&this.next();const t=this.node("block"),e=[];for(;this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)e.push(this.read_inner_statement());return t(null,e)}};C.read_if,C.read_if_expr,C.read_elseif_short,C.read_else_short;var L={read_while:function(){const t=this.node("while");this.expect(this.tok.T_WHILE)&&this.next();let e=null,i=null,s=!1;return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(")")&&this.next(),":"===this.token?(s=!0,i=this.read_short_form(this.tok.T_ENDWHILE)):i=this.read_statement(),t(e,i,s)},read_do:function(){const t=this.node("do");this.expect(this.tok.T_DO)&&this.next();let e=null,i=null;return i=this.read_statement(),this.expect(this.tok.T_WHILE)&&(this.next().expect("(")&&this.next(),e=this.read_expr(),this.expect(")")&&this.next(),this.expect(";")&&this.next()),t(e,i)},read_for:function(){const t=this.node("for");this.expect(this.tok.T_FOR)&&this.next();let e=[],i=[],s=[],n=null,r=!1;return this.expect("(")&&this.next(),";"!==this.token?(e=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),";"!==this.token?(i=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),")"!==this.token?(s=this.read_list(this.read_expr,","),this.expect(")")&&this.next()):this.next(),":"===this.token?(r=!0,n=this.read_short_form(this.tok.T_ENDFOR)):n=this.read_statement(),t(e,i,s,n,r)},read_foreach:function(){const t=this.node("foreach");this.expect(this.tok.T_FOREACH)&&this.next();let e=null,i=null,s=null,n=null,r=!1;return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(this.tok.T_AS)&&(this.next(),s=this.read_foreach_variable(),this.token===this.tok.T_DOUBLE_ARROW&&(i=s,s=this.next().read_foreach_variable())),i&&"list"===i.kind&&this.raiseError("Fatal Error : Cannot use list as key element"),this.expect(")")&&this.next(),":"===this.token?(r=!0,n=this.read_short_form(this.tok.T_ENDFOREACH)):n=this.read_statement(),t(e,i,s,n,r)},read_foreach_variable:function(){if(this.token===this.tok.T_LIST||"["===this.token){const t="["===this.token,e=this.node("list");this.next(),!t&&this.expect("(")&&this.next();const i=this.read_array_pair_list(t);return this.expect(t?"]":")")&&this.next(),e(i,t)}return this.read_variable(!1,!1)}};L.read_while,L.read_do,L.read_for,L.read_foreach,L.read_foreach_variable;var b={read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}};b.read_start;var I={read_namespace:function(){const t=this.node("namespace");let e,i;return this.expect(this.tok.T_NAMESPACE)&&this.next(),i="{"===this.token?{name:[""]}:this.read_namespace_name(),this.currentNamespace=i,";"===this.token?(this.currentNamespace=i,e=this.next().read_top_statements(),this.expect(this.EOF),t(i.name,e,!1)):"{"===this.token?(this.currentNamespace=i,e=this.next().read_top_statements(),this.expect("}")&&this.next(),0===e.length&&this.extractDoc&&this._docs.length>this._docIndex&&e.push(this.node("noop")()),t(i.name,e,!0)):(this.error(["{",";"]),this.currentNamespace=i,e=this.read_top_statements(),this.expect(this.EOF),t(i,e,!1))},read_namespace_name:function(t){const e=this.node();let i,s=this.text();switch(this.token){case this.tok.T_NAME_RELATIVE:i=this.ast.name.RELATIVE_NAME,s=s.replace(/^namespace\\/,"");break;case this.tok.T_NAME_QUALIFIED:i=this.ast.name.QUALIFIED_NAME;break;case this.tok.T_NAME_FULLY_QUALIFIED:i=this.ast.name.FULL_QUALIFIED_NAME;break;default:if(i=this.ast.name.UNQUALIFIED_NAME,!this.expect(this.tok.T_STRING))return e("name","",this.ast.name.FULL_QUALIFIED_NAME)}if(this.next(),t||"("!==this.token){if("parent"===s.toLowerCase())return e("parentreference",s);if("self"===s.toLowerCase())return e("selfreference",s)}return e("name",s,i)},read_use_statement:function(){let t=this.node("usegroup"),e=[],i=null;this.expect(this.tok.T_USE)&&this.next();const s=this.read_use_type();return e.push(this.read_use_declaration(!1)),","===this.token?e=e.concat(this.next().read_use_declarations(!1)):"{"===this.token&&(i=e[0].name,e=this.next().read_use_declarations(null===s),this.expect("}")&&this.next()),t=t(i,s,e),this.expect(";")&&this.next(),t},read_class_name_reference:function(){return this.read_variable(!0,!1)},read_use_declaration:function(t){const e=this.node("useitem");let i=null;t&&(i=this.read_use_type());const s=this.read_namespace_name(),n=this.read_use_alias();return e(s.name,n,i)},read_use_declarations:function(t){const e=[this.read_use_declaration(t)];for(;","===this.token;){if(this.next(),t){if(this.token!==this.tok.T_NAME_RELATIVE&&this.token!==this.tok.T_NAME_QUALIFIED&&this.token!==this.tok.T_NAME_FULLY_QUALIFIED&&this.token!==this.tok.T_FUNCTION&&this.token!==this.tok.T_CONST&&this.token!==this.tok.T_STRING)break}else if(this.token!==this.tok.T_NAME_RELATIVE&&this.token!==this.tok.T_NAME_QUALIFIED&&this.token!==this.tok.T_NAME_FULLY_QUALIFIED&&this.token!==this.tok.T_STRING&&this.token!==this.tok.T_NS_SEPARATOR)break;e.push(this.read_use_declaration(t))}return e},read_use_alias:function(){let t=null;if(this.token===this.tok.T_AS&&this.next().expect(this.tok.T_STRING)){const e=this.node("identifier"),i=this.text();this.next(),t=e(i)}return t},read_use_type:function(){return this.token===this.tok.T_FUNCTION?(this.next(),this.ast.useitem.TYPE_FUNCTION):this.token===this.tok.T_CONST?(this.next(),this.ast.useitem.TYPE_CONST):null}};I.read_namespace,I.read_namespace_name,I.read_use_statement,I.read_class_name_reference,I.read_use_declaration,I.read_use_declarations,I.read_use_alias,I.read_use_type;const S={"\\":"\\",$:"$",n:"\n",r:"\r",t:"\t",f:String.fromCharCode(12),v:String.fromCharCode(11),e:String.fromCharCode(27)};var O={resolve_special_chars:function(t,e){return e?t.replace(/\\"/,'"').replace(/\\([\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u{([0-9a-fA-F]+)})/g,((t,e,i)=>S[e]?S[e]:"x"===e[0]||"X"===e[0]?String.fromCodePoint(parseInt(e.substr(1),16)):"u"===e[0]?String.fromCodePoint(parseInt(i,16)):String.fromCodePoint(parseInt(e,8)))):t.replace(/\\\\/g,"\\").replace(/\\'/g,"'")},remove_heredoc_leading_whitespace_chars:function(t,e,i,s){if(0===e)return t;this.check_heredoc_indentation_level(t,e,i,s);const n=i?" ":"\t",r=new RegExp("\\n".concat(n,"{").concat(e,"}"),"g"),o=new RegExp("^".concat(n,"{").concat(e,"}"));return s&&(t=t.replace(o,"")),t.replace(r,"\n")},check_heredoc_indentation_level:function(t,e,i,s){const n=t.length;let r=0,o=0,h=!0;const a=i?" ":"\t";let c=!1;if(!s){if(r=t.indexOf("\n"),-1===r)return;r++}for(;r<n;)h?t[r]===a?o++:c=!0:h=!1,"\n"!==t[r]&&c&&o<e?this.raiseError("Invalid body indentation level (expecting an indentation at least ".concat(e,")")):c=!1,"\n"===t[r]&&(h=!0,o=0),r++},read_dereferencable_scalar:function(){let t=null;switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:{let e=this.node("string");const i=this.text();let s=0;"b"!==i[0]&&"B"!==i[0]||(s=1);const n='"'===i[s];this.next();e=e(n,this.resolve_special_chars(i.substring(s+1,i.length-1),n),1===s,i),t=this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(e):e}break;case this.tok.T_ARRAY:case"[":t=this.read_array()}return t},read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();{let t,e;switch(this.token){case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:{const e=this.node("number");return t=this.text(),this.next(),e(t,null)}case this.tok.T_START_HEREDOC:if("ST_NOWDOC"===this.lexer.curCondition){const i=this.lexer.yylloc.first_offset;e=this.node("nowdoc"),t=this.next().text(),this.lexer.heredoc_label.indentation>0&&(t=t.substring(0,t.length-this.lexer.heredoc_label.indentation));const s=t[t.length-1];"\n"===s?t="\r"===t[t.length-2]?t.substring(0,t.length-2):t.substring(0,t.length-1):"\r"===s&&(t=t.substring(0,t.length-1)),this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE)&&this.next(),this.expect(this.tok.T_END_HEREDOC)&&this.next();const n=this.lexer._input.substring(i,this.lexer.yylloc.first_offset);return e=e(this.remove_heredoc_leading_whitespace_chars(t,this.lexer.heredoc_label.indentation,this.lexer.heredoc_label.indentation_uses_spaces,this.lexer.heredoc_label.first_encaps_node),n,this.lexer.heredoc_label.label),this.lexer.heredoc_label.finished=!0,e}return this.read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.read_encapsed_string('"');case'b"':case'B"':return this.read_encapsed_string('"',!0);case this.tok.T_CONSTANT_ENCAPSED_STRING:case this.tok.T_ARRAY:case"[":return this.read_dereferencable_scalar();default:{const t=this.error("SCALAR");return this.next(),t}}}},read_dereferencable:function(t){let e,i;const s=this.node("offsetlookup");return"["===this.token?(i=this.next().read_expr(),this.expect("]")&&this.next(),e=s(t,i)):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES&&(i=this.read_encapsed_string_item(!1),e=s(t,i)),e},read_encapsed_string_item:function(t){const e=this.node("encapsedpart");let i,s,n,r=null,o=!1,h=this.node();if(this.token===this.tok.T_ENCAPSED_AND_WHITESPACE){const e=this.text();this.next(),h=h("string",!1,this.version>=703&&!this.lexer.heredoc_label.finished?this.remove_heredoc_leading_whitespace_chars(this.resolve_special_chars(e,t),this.lexer.heredoc_label.indentation,this.lexer.heredoc_label.indentation_uses_spaces,this.lexer.heredoc_label.first_encaps_node):e,!1,e)}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){if(r="simple",o=!0,n=null,this.next().token===this.tok.T_STRING_VARNAME){n=this.node("variable");const t=this.text();this.next(),h.destroy(),"["===this.token?(n=n(t,!1),s=this.node("offsetlookup"),i=this.next().read_expr(),this.expect("]")&&this.next(),h=s(n,i)):h=n(t,!1)}else h=h("variable",this.read_expr(),!1);this.expect("}")&&this.next()}else if(this.token===this.tok.T_CURLY_OPEN)r="complex",h.destroy(),h=this.next().read_variable(!1,!1),this.expect("}")&&this.next();else if(this.token===this.tok.T_VARIABLE){if(r="simple",h.destroy(),h=this.read_simple_variable(),"["===this.token&&(s=this.node("offsetlookup"),i=this.next().read_encaps_var_offset(),this.expect("]")&&this.next(),h=s(h,i)),this.token===this.tok.T_OBJECT_OPERATOR){s=this.node("propertylookup"),this.next().expect(this.tok.T_STRING);const t=this.node("identifier");n=this.text(),this.next(),h=s(h,t(n))}}else{this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE);const t=this.text();this.next(),h.destroy(),h=h("string",!1,t,!1,t)}return this.lexer.heredoc_label.first_encaps_node=!1,e(h,r,o)},read_encapsed_string:function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=this.lexer.yylloc.first_offset;let s=this.node("encapsed");this.next();const n=this.lexer.yylloc.prev_offset-(e?1:0),r=[];let o=null;for(o="`"===t?this.ast.encapsed.TYPE_SHELL:'"'===t?this.ast.encapsed.TYPE_STRING:this.ast.encapsed.TYPE_HEREDOC;this.token!==t&&this.token!==this.EOF;)r.push(this.read_encapsed_string_item(!0));if(r.length>0&&"encapsedpart"===r[r.length-1].kind&&"string"===r[r.length-1].expression.kind){const t=r[r.length-1].expression,e=t.value[t.value.length-1];"\n"===e?"\r"===t.value[t.value.length-2]?t.value=t.value.substring(0,t.value.length-2):t.value=t.value.substring(0,t.value.length-1):"\r"===e&&(t.value=t.value.substring(0,t.value.length-1))}this.expect(t)&&this.next();const h=this.lexer._input.substring("heredoc"===o?i:n-1,this.lexer.yylloc.first_offset);return s=s(r,h,o),t===this.tok.T_END_HEREDOC&&(s.label=this.lexer.heredoc_label.label,this.lexer.heredoc_label.finished=!0),s},get_magic_constant:function(){const t=this.node("magic"),e=this.text();return this.next(),t(e.toUpperCase(),e)}};O.resolve_special_chars,O.remove_heredoc_leading_whitespace_chars,O.check_heredoc_indentation_level,O.read_dereferencable_scalar,O.read_scalar,O.read_dereferencable,O.read_encapsed_string_item,O.read_encapsed_string,O.get_magic_constant;var v={read_top_statements:function(){let t=[];for(;this.token!==this.EOF&&"}"!==this.token;){const e=this.read_top_statement();e&&(Array.isArray(e)?t=t.concat(e):t.push(e))}return t},read_top_statement:function(){let t=[];switch(this.token===this.tok.T_ATTRIBUTE&&(t=this.read_attr_list()),this.token){case this.tok.T_FUNCTION:return this.read_function(!1,!1,t);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:case this.tok.T_READ_ONLY:case this.tok.T_CLASS:return this.read_class_declaration_statement(t);case this.tok.T_INTERFACE:return this.read_interface_declaration_statement(t);case this.tok.T_TRAIT:return this.read_trait_declaration_statement();case this.tok.T_ENUM:return this.read_enum_declaration_statement(t);case this.tok.T_USE:return this.read_use_statement();case this.tok.T_CONST:{const t=this.node("constantstatement"),e=this.next().read_const_list();return this.expectEndOfStatement(),t(null,e)}case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:{const t=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),this.expect(";"),this.lexer.done=!0,t(this.lexer._input.substring(this.lexer.offset))}default:return this.read_statement()}},read_inner_statements:function(){let t=[];for(;this.token!=this.EOF&&"}"!==this.token;){const e=this.read_inner_statement();e&&(Array.isArray(e)?t=t.concat(e):t.push(e))}return t},read_const_list:function(){return this.read_list((function(){this.expect(this.tok.T_STRING);const t=this.node("constant");let e=this.node("identifier");const i=this.text();return this.next(),e=e(i),this.expect("=")?t(e,this.next().read_expr()):t(e,null)}),",",!1)},read_declare_list:function(){const t=[];for(;this.token!=this.EOF&&")"!==this.token;){this.expect(this.tok.T_STRING);const e=this.node("declaredirective");let i=this.node("identifier");const s=this.text();this.next(),i=i(s);let n=null;if(this.expect("=")&&(n=this.next().read_expr()),t.push(e(i,n)),","!==this.token)break;this.next()}return t},read_inner_statement:function(){let t=[];switch(this.token===this.tok.T_ATTRIBUTE&&(t=this.read_attr_list()),this.token){case this.tok.T_FUNCTION:{const e=this.read_function(!1,!1);return e.attrGroups=t,e}case this.tok.T_ABSTRACT:case this.tok.T_FINAL:case this.tok.T_CLASS:return this.read_class_declaration_statement();case this.tok.T_INTERFACE:return this.read_interface_declaration_statement();case this.tok.T_TRAIT:return this.read_trait_declaration_statement();case this.tok.T_ENUM:return this.read_enum_declaration_statement();case this.tok.T_HALT_COMPILER:{this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");let t=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),t=t(this.lexer._input.substring(this.lexer.offset)),this.expect(";")&&this.next(),t}default:return this.read_statement()}},read_statement:function(){switch(this.token){case"{":return this.read_code_block(!1);case this.tok.T_IF:return this.read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.read_for();case this.tok.T_FOREACH:return this.read_foreach();case this.tok.T_WHILE:return this.read_while();case this.tok.T_DO:return this.read_do();case this.tok.T_COMMENT:return this.read_comment();case this.tok.T_DOC_COMMENT:return this.read_doc_comment();case this.tok.T_RETURN:{const t=this.node("return");this.next();const e=this.read_optional_expr(";");return this.expectEndOfStatement(),t(e)}case this.tok.T_BREAK:case this.tok.T_CONTINUE:{const t=this.node(this.token===this.tok.T_CONTINUE?"continue":"break");this.next();const e=this.read_optional_expr(";");return this.expectEndOfStatement(),t(e)}case this.tok.T_GLOBAL:{const t=this.node("global"),e=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),t(e)}case this.tok.T_STATIC:{const t=[this.token,this.lexer.getState()],e=this.node();if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(t);const i=this.next().read_expr();return this.expectEndOfStatement(i),e("expressionstatement",i)}if(this.token===this.tok.T_FUNCTION)return this.read_function(!0,[0,1,0]);const i=this.read_variable_declarations();return this.expectEndOfStatement(),e("static",i)}case this.tok.T_ECHO:{const t=this.node("echo"),e=this.text(),i="<?="===e||"<%="===e,s=this.next().read_function_list(this.read_expr,",");return this.expectEndOfStatement(),t(s,i)}case this.tok.T_INLINE_HTML:{const t=this.text();let e=this.lexer.yylloc.first_offset>0?this.lexer._input[this.lexer.yylloc.first_offset-1]:null;const i="\r"===e||"\n"===e;i&&"\n"===e&&this.lexer.yylloc.first_offset>1&&"\r"===this.lexer._input[this.lexer.yylloc.first_offset-2]&&(e="\r\n");const s=this.node("inline");return this.next(),s(t,i?e+t:t)}case this.tok.T_UNSET:{const t=this.node("unset");this.next().expect("(")&&this.next();const e=this.read_function_list(this.read_variable,",");return this.expect(")")&&this.next(),this.expect(";")&&this.next(),t(e)}case this.tok.T_DECLARE:{const t=this.node("declare"),e=[];let i;this.next().expect("(")&&this.next();const s=this.read_declare_list();if(this.expect(")")&&this.next(),":"===this.token){for(this.next();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)e.push(this.read_top_statement());0===e.length&&this.extractDoc&&this._docs.length>this._docIndex&&e.push(this.node("noop")()),this.expect(this.tok.T_ENDDECLARE)&&this.next(),this.expectEndOfStatement(),i=this.ast.declare.MODE_SHORT}else if("{"===this.token){for(this.next();this.token!=this.EOF&&"}"!==this.token;)e.push(this.read_top_statement());0===e.length&&this.extractDoc&&this._docs.length>this._docIndex&&e.push(this.node("noop")()),this.expect("}")&&this.next(),i=this.ast.declare.MODE_BLOCK}else this.expect(";")&&this.next(),i=this.ast.declare.MODE_NONE;return t(s,e,i)}case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:{const t=this.node("throw"),e=this.next().read_expr();return this.expectEndOfStatement(),t(e)}case";":return this.next(),null;case this.tok.T_STRING:{const t=this.node(),e=[this.token,this.lexer.getState()],i=this.text();let s=this.node("identifier");if(":"===this.next().token)return s=s(i),this.next(),t("label",s);s.destroy(),t.destroy(),this.lexer.tokens.push(e);const n=this.node("expressionstatement"),r=this.next().read_expr();return this.expectEndOfStatement(r),n(r)}case this.tok.T_GOTO:{const t=this.node("goto");let e=null;if(this.next().expect(this.tok.T_STRING)){e=this.node("identifier");const t=this.text();this.next(),e=e(t),this.expectEndOfStatement()}return t(e)}default:{const t=this.node("expressionstatement"),e=this.read_expr();return this.expectEndOfStatement(e),t(e)}}},read_code_block:function(t){const e=this.node("block");this.expect("{")&&this.next();const i=t?this.read_top_statements():this.read_inner_statements();return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect("}")&&this.next(),e(null,i)}};v.read_top_statements,v.read_top_statement,v.read_inner_statements,v.read_const_list,v.read_declare_list,v.read_inner_statement,v.read_statement,v.read_code_block;var R={read_switch:function(){const t=this.node("switch");this.expect(this.tok.T_SWITCH)&&this.next(),this.expect("(")&&this.next();const e=this.read_expr();this.expect(")")&&this.next();const i=":"===this.token;return t(e,this.read_switch_case_list(),i)},read_switch_case_list:function(){let t=null;const e=this.node("block"),i=[];for("{"===this.token?t="}":":"===this.token?t=this.tok.T_ENDSWITCH:this.expect(["{",":"]),this.next(),";"===this.token&&this.next();this.token!==this.EOF&&this.token!==t;)i.push(this.read_case_list(t));return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect(t)&&this.next(),t===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),e(null,i)},read_case_list:function(t){const e=this.node("case");let i=null;this.token===this.tok.T_CASE?i=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]),this.expect([":",";"])&&this.next();const s=this.node("block"),n=[];for(;this.token!==this.EOF&&this.token!==t&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)n.push(this.read_inner_statement());return e(i,s(null,n))}};R.read_switch,R.read_switch_case_list,R.read_case_list;var w={read_try:function(){this.expect(this.tok.T_TRY);const t=this.node("try");let e=null;const i=[],s=this.next().read_statement();for(;this.token===this.tok.T_CATCH;){const t=this.node("catch");this.next().expect("(")&&this.next();const e=this.read_list(this.read_namespace_name,"|",!1);let s=null;(this.version<800||this.token===this.tok.T_VARIABLE)&&(s=this.read_variable(!0,!1)),this.expect(")"),i.push(t(this.next().read_statement(),e,s))}return this.token===this.tok.T_FINALLY&&(e=this.next().read_statement()),t(s,i,e)}};w.read_try;var D={read_short_form:function(t){const e=this.node("block"),i=[];for(this.expect(":")&&this.next();this.token!=this.EOF&&this.token!==t;)i.push(this.read_inner_statement());return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect(t)&&this.next(),this.expectEndOfStatement(),e(null,i)},read_function_list:function(t,e){const i=[];do{if(this.token==e&&this.version>=703&&i.length>0){i.push(this.node("noop")());break}if(i.push(t.apply(this,[])),this.token!=e)break;if(")"==this.next().token&&this.version>=703)break}while(this.token!=this.EOF);return i},read_list:function(t,e,i){const s=[];if(this.token==e&&(i&&s.push("function"==typeof t?this.node("noop")():null),this.next()),"function"==typeof t)do{const i=t.apply(this,[]);if(i&&s.push(i),this.token!=e)break}while(this.next().token!=this.EOF);else{if(!this.expect(t))return[];for(s.push(this.text());this.next().token!=this.EOF&&this.token==e&&this.next().token==t;)s.push(this.text())}return s},read_name_list:function(){return this.read_list(this.read_namespace_name,",",!1)},read_byref:function(t){let e=this.node("byref");this.next(),e=e(null);const i=t();return i&&(this.ast.swapLocations(i,e,i,this),i.byref=!0),i},read_variable_declarations:function(){return this.read_list((function(){const t=this.node("staticvariable");let e=this.node("variable");if(this.expect(this.tok.T_VARIABLE)){const t=this.text().substring(1);this.next(),e=e(t,!1)}else e=e("#ERR",!1);return"="===this.token?t(e,this.next().read_expr()):e}),",")},read_extends_from:function(){return this.token===this.tok.T_EXTENDS?this.next().read_namespace_name():null},read_interface_extends_list:function(){return this.token===this.tok.T_EXTENDS?this.next().read_name_list():null},read_implements_list:function(){return this.token===this.tok.T_IMPLEMENTS?this.next().read_name_list():null}};D.read_short_form,D.read_function_list,D.read_list,D.read_name_list,D.read_byref,D.read_variable_declarations,D.read_extends_from,D.read_interface_extends_list,D.read_implements_list;var P={read_variable:function(t,e){let i;if("&"===this.token)return this.read_byref(this.read_variable.bind(this,t,e));if(this.is([this.tok.T_VARIABLE,"$"]))i=this.read_reference_variable(e);else if(this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_NAMESPACE])){i=this.node();const t=this.read_namespace_name();if(this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token&&-1===["parentreference","selfreference"].indexOf(t.kind)){const e=t.name.toLowerCase();"true"===e?i=t.destroy(i("boolean",!0,t.name)):"false"===e?i=t.destroy(i("boolean",!1,t.name)):"null"===e?i=t.destroy(i("nullkeyword",t.name)):(i.destroy(t),i=t)}else i.destroy(t),i=t}else if(this.token===this.tok.T_STATIC){i=this.node("staticreference");const t=this.text();this.next(),i=i(t)}else this.expect("VARIABLE");return this.token===this.tok.T_DOUBLE_COLON&&(i=this.read_static_getter(i,e)),this.recursive_variable_chain_scan(i,t,e)},read_static_getter:function(t,e){const i=this.node("staticlookup");let s,n;return this.next().is([this.tok.T_VARIABLE,"$"])?s=this.read_reference_variable(e):this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS||this.version>=700&&this.is("IDENTIFIER")?(s=this.node("identifier"),n=this.text(),this.next(),s=s(n)):"{"===this.token?(s=this.node("literal"),n=this.next().read_expr(),this.expect("}")&&this.next(),s=s("literal",n,null),this.expect("(")):(this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),s=this.node("identifier"),n=this.text(),this.next(),s=s(n)),i(t,s)},read_what:function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=null,i=null;switch(this.next().token){case this.tok.T_STRING:e=this.node("identifier"),i=this.text(),this.next(),e=e(i),t&&this.token===this.tok.T_OBJECT_OPERATOR&&this.error();break;case this.tok.T_VARIABLE:e=this.node("variable"),i=this.text().substring(1),this.next(),e=e(i,!1);break;case"$":e=this.node(),this.next().expect(["$","{",this.tok.T_VARIABLE]),"{"===this.token?(i=this.next().read_expr(),this.expect("}")&&this.next(),e=e("variable",i,!0)):(i=this.read_expr(),e=e("variable",i,!1));break;case"{":e=this.node("encapsedpart"),i=this.next().read_expr(),this.expect("}")&&this.next(),e=e(i,"complex",!1);break;default:this.error([this.tok.T_STRING,this.tok.T_VARIABLE,"$","{"]),e=this.node("identifier"),i=this.text(),this.next(),e=e(i)}return e},recursive_variable_chain_scan:function(t,e,i){let s,n;t:for(;this.token!=this.EOF;)switch(this.token){case"(":if(e)return t;t=this.node("call")(t,this.read_argument_list());break;case"[":case"{":{const e="["===this.token;if(s=this.node("offsetlookup"),this.next(),n=!1,i)n=this.read_encaps_var_offset(),this.expect(e?"]":"}")&&this.next();else{(e?"]"!==this.token:"}"!==this.token)?(n=this.read_expr(),this.expect(e?"]":"}")&&this.next()):this.next()}t=s(t,n);break}case this.tok.T_DOUBLE_COLON:"staticlookup"===t.kind&&"identifier"===t.offset.kind&&this.error(),s=this.node("staticlookup"),t=s(t,this.read_what(!0));break;case this.tok.T_OBJECT_OPERATOR:s=this.node("propertylookup"),t=s(t,this.read_what());break;case this.tok.T_NULLSAFE_OBJECT_OPERATOR:s=this.node("nullsafepropertylookup"),t=s(t,this.read_what());break;default:break t}return t},read_encaps_var_offset:function(){let t=this.node();if(this.token===this.tok.T_STRING){const e=this.text();this.next(),t=t("identifier",e)}else if(this.token===this.tok.T_NUM_STRING){const e=this.text();this.next(),t=t("number",e,null)}else if("-"===this.token){this.next();const e=-1*this.text();this.expect(this.tok.T_NUM_STRING)&&this.next(),t=t("number",e,null)}else if(this.token===this.tok.T_VARIABLE){const e=this.text().substring(1);this.next(),t=t("variable",e,!1)}else{this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,"-",this.tok.T_VARIABLE]);const e=this.text();this.next(),t=t("identifier",e)}return t},read_reference_variable:function(t){let e,i=this.read_simple_variable();for(;this.token!=this.EOF;){const s=this.node();if("{"!=this.token||t){s.destroy();break}e=this.next().read_expr(),this.expect("}")&&this.next(),i=s("offsetlookup",i,e)}return i},read_simple_variable:function(){let t,e=this.node("variable");if(this.expect([this.tok.T_VARIABLE,"$"])&&this.token===this.tok.T_VARIABLE)t=this.text().substring(1),this.next(),e=e(t,!1);else switch("$"===this.token&&this.next(),this.token){case"{":{const t=this.next().read_expr();this.expect("}")&&this.next(),e=e(t,!0);break}case"$":e=e(this.read_simple_variable(),!1);break;case this.tok.T_VARIABLE:{t=this.text().substring(1);const i=this.node("variable");this.next(),e=e(i(t,!1),!1);break}default:this.error(["{","$",this.tok.T_VARIABLE]),t=this.text(),this.next(),e=e(t,!1)}return e}};function U(t){return"."!=t&&","!=t&&!isNaN(parseFloat(t))&&isFinite(t)}P.read_variable,P.read_static_getter,P.read_what,P.recursive_variable_chain_scan,P.read_encaps_var_offset,P.read_reference_variable,P.read_simple_variable;const M=function(t,e){this.lexer=t,this.ast=e,this.tok=t.tok,this.EOF=t.EOF,this.token=null,this.prev=null,this.debug=!1,this.version=801,this.extractDoc=!1,this.extractTokens=!1,this.suppressErrors=!1;const i=function(t){return[t,null]};this.entries={IDENTIFIER:new Map([this.tok.T_ABSTRACT,this.tok.T_ARRAY,this.tok.T_AS,this.tok.T_BREAK,this.tok.T_CALLABLE,this.tok.T_CASE,this.tok.T_CATCH,this.tok.T_CLASS,this.tok.T_CLASS_C,this.tok.T_CLONE,this.tok.T_CONST,this.tok.T_CONTINUE,this.tok.T_DECLARE,this.tok.T_DEFAULT,this.tok.T_DIR,this.tok.T_DO,this.tok.T_ECHO,this.tok.T_ELSE,this.tok.T_ELSEIF,this.tok.T_EMPTY,this.tok.T_ENDDECLARE,this.tok.T_ENDFOR,this.tok.T_ENDFOREACH,this.tok.T_ENDIF,this.tok.T_ENDSWITCH,this.tok.T_ENDWHILE,this.tok.T_ENUM,this.tok.T_EVAL,this.tok.T_EXIT,this.tok.T_EXTENDS,this.tok.T_FILE,this.tok.T_FINAL,this.tok.T_FINALLY,this.tok.T_FN,this.tok.T_FOR,this.tok.T_FOREACH,this.tok.T_FUNC_C,this.tok.T_FUNCTION,this.tok.T_GLOBAL,this.tok.T_GOTO,this.tok.T_IF,this.tok.T_IMPLEMENTS,this.tok.T_INCLUDE,this.tok.T_INCLUDE_ONCE,this.tok.T_INSTANCEOF,this.tok.T_INSTEADOF,this.tok.T_INTERFACE,this.tok.T_ISSET,this.tok.T_LINE,this.tok.T_LIST,this.tok.T_LOGICAL_AND,this.tok.T_LOGICAL_OR,this.tok.T_LOGICAL_XOR,this.tok.T_MATCH,this.tok.T_METHOD_C,this.tok.T_NAMESPACE,this.tok.T_NEW,this.tok.T_NS_C,this.tok.T_PRINT,this.tok.T_PRIVATE,this.tok.T_PROTECTED,this.tok.T_PUBLIC,this.tok.T_READ_ONLY,this.tok.T_REQUIRE,this.tok.T_REQUIRE_ONCE,this.tok.T_RETURN,this.tok.T_STATIC,this.tok.T_SWITCH,this.tok.T_THROW,this.tok.T_TRAIT,this.tok.T_TRY,this.tok.T_UNSET,this.tok.T_USE,this.tok.T_VAR,this.tok.T_WHILE,this.tok.T_YIELD].map(i)),VARIABLE:new Map([this.tok.T_VARIABLE,"$","&",this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_NAMESPACE,this.tok.T_STATIC].map(i)),SCALAR:new Map([this.tok.T_CONSTANT_ENCAPSED_STRING,this.tok.T_START_HEREDOC,this.tok.T_LNUMBER,this.tok.T_DNUMBER,this.tok.T_ARRAY,"[",this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C,'"','b"','B"',"-",this.tok.T_NS_SEPARATOR].map(i)),T_MAGIC_CONST:new Map([this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C].map(i)),T_MEMBER_FLAGS:new Map([this.tok.T_PUBLIC,this.tok.T_PRIVATE,this.tok.T_PROTECTED,this.tok.T_STATIC,this.tok.T_ABSTRACT,this.tok.T_FINAL].map(i)),EOS:new Map([";",this.EOF,this.tok.T_INLINE_HTML].map(i)),EXPR:new Map(["@","-","+","!","~","(","`",this.tok.T_LIST,this.tok.T_CLONE,this.tok.T_INC,this.tok.T_DEC,this.tok.T_NEW,this.tok.T_ISSET,this.tok.T_EMPTY,this.tok.T_MATCH,this.tok.T_INCLUDE,this.tok.T_INCLUDE_ONCE,this.tok.T_REQUIRE,this.tok.T_REQUIRE_ONCE,this.tok.T_EVAL,this.tok.T_INT_CAST,this.tok.T_DOUBLE_CAST,this.tok.T_STRING_CAST,this.tok.T_ARRAY_CAST,this.tok.T_OBJECT_CAST,this.tok.T_BOOL_CAST,this.tok.T_UNSET_CAST,this.tok.T_EXIT,this.tok.T_PRINT,this.tok.T_YIELD,this.tok.T_STATIC,this.tok.T_FUNCTION,this.tok.T_FN,this.tok.T_VARIABLE,"$",this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_STRING,this.tok.T_CONSTANT_ENCAPSED_STRING,this.tok.T_START_HEREDOC,this.tok.T_LNUMBER,this.tok.T_DNUMBER,this.tok.T_ARRAY,"[",this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C,'"','b"','B"',"-",this.tok.T_NS_SEPARATOR].map(i))}};M.prototype.getTokenName=function(t){return U(t)?t==this.EOF?"the end of file (EOF)":this.lexer.engine.tokens.values[t]:"'"+t+"'"},M.prototype.parse=function(t,e){this._errors=[],this.filename=e||"eval",this.currentNamespace=[""],this.extractDoc?this._docs=[]:this._docs=null,this.extractTokens?this._tokens=[]:this._tokens=null,this._docIndex=0,this._lastNode=null,this.lexer.setInput(t),this.lexer.all_tokens=this.extractTokens,this.lexer.comment_tokens=this.extractDoc,this.length=this.lexer._input.length,this.innerList=!1,this.innerListForm=!1;const i=this.node("program"),s=[];for(this.next();this.token!=this.EOF;)s.push(this.read_start());0===s.length&&this.extractDoc&&this._docs.length>this._docIndex&&s.push(this.node("noop")()),this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset];const n=i(s,this._errors,this._docs,this._tokens);if(this.debug){const t=this.ast.checkNodes();if(t.length>0)throw t.forEach((function(t){t.position&&console.log("Node at line "+t.position.line+", column "+t.position.column),console.log(t.stack.join("\n"))})),new Error("Some nodes are not closed")}return n},M.prototype.raiseError=function(t,e,i,s){if(t+=" on line "+this.lexer.yylloc.first_line,!this.suppressErrors){const e=new SyntaxError(t,this.filename,this.lexer.yylloc.first_line);throw e.lineNumber=this.lexer.yylloc.first_line,e.fileName=this.filename,e.columnNumber=this.lexer.yylloc.first_column,e}const n=this.ast.prepare("error",null,this)(t,s,this.lexer.yylloc.first_line,i);return this._errors.push(n),n},M.prototype.error=function(t){let e="Parse Error : syntax error",i=this.getTokenName(this.token),s="";if(this.token!==this.EOF){if(U(this.token)){let t=this.text();t.length>10&&(t=t.substring(0,7)+"..."),i="'"+t+"' ("+i+")"}e+=", unexpected "+i}return t&&!Array.isArray(t)&&((U(t)||1===t.length)&&(s=", expecting "+this.getTokenName(t)),e+=s),this.raiseError(e,s,t,i)},M.prototype.position=function(){return new m(this.lexer.yylloc.first_line,this.lexer.yylloc.first_column,this.lexer.yylloc.first_offset)},M.prototype.node=function(t){if(this.extractDoc){let e=null;this._docIndex<this._docs.length&&(e=this._docs.slice(this._docIndex),this._docIndex=this._docs.length,this.debug&&(console.log(new Error("Append docs on "+t)),console.log(e)));const i=this.ast.prepare(t,e,this);return i.postBuild=function(t){if(this._docIndex<this._docs.length)if(this._lastNode){const t=this.prev[2];let e=this._docIndex;for(;e<this._docs.length&&!(this._docs[e].offset>t);e++);e>this._docIndex&&(this._lastNode.setTrailingComments(this._docs.slice(this._docIndex,e)),this._docIndex=e)}else this.token===this.EOF&&(t.setTrailingComments(this._docs.slice(this._docIndex)),this._docIndex=this._docs.length);this._lastNode=t}.bind(this),i}return this.ast.prepare(t,null,this)},M.prototype.expectEndOfStatement=function(t){if(";"===this.token)t&&";"===this.lexer.yytext&&t.includeToken(this);else if(this.token!==this.tok.T_INLINE_HTML&&this.token!==this.EOF)return this.error(";"),!1;return this.next(),!0};const B=["parser.next","parser.node","parser.showlog"];M.prototype.showlog=function(){const t=(new Error).stack.split("\n");let e;for(let i=2;i<t.length;i++){e=t[i].trim();let s=!1;for(let t=0;t<B.length;t++)if(e.substring(3,3+B[t].length)===B[t]){s=!0;break}if(!s)break}return console.log("Line "+this.lexer.yylloc.first_line+" : "+this.getTokenName(this.token)+">"+this.lexer.yytext+"< @--\x3e"+e),this},M.prototype.expect=function(t){if(Array.isArray(t)){if(-1===t.indexOf(this.token))return this.error(t),!1}else if(this.token!=t)return this.error(t),!1;return!0},M.prototype.text=function(){return this.lexer.yytext},M.prototype.next=function(){if(";"===this.token&&";"!==this.lexer.yytext||(this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset]),this.lex(),this.debug&&this.showlog(),this.extractDoc)for(;this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT;)this.token===this.tok.T_COMMENT?this._docs.push(this.read_comment()):this._docs.push(this.read_doc_comment());return this},M.prototype.peek=function(){const t=this.lexer.getState(),e=this.lexer.lex();return this.lexer.setState(t),e},M.prototype.lex=function(){if(this.extractTokens)do{if(this.token=this.lexer.lex()||this.EOF,this.token===this.EOF)return this;let t=this.lexer.yytext;if(t=Object.prototype.hasOwnProperty.call(this.lexer.engine.tokens.values,this.token)?[this.lexer.engine.tokens.values[this.token],t,this.lexer.yylloc.first_line,this.lexer.yylloc.first_offset,this.lexer.offset]:[null,t,this.lexer.yylloc.first_line,this.lexer.yylloc.first_offset,this.lexer.offset],this._tokens.push(t),this.token===this.tok.T_CLOSE_TAG)return this.token=";",this;if(this.token===this.tok.T_OPEN_TAG_WITH_ECHO)return this.token=this.tok.T_ECHO,this}while(this.token===this.tok.T_WHITESPACE||!this.extractDoc&&(this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT)||this.token===this.tok.T_OPEN_TAG);else this.token=this.lexer.lex()||this.EOF;return this},M.prototype.is=function(t){return Array.isArray(t)?-1!==t.indexOf(this.token):this.entries[t].has(this.token)},[x,E,y,A,g,N,C,L,b,I,O,v,R,w,D,P].forEach((function(t){for(const e in t){if(Object.prototype.hasOwnProperty.call(M.prototype,e))throw new Error("Function "+e+" is already defined - collision");M.prototype[e]=t[e]}}));var F=M;const H={T_HALT_COMPILER:101,T_USE:102,T_ENCAPSED_AND_WHITESPACE:103,T_OBJECT_OPERATOR:104,T_STRING:105,T_DOLLAR_OPEN_CURLY_BRACES:106,T_STRING_VARNAME:107,T_CURLY_OPEN:108,T_NUM_STRING:109,T_ISSET:110,T_EMPTY:111,T_INCLUDE:112,T_INCLUDE_ONCE:113,T_EVAL:114,T_REQUIRE:115,T_REQUIRE_ONCE:116,T_NAMESPACE:117,T_NS_SEPARATOR:118,T_AS:119,T_IF:120,T_ENDIF:121,T_WHILE:122,T_DO:123,T_FOR:124,T_SWITCH:125,T_BREAK:126,T_CONTINUE:127,T_RETURN:128,T_GLOBAL:129,T_STATIC:130,T_ECHO:131,T_INLINE_HTML:132,T_UNSET:133,T_FOREACH:134,T_DECLARE:135,T_TRY:136,T_THROW:137,T_GOTO:138,T_FINALLY:139,T_CATCH:140,T_ENDDECLARE:141,T_LIST:142,T_CLONE:143,T_PLUS_EQUAL:144,T_MINUS_EQUAL:145,T_MUL_EQUAL:146,T_DIV_EQUAL:147,T_CONCAT_EQUAL:148,T_MOD_EQUAL:149,T_AND_EQUAL:150,T_OR_EQUAL:151,T_XOR_EQUAL:152,T_SL_EQUAL:153,T_SR_EQUAL:154,T_INC:155,T_DEC:156,T_BOOLEAN_OR:157,T_BOOLEAN_AND:158,T_LOGICAL_OR:159,T_LOGICAL_AND:160,T_LOGICAL_XOR:161,T_SL:162,T_SR:163,T_IS_IDENTICAL:164,T_IS_NOT_IDENTICAL:165,T_IS_EQUAL:166,T_IS_NOT_EQUAL:167,T_IS_SMALLER_OR_EQUAL:168,T_IS_GREATER_OR_EQUAL:169,T_INSTANCEOF:170,T_INT_CAST:171,T_DOUBLE_CAST:172,T_STRING_CAST:173,T_ARRAY_CAST:174,T_OBJECT_CAST:175,T_BOOL_CAST:176,T_UNSET_CAST:177,T_EXIT:178,T_PRINT:179,T_YIELD:180,T_YIELD_FROM:181,T_FUNCTION:182,T_DOUBLE_ARROW:183,T_DOUBLE_COLON:184,T_ARRAY:185,T_CALLABLE:186,T_CLASS:187,T_ABSTRACT:188,T_TRAIT:189,T_FINAL:190,T_EXTENDS:191,T_INTERFACE:192,T_IMPLEMENTS:193,T_VAR:194,T_PUBLIC:195,T_PROTECTED:196,T_PRIVATE:197,T_CONST:198,T_NEW:199,T_INSTEADOF:200,T_ELSEIF:201,T_ELSE:202,T_ENDSWITCH:203,T_CASE:204,T_DEFAULT:205,T_ENDFOR:206,T_ENDFOREACH:207,T_ENDWHILE:208,T_CONSTANT_ENCAPSED_STRING:209,T_LNUMBER:210,T_DNUMBER:211,T_LINE:212,T_FILE:213,T_DIR:214,T_TRAIT_C:215,T_METHOD_C:216,T_FUNC_C:217,T_NS_C:218,T_START_HEREDOC:219,T_END_HEREDOC:220,T_CLASS_C:221,T_VARIABLE:222,T_OPEN_TAG:223,T_OPEN_TAG_WITH_ECHO:224,T_CLOSE_TAG:225,T_WHITESPACE:226,T_COMMENT:227,T_DOC_COMMENT:228,T_ELLIPSIS:229,T_COALESCE:230,T_POW:231,T_POW_EQUAL:232,T_SPACESHIP:233,T_COALESCE_EQUAL:234,T_FN:235,T_NULLSAFE_OBJECT_OPERATOR:236,T_MATCH:237,T_ATTRIBUTE:238,T_ENUM:239,T_READ_ONLY:240,T_NAME_RELATIVE:241,T_NAME_QUALIFIED:242,T_NAME_FULLY_QUALIFIED:243},G={values:Object.entries(H).reduce(((t,e)=>{let[i,s]=e;return{...t,[s]:i}}),{}),names:H};var V=Object.freeze(G);var Q=function(t,e,i){this.source=t,this.start=e,this.end=i};const W=function(t,e,i){this.kind=t,e&&(this.leadingComments=e),i&&(this.loc=i)};W.prototype.setTrailingComments=function(t){this.trailingComments=t},W.prototype.destroy=function(t){if(!t)throw new Error("Node already initialized, you must swap with another node");return this.leadingComments&&(t.leadingComments?t.leadingComments=Array.concat(this.leadingComments,t.leadingComments):t.leadingComments=this.leadingComments),this.trailingComments&&(t.trailingComments?t.trailingComments=Array.concat(this.trailingComments,t.trailingComments):t.trailingComments=this.trailingComments),t},W.prototype.includeToken=function(t){return this.loc&&(this.loc.end&&(this.loc.end.line=t.lexer.yylloc.last_line,this.loc.end.column=t.lexer.yylloc.last_column,this.loc.end.offset=t.lexer.offset),t.ast.withSource&&(this.loc.source=t.lexer._input.substring(this.loc.start.offset,t.lexer.offset))),this},W.extends=function(t,e){return e.prototype=Object.create(this.prototype),e.extends=this.extends,e.prototype.constructor=e,e.kind=t,e};var Y=W;const $="expression";var j=Y.extends($,(function(t,e,i){Y.apply(this,[t||$,e,i])}));const z="array";var K=j.extends(z,(function(t,e,i,s){j.apply(this,[z,i,s]),this.items=e,this.shortForm=t}));const X="arrowfunc";var q=j.extends(X,(function(t,e,i,s,n,r,o,h){j.apply(this,[X,o,h]),this.arguments=t,this.byref=e,this.body=i,this.type=s,this.nullable=n,this.isStatic=r||!1}));const J="assign";var Z=j.extends(J,(function(t,e,i,s,n){j.apply(this,[J,s,n]),this.left=t,this.right=e,this.operator=i}));const tt="assignref";var et=j.extends(tt,(function(t,e,i,s){j.apply(this,[tt,i,s]),this.left=t,this.right=e}));const it="attribute";var st=Y.extends(it,(function(t,e,i,s){Y.apply(this,[it,i,s]),this.name=t,this.args=e}));const nt="attrgroup";var rt=Y.extends(nt,(function(t,e,i){Y.apply(this,[nt,e,i]),this.attrs=t||[]}));const ot="operation";var ht=j.extends(ot,(function(t,e,i){j.apply(this,[t||ot,e,i])}));var at=ht.extends("bin",(function(t,e,i,s,n){ht.apply(this,["bin",s,n]),this.type=t,this.left=e,this.right=i}));const ct="statement";var lt=Y.extends(ct,(function(t,e,i){Y.apply(this,[t||ct,e,i])}));const _t="block";var ut=lt.extends(_t,(function(t,e,i,s){lt.apply(this,[t||_t,i,s]),this.children=e.filter(Boolean)}));const dt="literal";var pt=j.extends(dt,(function(t,e,i,s,n){j.apply(this,[t||dt,s,n]),this.value=e,i&&(this.raw=i)}));const ft="boolean";var kt=pt.extends(ft,(function(t,e,i,s){pt.apply(this,[ft,t,e,i,s])}));const Tt="break";var mt=lt.extends(Tt,(function(t,e,i){lt.apply(this,[Tt,e,i]),this.level=t}));const xt="byref";var Et=j.extends(xt,(function(t,e,i){j.apply(this,[xt,e,i]),this.what=t}));const yt="call";var At=j.extends(yt,(function(t,e,i,s){j.apply(this,[yt,i,s]),this.what=t,this.arguments=e}));const gt="case";var Nt=lt.extends(gt,(function(t,e,i,s){lt.apply(this,[gt,i,s]),this.test=t,this.body=e}));const Ct="cast";var Lt=ht.extends(Ct,(function(t,e,i,s,n){ht.apply(this,[Ct,s,n]),this.type=t,this.raw=e,this.expr=i}));const bt="catch";var It=lt.extends(bt,(function(t,e,i,s,n){lt.apply(this,[bt,s,n]),this.body=t,this.what=e,this.variable=i}));const St="declaration",Ot=lt.extends(St,(function(t,e,i,s){lt.apply(this,[t||St,i,s]),this.name=e}));Ot.prototype.parseFlags=function(t){this.isAbstract=1===t[2],this.isFinal=2===t[2],this.isReadonly=1===t[3],"class"!==this.kind&&(-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.isStatic=1===t[1])};var vt=Ot;const Rt="class";var wt=vt.extends(Rt,(function(t,e,i,s,n,r,o){vt.apply(this,[Rt,t,r,o]),this.isAnonymous=!t,this.extends=e,this.implements=i,this.body=s,this.attrGroups=[],this.parseFlags(n)}));const Dt="constantstatement";var Pt=lt.extends(Dt,(function(t,e,i,s){lt.apply(this,[t||Dt,i,s]),this.constants=e}));const Ut="classconstant",Mt=Pt.extends(Ut,(function(t,e,i,s,n,r){Pt.apply(this,[t||Ut,e,n,r]),this.parseFlags(i),this.attrGroups=s}));Mt.prototype.parseFlags=function(t){-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.final=2===t[2]};var Bt=Mt;const Ft="clone";var Ht=j.extends(Ft,(function(t,e,i){j.apply(this,[Ft,e,i]),this.what=t}));const Gt="closure";var Vt=j.extends(Gt,(function(t,e,i,s,n,r,o,h){j.apply(this,[Gt,o,h]),this.uses=i,this.arguments=t,this.byref=e,this.type=s,this.nullable=n,this.isStatic=r||!1,this.body=null,this.attrGroups=[]})),Qt=Y.extends("comment",(function(t,e,i,s){Y.apply(this,[t,i,s]),this.value=e}));const Wt="commentblock";var Yt=Qt.extends(Wt,(function(t,e,i){Qt.apply(this,[Wt,t,e,i])}));const $t="commentline";var jt=Qt.extends($t,(function(t,e,i){Qt.apply(this,[$t,t,e,i])}));const zt="constant";var Kt=Y.extends(zt,(function(t,e,i,s){Y.apply(this,[zt,i,s]),this.name=t,this.value=e}));const Xt="continue";var qt=lt.extends(Xt,(function(t,e,i){lt.apply(this,[Xt,e,i]),this.level=t}));const Jt="declare",Zt=ut.extends(Jt,(function(t,e,i,s,n){ut.apply(this,[Jt,e,s,n]),this.directives=t,this.mode=i}));Zt.MODE_SHORT="short",Zt.MODE_BLOCK="block",Zt.MODE_NONE="none";var te=Zt;const ee="declaredirective";var ie=Y.extends(ee,(function(t,e,i,s){Y.apply(this,[ee,i,s]),this.key=t,this.value=e}));var se=lt.extends("do",(function(t,e,i,s){lt.apply(this,["do",i,s]),this.test=t,this.body=e}));const ne="echo";var re=lt.extends(ne,(function(t,e,i,s){lt.apply(this,[ne,i,s]),this.shortForm=e,this.expressions=t}));const oe="empty";var he=j.extends(oe,(function(t,e,i){j.apply(this,[oe,e,i]),this.expression=t}));const ae="encapsed",ce=pt.extends(ae,(function(t,e,i,s,n){pt.apply(this,[ae,t,e,s,n]),this.type=i}));ce.TYPE_STRING="string",ce.TYPE_SHELL="shell",ce.TYPE_HEREDOC="heredoc",ce.TYPE_OFFSET="offset";var le=ce;const _e="encapsedpart";var ue=j.extends(_e,(function(t,e,i,s,n){j.apply(this,[_e,s,n]),this.expression=t,this.syntax=e,this.curly=i}));const de="entry";var pe=j.extends(de,(function(t,e,i,s,n,r){j.apply(this,[de,n,r]),this.key=t,this.value=e,this.byRef=i,this.unpack=s}));const fe="enum";var ke=vt.extends(fe,(function(t,e,i,s,n,r){vt.apply(this,[fe,t,n,r]),this.valueType=e,this.implements=i,this.body=s,this.attrGroups=[]}));const Te="enumcase";var me=Y.extends(Te,(function(t,e,i,s){Y.apply(this,[Te,i,s]),this.name=t,this.value=e}));const xe="error";var Ee=Y.extends(xe,(function(t,e,i,s,n,r){Y.apply(this,[xe,n,r]),this.message=t,this.token=e,this.line=i,this.expected=s}));const ye="eval";var Ae=j.extends(ye,(function(t,e,i){j.apply(this,[ye,e,i]),this.source=t}));const ge="exit";var Ne=j.extends(ge,(function(t,e,i,s){j.apply(this,[ge,i,s]),this.expression=t,this.useDie=e}));const Ce="expressionstatement";var Le=lt.extends(Ce,(function(t,e,i){lt.apply(this,[Ce,e,i]),this.expression=t}));var be=lt.extends("for",(function(t,e,i,s,n,r,o){lt.apply(this,["for",r,o]),this.init=t,this.test=e,this.increment=i,this.shortForm=n,this.body=s}));const Ie="foreach";var Se=lt.extends(Ie,(function(t,e,i,s,n,r,o){lt.apply(this,[Ie,r,o]),this.source=t,this.key=e,this.value=i,this.shortForm=n,this.body=s}));const Oe="function";var ve=vt.extends(Oe,(function(t,e,i,s,n,r,o){vt.apply(this,[Oe,t,r,o]),this.arguments=e,this.byref=i,this.type=s,this.nullable=n,this.body=null,this.attrGroups=[]}));const Re="global";var we=lt.extends(Re,(function(t,e,i){lt.apply(this,[Re,e,i]),this.items=t}));const De="goto";var Pe=lt.extends(De,(function(t,e,i){lt.apply(this,[De,e,i]),this.label=t}));const Ue="halt";var Me=lt.extends(Ue,(function(t,e,i){lt.apply(this,[Ue,e,i]),this.after=t}));const Be="identifier",Fe=Y.extends(Be,(function(t,e,i){Y.apply(this,[Be,e,i]),this.name=t}));var He=Fe;var Ge=lt.extends("if",(function(t,e,i,s,n,r){lt.apply(this,["if",n,r]),this.test=t,this.body=e,this.alternate=i,this.shortForm=s}));const Ve="include";var Qe=j.extends(Ve,(function(t,e,i,s,n){j.apply(this,[Ve,s,n]),this.once=t,this.require=e,this.target=i}));const We="inline";var Ye=pt.extends(We,(function(t,e,i,s){pt.apply(this,[We,t,e,i,s])}));const $e="interface";var je=vt.extends($e,(function(t,e,i,s,n,r){vt.apply(this,[$e,t,n,r]),this.extends=e,this.body=i,this.attrGroups=s}));const ze="intersectiontype";var Ke=vt.extends(ze,(function(t,e,i){vt.apply(this,[ze,null,e,i]),this.types=t}));const Xe="isset";var qe=j.extends(Xe,(function(t,e,i){j.apply(this,[Xe,e,i]),this.variables=t}));const Je="label";var Ze=lt.extends(Je,(function(t,e,i){lt.apply(this,[Je,e,i]),this.name=t}));const ti="list";var ei=j.extends(ti,(function(t,e,i,s){j.apply(this,[ti,i,s]),this.items=t,this.shortForm=e}));const ii="lookup";var si=j.extends(ii,(function(t,e,i,s,n){j.apply(this,[t||ii,s,n]),this.what=e,this.offset=i}));const ni="magic";var ri=pt.extends(ni,(function(t,e,i,s){pt.apply(this,[ni,t,e,i,s])}));const oi="match";var hi=j.extends(oi,(function(t,e,i,s){j.apply(this,[oi,i,s]),this.cond=t,this.arms=e}));const ai="matcharm";var ci=j.extends(ai,(function(t,e,i,s){j.apply(this,[ai,i,s]),this.conds=t,this.body=e}));const li="method";var _i=ve.extends(li,(function(){ve.apply(this,arguments),this.kind=li}));const ui="reference";var di=Y.extends(ui,(function(t,e,i){Y.apply(this,[t||ui,e,i])}));const pi="name",fi=di.extends(pi,(function(t,e,i,s){di.apply(this,[pi,i,s]),this.name=t.replace(/\\$/,""),this.resolution=e}));fi.UNQUALIFIED_NAME="uqn",fi.QUALIFIED_NAME="qn",fi.FULL_QUALIFIED_NAME="fqn",fi.RELATIVE_NAME="rn";var ki=fi;const Ti="namespace";var mi=ut.extends(Ti,(function(t,e,i,s,n){ut.apply(this,[Ti,e,s,n]),this.name=t,this.withBrackets=i||!1}));const xi="namedargument";var Ei=j.extends(xi,(function(t,e,i,s){j.apply(this,[xi,i,s]),this.name=t,this.value=e}));var yi=j.extends("new",(function(t,e,i,s){j.apply(this,["new",i,s]),this.what=t,this.arguments=e}));const Ai="noop";var gi=Y.extends(Ai,(function(t,e){Y.apply(this,[Ai,t,e])}));const Ni="nowdoc";var Ci=pt.extends(Ni,(function(t,e,i,s,n){pt.apply(this,[Ni,t,e,s,n]),this.label=i}));const Li="nullkeyword";var bi=Y.extends(Li,(function(t,e,i){Y.apply(this,[Li,e,i]),this.raw=t}));const Ii="nullsafepropertylookup";var Si=si.extends(Ii,(function(t,e,i,s){si.apply(this,[Ii,t,e,i,s])}));const Oi="number";var vi=pt.extends(Oi,(function(t,e,i,s){pt.apply(this,[Oi,t,e,i,s])}));const Ri="offsetlookup";var wi=si.extends(Ri,(function(t,e,i,s){si.apply(this,[Ri,t,e,i,s])}));const Di="parameter";var Pi=vt.extends(Di,(function(t,e,i,s,n,r,o,h,a,c){vt.apply(this,[Di,t,a,c]),this.value=i,this.type=e,this.byref=s,this.variadic=n,this.readonly=r,this.nullable=o,this.flags=h||0,this.attrGroups=[]}));const Ui="parentreference";var Mi=di.extends(Ui,(function(t,e,i){di.apply(this,[Ui,e,i]),this.raw=t}));const Bi="post";var Fi=ht.extends(Bi,(function(t,e,i,s){ht.apply(this,[Bi,i,s]),this.type=t,this.what=e}));var Hi=ht.extends("pre",(function(t,e,i,s){ht.apply(this,["pre",i,s]),this.type=t,this.what=e}));const Gi="print";var Vi=j.extends(Gi,(function(t,e,i){j.apply(this,[Gi,e,i]),this.expression=t}));const Qi="program";var Wi=ut.extends(Qi,(function(t,e,i,s,n,r){ut.apply(this,[Qi,t,n,r]),this.errors=e,i&&(this.comments=i),s&&(this.tokens=s)}));const Yi="property";var $i=lt.extends(Yi,(function(t,e,i,s,n,r,o,h){lt.apply(this,[Yi,o,h]),this.name=t,this.value=e,this.readonly=i,this.nullable=s,this.type=n,this.attrGroups=r}));const ji="propertylookup";var zi=si.extends(ji,(function(t,e,i,s){si.apply(this,[ji,t,e,i,s])}));const Ki="propertystatement",Xi=lt.extends(Ki,(function(t,e,i,s,n){lt.apply(this,[Ki,s,n]),this.properties=e,this.parseFlags(i)}));Xi.prototype.parseFlags=function(t){-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.isStatic=1===t[1]};var qi=Xi;const Ji="retif";var Zi=j.extends(Ji,(function(t,e,i,s,n){j.apply(this,[Ji,s,n]),this.test=t,this.trueExpr=e,this.falseExpr=i}));const ts="return";var es=lt.extends(ts,(function(t,e,i){lt.apply(this,[ts,e,i]),this.expr=t}));const is="selfreference";var ss=di.extends(is,(function(t,e,i){di.apply(this,[is,e,i]),this.raw=t}));const ns="silent";var rs=j.extends(ns,(function(t,e,i){j.apply(this,[ns,e,i]),this.expr=t}));const os="static";var hs=lt.extends(os,(function(t,e,i){lt.apply(this,[os,e,i]),this.variables=t}));const as="staticvariable";var cs=Y.extends(as,(function(t,e,i,s){Y.apply(this,[as,i,s]),this.variable=t,this.defaultValue=e}));const ls="staticlookup";var _s=si.extends(ls,(function(t,e,i,s){si.apply(this,[ls,t,e,i,s])}));const us="staticreference";var ds=di.extends(us,(function(t,e,i){di.apply(this,[us,e,i]),this.raw=t}));const ps="string";var fs=pt.extends(ps,(function(t,e,i,s,n,r){pt.apply(this,[ps,e,s,n,r]),this.unicode=i,this.isDoubleQuote=t}));const ks="switch";var Ts=lt.extends(ks,(function(t,e,i,s,n){lt.apply(this,[ks,s,n]),this.test=t,this.body=e,this.shortForm=i}));const ms="throw";var xs=lt.extends(ms,(function(t,e,i){lt.apply(this,[ms,e,i]),this.what=t}));const Es="trait";var ys=vt.extends(Es,(function(t,e,i,s){vt.apply(this,[Es,t,i,s]),this.body=e}));const As="traitalias";var gs=Y.extends(As,(function(t,e,i,s,n,r){Y.apply(this,[As,n,r]),this.trait=t,this.method=e,this.as=i,this.visibility="",s&&(0===s[0]?this.visibility="public":1===s[0]?this.visibility="protected":2===s[0]&&(this.visibility="private"))}));const Ns="traitprecedence";var Cs=Y.extends(Ns,(function(t,e,i,s,n){Y.apply(this,[Ns,s,n]),this.trait=t,this.method=e,this.instead=i}));const Ls="traituse";var bs=Y.extends(Ls,(function(t,e,i,s){Y.apply(this,[Ls,i,s]),this.traits=t,this.adaptations=e}));var Is=lt.extends("try",(function(t,e,i,s,n){lt.apply(this,["try",s,n]),this.body=t,this.catches=e,this.always=i}));const Ss="typereference",Os=di.extends(Ss,(function(t,e,i,s){di.apply(this,[Ss,i,s]),this.name=t,this.raw=e}));Os.types=["int","float","string","bool","object","array","callable","iterable","void","static"];var vs=Os;const Rs="unary";var ws=ht.extends(Rs,(function(t,e,i,s){ht.apply(this,[Rs,i,s]),this.type=t,this.what=e}));const Ds="uniontype";var Ps=vt.extends(Ds,(function(t,e,i){vt.apply(this,[Ds,null,e,i]),this.types=t}));const Us="unset";var Ms=lt.extends(Us,(function(t,e,i){lt.apply(this,[Us,e,i]),this.variables=t}));const Bs="usegroup";var Fs=lt.extends(Bs,(function(t,e,i,s,n){lt.apply(this,[Bs,s,n]),this.name=t,this.type=e,this.items=i}));const Hs="useitem",Gs=lt.extends(Hs,(function(t,e,i,s,n){lt.apply(this,[Hs,s,n]),this.name=t,this.alias=e,this.type=i}));Gs.TYPE_CONST="const",Gs.TYPE_FUNCTION="function";var Vs=Gs;const Qs="variable";var Ws=j.extends(Qs,(function(t,e,i,s){j.apply(this,[Qs,i,s]),this.name=t,this.curly=e||!1}));const Ys="variadic";var $s=j.extends(Ys,(function(t,e,i){j.apply(this,[Ys,e,i]),this.what=t}));const js="variadicplaceholder";var zs=Y.extends(js,(function(t,e){Y.apply(this,[js,t,e])}));const Ks="while";var Xs=lt.extends(Ks,(function(t,e,i,s,n){lt.apply(this,[Ks,s,n]),this.test=t,this.body=e,this.shortForm=i}));const qs="yield";var Js=j.extends(qs,(function(t,e,i,s){j.apply(this,[qs,i,s]),this.value=t,this.key=e}));const Zs="yieldfrom";var tn=j.extends(Zs,(function(t,e,i){j.apply(this,[Zs,e,i]),this.value=t}));const en=function(t,e){this.withPositions=t,this.withSource=e};en.precedence={},[["or"],["xor"],["and"],["="],["?"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","!=","===","!==","<=>"],["<","<=",">",">="],["<<",">>"],["+","-","."],["*","/","%"],["!"],["instanceof"],["cast","silent"],["**"]].forEach((function(t,e){t.forEach((function(t){en.precedence[t]=e+1}))})),en.prototype.isRightAssociative=function(t){return"**"===t||"??"===t},en.prototype.swapLocations=function(t,e,i,s){this.withPositions&&(t.loc.start=e.loc.start,t.loc.end=i.loc.end,this.withSource&&(t.loc.source=s.lexer._input.substring(t.loc.start.offset,t.loc.end.offset)))},en.prototype.resolveLocations=function(t,e,i,s){this.withPositions&&(t.loc.start.offset>e.loc.start.offset&&(t.loc.start=e.loc.start),t.loc.end.offset<i.loc.end.offset&&(t.loc.end=i.loc.end),this.withSource&&(t.loc.source=s.lexer._input.substring(t.loc.start.offset,t.loc.end.offset)))},en.prototype.resolvePrecedence=function(t,e){let i,s,n;return"call"===t.kind?this.resolveLocations(t,t.what,t,e):"propertylookup"===t.kind||"staticlookup"===t.kind||"offsetlookup"===t.kind&&t.offset?this.resolveLocations(t,t.what,t.offset,e):"bin"===t.kind?t.right&&!t.right.parenthesizedExpression&&("bin"===t.right.kind?(s=en.precedence[t.type],n=en.precedence[t.right.type],s&&n&&n<=s&&(t.type!==t.right.type||!this.isRightAssociative(t.type))&&(i=t.right,t.right=t.right.left,this.swapLocations(t,t.left,t.right,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i)):"retif"===t.right.kind&&(s=en.precedence[t.type],n=en.precedence["?"],s&&n&&n<=s&&(i=t.right,t.right=t.right.test,this.swapLocations(t,t.left,t.right,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i))):"silent"!==t.kind&&"cast"!==t.kind||!t.expr||t.expr.parenthesizedExpression?"unary"===t.kind?t.what&&!t.what.parenthesizedExpression&&("bin"===t.what.kind?(i=t.what,t.what=t.what.left,this.swapLocations(t,t,t.what,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i):"retif"===t.what.kind&&(i=t.what,t.what=t.what.test,this.swapLocations(t,t,t.what,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i)):"retif"===t.kind?t.falseExpr&&"retif"===t.falseExpr.kind&&!t.falseExpr.parenthesizedExpression&&(i=t.falseExpr,t.falseExpr=i.test,this.swapLocations(t,t.test,t.falseExpr,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i):"assign"===t.kind?t.right&&"bin"===t.right.kind&&!t.right.parenthesizedExpression&&(s=en.precedence["="],n=en.precedence[t.right.type],s&&n&&n<s&&(i=t.right,t.right=t.right.left,i.left=t,this.swapLocations(i,i.left,t.right,e),t=i)):"expressionstatement"===t.kind&&this.swapLocations(t,t.expression,t,e):"bin"===t.expr.kind?(i=t.expr,t.expr=t.expr.left,this.swapLocations(t,t,t.expr,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i):"retif"===t.expr.kind&&(i=t.expr,t.expr=t.expr.test,this.swapLocations(t,t,t.expr,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i),t},en.prototype.prepare=function(t,e,i){let s=null;(this.withPositions||this.withSource)&&(s=i.position());const n=this,r=function(){let o=null;const h=Array.prototype.slice.call(arguments);if(h.push(e),n.withPositions||n.withSource){let t=null;n.withSource&&(t=i.lexer._input.substring(s.offset,i.prev[2])),o=new Q(t,s,new m(i.prev[0],i.prev[1],i.prev[2])),h.push(o)}t||(t=h.shift());const a=n[t];if("function"!=typeof a)throw new Error('Undefined node "'+t+'"');const c=Object.create(a.prototype);return a.apply(c,h),r.instance=c,r.trailingComments&&(c.trailingComments=r.trailingComments),"function"==typeof r.postBuild&&r.postBuild(c),i.debug&&delete n.stack[r.stackUid],n.resolvePrecedence(c,i)};return i.debug&&(this.stack||(this.stack={},this.stackUid=1),this.stack[++this.stackUid]={position:s,stack:(new Error).stack.split("\n").slice(3,5)},r.stackUid=this.stackUid),r.setTrailingComments=function(t){r.instance?r.instance.setTrailingComments(t):r.trailingComments=t},r.destroy=function(t){e&&(t?t.leadingComments?t.leadingComments=e.concat(t.leadingComments):t.leadingComments=e:i._docIndex=i._docs.length-e.length),i.debug&&delete n.stack[r.stackUid]},r},en.prototype.checkNodes=function(){const t=[];for(const e in this.stack)Object.prototype.hasOwnProperty.call(this.stack,e)&&(this.stack[e].key=e,t.push(this.stack[e]));return this.stack={},t},[K,q,Z,et,st,rt,at,ut,kt,mt,Et,At,Nt,Lt,It,wt,Bt,Ht,Vt,Qt,Yt,jt,Kt,Pt,qt,vt,te,ie,se,re,he,le,ue,pe,ke,me,Ee,Ae,Ne,j,Le,be,Se,ve,we,Pe,Me,He,Ge,Qe,Ye,je,Ke,qe,Ze,ei,pt,si,ri,hi,ci,_i,ki,mi,Ei,yi,Y,gi,Ci,bi,Si,vi,wi,ht,Pi,Mi,Fi,Hi,Vi,Wi,$i,zi,qi,di,Zi,es,ss,rs,lt,hs,cs,_s,ds,fs,Ts,xs,ys,gs,Cs,bs,Is,vs,ws,Ps,Ms,Fs,Vs,Ws,$s,zs,Xs,Js,tn].forEach((function(t){en.prototype[t.kind]=t}));var sn=en;function nn(t,e){const i=Object.keys(t);let s=i.length;for(;s--;){const n=i[s],r=t[n];null===r?delete e[n]:"function"==typeof r?e[n]=r.bind(e):Array.isArray(r)?e[n]=Array.isArray(e[n])?e[n].concat(r):r:e[n]="object"==typeof r&&"object"==typeof e[n]?nn(r,e[n]):r}return e}const rn=function(t){if("function"==typeof this)return new this(t);if(this.tokens=V,this.lexer=new T(this),this.ast=new sn,this.parser=new F(this.lexer,this.ast),t&&"object"==typeof t){if(t.parser&&(t.lexer||(t.lexer={}),t.parser.version)){if("string"==typeof t.parser.version){let e=t.parser.version.split(".");if(e=100*parseInt(e[0])+parseInt(e[1]),isNaN(e))throw new Error("Bad version number : "+t.parser.version);t.parser.version=e}else if("number"!=typeof t.parser.version)throw new Error("Expecting a number for version");if(t.parser.version<500||t.parser.version>900)throw new Error("Can only handle versions between 5.x to 8.x")}nn(t,this),this.lexer.version=this.parser.version}},on=function(t){return"function"==typeof t.write?t.toString():t};rn.create=function(t){return new rn(t)},rn.parseEval=function(t,e){return new rn(e).parseEval(t)},rn.prototype.parseEval=function(t){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,t=on(t),this.parser.parse(t,"eval")},rn.parseCode=function(t,e,i){"object"!=typeof e||i||(i=e,e="unknown");return new rn(i).parseCode(t,e)},rn.prototype.parseCode=function(t,e){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,t=on(t),this.parser.parse(t,e)},rn.tokenGetAll=function(t,e){return new rn(e).tokenGetAll(t)},rn.prototype.tokenGetAll=function(t){this.lexer.mode_eval=!1,this.lexer.all_tokens=!0,t=on(t);const e=this.lexer.EOF,i=this.tokens.values;this.lexer.setInput(t);let s=this.lexer.lex()||e;const n=[];for(;s!=e;){let t=this.lexer.yytext;Object.prototype.hasOwnProperty.call(i,s)&&(t=[i[s],t,this.lexer.yylloc.first_line]),n.push(t),s=this.lexer.lex()||e}return n};var hn=rn,an=V,cn=T,ln=sn,_n=F,un=nn,dn=rn,pn=rn;hn.tokens=an,hn.lexer=cn,hn.AST=ln,hn.parser=_n,hn.combine=un,hn.Engine=dn,hn.default=pn;var fn=function(t,e,i){const s=i&&"markdown"===i.parentParser;if(!t&&s)return"";t=t.replace(/\?>\n<\?/g,"?>\n___PSEUDO_INLINE_PLACEHOLDER___<?");const n=new hn({parser:{extractDoc:!0},ast:{withPositions:!0,withSource:!0}}),r=-1!==t.indexOf("<?php"),o=s&&!r;let h;try{h=o?n.parseEval(t):n.parseCode(t)}catch(t){throw t instanceof SyntaxError&&"lineNumber"in t&&(t.loc={start:{line:t.lineNumber,column:t.columnNumber}},delete t.lineNumber,delete t.columnNumber),t}return h.extra={parseAsEval:o},h.comments.forEach((t=>{"\n"===t.value[t.value.length-1]&&(t.value=t.value.slice(0,-1),t.loc.end.offset=t.loc.end.offset-1)})),h};const{hasNewline:kn,skipEverythingButNewLine:Tn,skipNewline:mn,isNextLineEmpty:xn,isPreviousLineEmpty:En,getNextNonSpaceNonCommentCharacterIndex:yn}=s.default.util,An=s.default.version;function gn(t,e){return parseInt(An[0])>1?t[e]:t}const Nn={};function Cn(t){return Nn[t]}[["or"],["xor"],["and"],["=","+=","-=","*=","**=","/=",".=","%=","&=","|=","^=","<<=",">>="],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!==","<>","<=>"],["<",">","<=",">="],[">>","<<"],["+","-","."],["*","/","%"],["!"],["instanceof"],["++","--","~"],["**"]].forEach(((t,e)=>{t.forEach((t=>{Nn[t]=e}))}));const Ln=["==","!=","===","!==","<>","<=>"],bn=["*","/","%"],In=[">>","<<"];function Sn(t){return["block","program","namespace","class","enum","interface","trait","traituse","declare"].includes(t.kind)}function On(t){let{body:e}=t;return e?("block"===e.kind&&(e=e.children),e[0]):null}function vn(t){const e=t.children||t.body||t.adaptations;return Array.isArray(e)?e:null}function Rn(t){const e=t.getParentNode();return e?vn(e):null}function wn(t){return t.length>0?t[t.length-1]:null}function Dn(t){const e=t.getValue();if("program"===e.kind){const t=vn(e);return!(!t||0===t.length)&&"inline"===t[0].kind}if("switch"===e.kind){if(!e.body)return!1;const t=vn(e.body);if(0===t.length)return!1;const[i]=t;if(!i.body)return!1;const s=vn(i.body);return 0!==s.length&&"inline"===s[0].kind}const i=On(e);return!!i&&"inline"===i.kind}const Pn=["__construct","__destruct","__call","__callStatic","__get","__set","__isset","__unset","__sleep","__wakeup","__toString","__invoke","__set_state","__clone","__debugInfo"].reduce(((t,e)=>(t[e.toLowerCase()]=e,t)),{});var Un={printNumber:function(t){return t.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e)/,"")},getPrecedence:Cn,isBitwiseOperator:function(t){return!!In[t]||"|"===t||"^"===t||"&"===t},shouldFlatten:function(t,e){return Cn(e)===Cn(t)&&("**"!==t&&((!Ln.includes(t)||!Ln.includes(e))&&(!("%"===e&&bn.includes(t)||"%"===t&&bn.includes(e))&&((e===t||!bn.includes(e)||!bn.includes(t))&&(!In.includes(t)||!In.includes(e))))))},nodeHasStatement:Sn,getNodeListProperty:vn,getParentNodeListProperty:Rn,getLast:wn,getPenultimate:function(t){return t.length>1?t[t.length-2]:null},isLastStatement:function(t){const e=Rn(t);if(!e)return!0;const i=t.getValue();return e[e.length-1]===i},getBodyFirstChild:On,lineShouldEndWithSemicolon:function(t){const e=t.getValue(),i=t.getParentNode();if(!i)return!1;if(["for","foreach","while","do","if","switch"].includes(i.kind)&&"block"!==e.kind&&"if"!==e.kind&&(i.body===e||i.alternate===e))return!0;if(!Sn(i))return!1;if("echo"===e.kind&&e.shortForm)return!1;if("traituse"===e.kind)return!e.adaptations;if("method"===e.kind&&e.isAbstract)return!0;if("method"===e.kind){const e=t.getParentNode();if(e&&"interface"===e.kind)return!0}return["expressionstatement","do","usegroup","classconstant","propertystatement","traitprecedence","traitalias","goto","constantstatement","enumcase","global","static","echo","unset","return","break","continue","throw"].includes(e.kind)},fileShouldEndWithHardline:function(t){const e=t.getValue(),i="program"===e.kind,s=e.children&&wn(e.children);if(!i)return!1;if(s&&["halt","inline"].includes(s.kind))return!1;if(s&&("declare"===s.kind||"namespace"===s.kind)){const t=s.children.length>0&&wn(s.children);if(t&&["halt","inline"].includes(t.kind))return!1}return!0},maybeStripLeadingSlashFromUse:function(t){const e=t.replace(/^\\/,"");return-1!==e.indexOf("\\")?e:t},hasDanglingComments:function(t){return t.comments&&t.comments.some((t=>!t.leading&&!t.trailing))},hasLeadingComment:function(t){return t.comments&&t.comments.some((t=>t.leading))},hasTrailingComment:function(t){return t.comments&&t.comments.some((t=>t.trailing))},docShouldHaveTrailingNewline:function t(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const s=e.getNode(i),n=e.getNode(i+1),r=e.getNode(i+2);if(!n)return!1;if(r&&["call","new","echo"].includes(r.kind)&&!["call","array"].includes(n.kind)||"parameter"===n.kind){const t=r.arguments.length-1;return r.arguments.indexOf(n)!==t}if(r&&"for"===r.kind){const t=r.init.indexOf(n);if(-1!==t)return t!==r.init.length-1;const e=r.test.indexOf(n);if(-1!==e)return e!==r.test.length-1;const i=r.increment.indexOf(n);if(-1!==i)return i!==r.increment.length-1}if("bin"===n.kind)return n.left===s||t(e,i+1);if("case"===n.kind&&n.test===s)return!0;if("staticvariable"===n.kind){const t=r.variables.length-1;return r.variables.indexOf(n)!==t}if("entry"===n.kind){if(n.key===s)return!0;const t=r.items.length-1;return r.items.indexOf(n)!==t}if(["call","new"].includes(n.kind)){const t=n.arguments.length-1;return n.arguments.indexOf(s)!==t}if("echo"===n.kind){const t=n.expressions.length-1;return n.expressions.indexOf(s)!==t}if("array"===n.kind){const t=n.items.length-1;return n.items.indexOf(s)!==t}return"retif"===n.kind&&t(e,i+1)},isLookupNode:function(t){return"propertylookup"===t.kind||"nullsafepropertylookup"===t.kind||"staticlookup"===t.kind||"offsetlookup"===t.kind},isFirstChildrenInlineNode:Dn,shouldPrintHardLineAfterStartInControlStructure:function(t){const e=t.getValue();return!["try","catch"].includes(e.kind)&&Dn(t)},shouldPrintHardLineBeforeEndInControlStructure:function(t){const e=t.getValue();if(["try","catch"].includes(e.kind))return!0;if("switch"===e.kind){const t=vn(e.body);if(0===t.length)return!0;const i=wn(t);if(!i.body)return!0;const s=vn(i.body);return 0===s.length||"inline"!==s[0].kind}return!Dn(t)},getAlignment:function(t){const e=t.split("\n").pop();return e.length-e.trimLeft().length+1},isProgramLikeNode:function(t){return["program","declare","namespace"].includes(t.kind)},isReferenceLikeNode:function(t){return["name","parentreference","selfreference","staticreference"].includes(t.kind)},getNodeKindIncludingLogical:function(t){return"bin"===t.kind&&["||","&&"].includes(t.type)?"logical":t.kind},useDoubleQuote:function(t,e){if(t.isDoubleQuote===e.singleQuote){const e=t.raw.slice("b"===t.raw[0]?2:1,-1).match(/\\([$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u{([0-9a-fA-F]+)})|\r?\n|'|"|\$/);return t.isDoubleQuote?e:!e}return t.isDoubleQuote},hasEmptyBody:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";const i=t.getValue();return i[e]&&i[e].children&&0===i[e].children.length&&(!i[e].comments||0===i[e].comments.length)},isNextLineEmptyAfterNamespace:function(t,e,i){let s=i(e);return s=Tn(t,s),s=mn(t,s),kn(t,s)},shouldPrintHardlineBeforeTrailingComma:function(t){return"nowdoc"===t.kind||"encapsed"===t.kind&&"heredoc"===t.type||"entry"===t.kind&&("nowdoc"===t.value.kind||"encapsed"===t.value.kind&&"heredoc"===t.value.type)},isDocNode:function(t){return"nowdoc"===t.kind||"encapsed"===t.kind&&"heredoc"===t.type},getAncestorNode:function(t,e){const i=function(t,e){const i=[].concat(e);let s,n=-1;for(;s=t.getParentNode(++n);)if(-1!==i.indexOf(s.kind))return n;return-1}(t,e);return-1===i?null:t.getParentNode(i)},getNextNode:function(t,e){const i=t.getParentNode(),s=vn(i);if(!s)return null;const n=s.indexOf(e);return-1===n?null:i.children[n+1]},normalizeMagicMethodName:function(t){const e=t.toLowerCase();return Pn[e]?Pn[e]:t},isPreviousLineEmpty:function(t,e,i){return En(t,e,gn(i,"locStart"))},isNextLineEmpty:function(t,e,i){return xn(t,e,gn(i,"locEnd"))},getNextNonSpaceNonCommentCharacterIndex:function(t,e,i){return yn(t,e,gn(i,"locEnd"))}};const{addLeadingComment:Mn,addDanglingComment:Bn,addTrailingComment:Fn,skipNewline:Hn,hasNewline:Gn,hasNewlineInRange:Vn}=s.default.util,{join:Qn,indent:Wn,hardline:Yn,cursor:$n,lineSuffix:jn,breakParent:zn}=s.default.doc.builders,{getNextNonSpaceNonCommentCharacterIndex:Kn,isNextLineEmpty:Xn,isPreviousLineEmpty:qn,isLookupNode:Jn}=Un;function Zn(t,e){const{children:i}=t;0===i.length?Bn(t,e):Mn(i[0],e)}function tr(t,e){"block"===t.kind?Zn(t,e):Mn(t,e)}function er(t,e,i,s,n,r){const o=Kn(t,n,r),h=t.charAt(o);return e&&"identifier"===e.kind&&i&&("function"===i.kind||"method"===i.kind)&&")"===h?(Fn(i,n),!0):!(!i||"function"!==i.kind&&"method"!==i.kind||!s||"block"!==s.kind)&&(Zn(s,n),!0)}function ir(t,e,i,s,n,r){if(!i||"if"!==i.kind||!s)return!1;const o=Kn(t,n,r);return")"===t.charAt(o)?(Fn(e,n),!0):e===i.body&&s===i.alternate?(Bn(i,n),!0):"if"===s.kind?(tr(s.body,n),!0):i.body===s&&(Mn(s,n),!0)}function sr(t,e,i){if(t&&["class","interface","trait"].includes(t.kind)){if(e&&t.extends)if(Array.isArray(t.extends)){if(t.extends.some((t=>{if(e&&e===t)return Bn(e,i),!0})))return!0}else if(e===t.extends)return Bn(e,i),!0;if(e&&t.implements&&t.implements.some((t=>{if(e&&e===t)return Bn(e,i),!0})))return!0;if(!(t.body&&t.body.length>0))return Bn(t,i),!0}return!!(e&&"class"===e.kind&&e.isAnonymous&&e.leadingComments&&"commentblock"===i.kind)}function nr(t,e,i,s,n){if(e&&("function"===e.kind||"method"===e.kind)){let i=0;for(let t=0;t<e.arguments.length;t++)i=n.locEnd(e.arguments[t])>i?n.locEnd(e.arguments[t]):i;const r=e.body&&n.locStart(s)>i&&n.locEnd(s)<n.locStart(e.body),o=Kn(t,s,n);if(e.type&&r&&")"!==t.charAt(o))return n.locEnd(s)<n.locStart(e.type)?(Bn(e.type,s),!0):(Fn(e.type,s),!0)}return!1}function rr(t,e,i,s,n){return!(!i||!["function","method","parameter"].includes(i.kind))&&("typereference"===e.kind&&"identifier"===s.kind&&(Fn(e,n),!0))}function or(t,e){return!(!t||!["label","goto"].includes(t.kind))&&(Fn(t,e),!0)}function hr(t,e,i,s){return i&&"inline"===i.kind?(i.leadingComments||(i.leadingComments=[]),i.leadingComments.includes(s)||i.leadingComments.push(s),!0):!(t||i||!e||"inline"!==e.kind)&&(Bn(e,s),!0)}function ar(t,e,i){return!(!t||"try"!==t.kind||!e)&&("block"===e.kind?(Zn(e,i),!0):"try"===e.kind?(tr(e.always,i),!0):"catch"===e.kind&&(tr(e.body,i),!0))}function cr(t,e,i,s){return i||e||!t||"namespace"!==t.kind||t.withBrackets?!(e||!t||"namespace"!==t.kind||t.withBrackets)&&(Bn(t,s),!0):(Fn(t,s),!0)}function lr(t,e,i,s){return!(!t||"declare"!==t.kind)&&((!e||"noop"!==e.kind)&&(i&&t.directives[0]!==i?!(!i||!e)&&(Mn(i,s),!0):("none"===t.mode?Fn(t,s):Bn(t,s),!0)))}function _r(t,e,i,s,n,r){if(!i||"while"!==i.kind||!s)return!1;const o=Kn(t,n,r);return")"===t.charAt(o)?(Fn(e,n),!0):"block"===s.kind&&(Zn(s,n),!0)}function ur(t,e){return t.getValue().printed=!0,e.printer.printComment(t,e)}function dr(t,e,i){return t.getNode()===e.cursorNode&&t.getValue()?[$n,i,$n]:i}var pr={handleOwnLineComment:function(t,e,i){const{precedingNode:s,enclosingNode:n,followingNode:r}=t;return er(e,s,n,r,t,i)||function(t,e,i){if(t&&Jn(t)&&e&&["identifier","variable","encapsed"].includes(e.kind))return Mn(t,i),!0;return!1}(n,r,t)||ir(e,s,n,r,t,i)||_r(e,s,n,r,t,i)||ar(n,r,t)||sr(n,r,t)||rr(e,s,n,r,t)||nr(e,n,r,t,i)||function(t,e,i,s){if(!i&&t&&("for"===t.kind||"foreach"===t.kind))return t.body&&"block"!==t.body.kind?Mn(i,s):Mn(t,s),!0;return!1}(n,0,r,t)||hr(n,s,r,t)||lr(n,s,r,t)},handleEndOfLineComment:function(t,e,i){const{precedingNode:s,enclosingNode:n,followingNode:r}=t;return function(t,e,i,s,n){if(!e&&!s&&i&&"array"===i.kind)return Fn(i,n),!0;return!1}(0,s,n,r,t)||function(t,e,i,s,n){if(i&&"return"===i.kind&&!i.expr)return Fn(i,n),!0;return!1}(0,0,n,0,t)||er(e,s,n,r,t,i)||function(t,e,i,s,n,r){const o=e&&!Vn(n,r.locEnd(e),r.locStart(s));if((!e||!o)&&t&&"retif"===t.kind&&i)return Mn(i,s),!0;return!1}(n,s,r,t,e,i)||ir(e,s,n,r,t,i)||_r(e,s,n,r,t,i)||ar(n,r,t)||sr(n,r,t)||rr(e,s,n,r,t)||nr(e,n,r,t,i)||function(t,e){if(t&&"entry"===t.kind)return Mn(t,e),!0;return!1}(n,t)||function(t,e,i){if(e&&"call"===e.kind&&t&&e.what===t&&e.arguments.length>0)return Mn(e.arguments[0],i),!0;return!1}(s,n,t)||function(t,e,i){if(t&&"assign"===t.kind&&e){const s=t.loc.start.offset+t.loc.source.indexOf("=");if(i.loc.start.offset>s)return Mn(e,i),!0}return!1}(n,r,t)||hr(n,s,r,t)||cr(n,s,r,t)||lr(n,s,r,t)||or(n,t)},handleRemainingComment:function(t,e,i){const{precedingNode:s,enclosingNode:n,followingNode:r}=t;return ir(e,s,n,r,t,i)||_r(e,s,n,r,t,i)||function(t,e,i,s){const n=Kn(t,i,s);if(")"!==t.charAt(n))return!1;if(e&&("function"===e.kind||"closure"===e.kind||"method"===e.kind||"call"===e.kind||"new"===e.kind)&&0===e.arguments.length)return Bn(e,i),!0;return!1}(e,n,t,i)||sr(n,r,t)||function(t,e,i){if(t&&"traituse"===t.kind&&t.adaptations&&!t.adaptations.length)return Bn(t,i),!0;return!1}(n,0,t)||rr(e,s,n,r,t)||nr(e,n,r,t,i)||or(n,t)||function(t,e,i,s){if(e&&"halt"===e.kind)return Bn(e,s),!0;if(t&&"halt"===t.kind)return Bn(t,s),!0;return!1}(s,n,0,t)||function(t,e){if(t&&("continue"===t.kind||"break"===t.kind)&&!t.label)return Fn(t,e),!0;return!1}(n,t)||hr(n,s,r,t)||cr(n,s,r,t)},getCommentChildNodes:function(t){return"object"!=typeof t?[]:(t=>Object.keys(t).filter((t=>"kind"!==t&&"loc"!==t&&"errors"!==t&&"extra"!==t&&"comments"!==t&&"leadingComments"!==t&&"enclosingNode"!==t&&"precedingNode"!==t&&"followingNode"!==t)).map((e=>t[e])))(t)},canAttachComment:function(t){return t.kind&&"commentblock"!==t.kind&&"commentline"!==t.kind},isBlockComment:function(t){return"commentblock"===t.kind},printDanglingComments:function(t,e,i,s){const n=[],r=t.getValue();return r&&r.comments?(t.each((t=>{const i=t.getValue();!i||i.leading||i.trailing||s&&!s(i)||n.push(ur(t,e))}),"comments"),0===n.length?"":i?Qn(Yn,n):Wn([Yn,Qn(Yn,n)])):""},hasLeadingComment:function(t){return t.comments&&t.comments.some((t=>t.leading))},hasTrailingComment:function(t){return t.comments&&t.comments.some((t=>t.trailing))},hasLeadingOwnLineComment:function(t,e,i){return e.comments&&e.comments.some((e=>e.leading&&Gn(t,i.locEnd(e))))},printComments:function(t,e){const i=[];return t.forEach(((t,s,n)=>{t.printed=!0;const r=n.length===s+1;i.push(t.value),r||i.push(Yn),Xn(e.originalText,t,e)&&!r&&i.push(Yn)})),i},printAllComments:function(t,e,i,s){const n=t.getValue(),r=e(t),o=n&&n.comments;if(!o||0===o.length)return dr(t,i,r);const h=[],a=[s?";":"",r];return t.each((t=>{const e=t.getValue(),{leading:s,trailing:n}=e;if(s){const s=function(t,e,i){const s=t.getValue(),n=ur(t,i);return n?i.printer.isBlockComment&&i.printer.isBlockComment(s)?[n,Gn(i.originalText,i.locEnd(s))?Yn:" "]:[n,Yn]:""}(t,0,i);if(!s)return;h.push(s);const n=i.originalText;Gn(n,Hn(n,i.locEnd(e)))&&h.push(Yn)}else n&&a.push(function(t,e,i){const s=t.getValue(),n=ur(t,i);if(!n)return"";const r=i.printer.isBlockComment&&i.printer.isBlockComment(s);if(Gn(i.originalText,i.locStart(s),{backwards:!0})){const t=qn(i.originalText,s,i);return jn([Yn,t?Yn:"",n])}return r?[" ",n]:[jn([" ",n]),r?"":zn]}(t,0,i))}),"comments"),dr(t,i,h.concat(a))}};function fr(){}fr.strictEqual=function(){};var kr=fr;const{getPrecedence:Tr,shouldFlatten:mr,isBitwiseOperator:xr}=Un;var Er=function(t){const e=t.getParentNode();if(!e)return!1;const i=t.getName(),s=t.getNode();if(["program","expressionstatement","namespace","declare","block","include","print","return","echo"].includes(e.kind))return!1;switch(s.kind){case"pre":case"post":if("unary"===e.kind)return"pre"===s.kind&&("+"===s.type&&"+"===e.type||"-"===s.type&&"-"===e.type);case"unary":switch(e.kind){case"unary":return s.type===e.type&&("+"===s.type||"-"===s.type);case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===i&&e.what===s;case"bin":return"**"===e.type&&"left"===i;default:return!1}case"bin":switch(e.kind){case"assign":case"retif":return["and","xor","or"].includes(s.type);case"silent":case"cast":return s.parenthesizedExpression;case"pre":case"post":case"unary":return!0;case"call":case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":return"what"===i&&e.what===s;case"bin":{const t=e.type,n=Tr(t),r=s.type,o=Tr(r);return n>o||("||"===t&&"&&"===r||(n===o&&"right"===i?(kr.strictEqual(e.right,s),!0):n===o&&!mr(t,r)||(n<o&&"%"===r?"+"===t||"-"===t:!!xr(t))))}default:return!1}case"propertylookup":case"nullsafepropertylookup":case"staticlookup":return"call"===e.kind&&("what"===i&&e.what===s&&s.parenthesizedExpression);case"clone":case"new":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===i&&e.what===s;default:return!1}case"yield":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===i&&e.what===s;case"retif":return e.test===s;default:return!(!s.key&&!s.value)}case"assign":return("for"!==e.kind||!e.init.includes(s)&&!e.increment.includes(s))&&("assign"!==e.kind&&("static"!==e.kind&&(!["if","do","while","foreach","switch"].includes(e.kind)&&("silent"!==e.kind&&"call"!==e.kind))));case"retif":switch(e.kind){case"cast":return!0;case"unary":case"bin":case"retif":return!("test"===i&&!e.trueExpr);case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===i&&e.what===s;default:return!1}case"closure":switch(e.kind){case"call":return"what"===i&&e.what===s;case"propertylookup":case"nullsafepropertylookup":return!0;default:return!1}case"silence":case"cast":return s.parenthesizedExpression;case"string":case"array":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return(!["string","array"].includes(s.kind)||"offsetlookup"!==e.kind)&&("what"===i&&e.what===s);default:return!1}case"print":case"include":return"bin"===e.kind}return!1};const{breakParent:yr,join:Ar,line:gr,lineSuffix:Nr,group:Cr,conditionalGroup:Lr,indent:br,dedent:Ir,ifBreak:Sr,hardline:Or,softline:vr,literalline:Rr,align:wr,dedentToRoot:Dr}=s.default.doc.builders,{willBreak:Pr}=s.default.doc.utils,{isNextLineEmptyAfterIndex:Ur,hasNewline:Mr,hasNewlineInRange:Br}=s.default.util,{getLast:Fr,getPenultimate:Hr,isLastStatement:Gr,lineShouldEndWithSemicolon:Vr,printNumber:Qr,shouldFlatten:Wr,maybeStripLeadingSlashFromUse:Yr,fileShouldEndWithHardline:$r,hasDanglingComments:jr,hasLeadingComment:zr,hasTrailingComment:Kr,docShouldHaveTrailingNewline:Xr,isLookupNode:qr,isFirstChildrenInlineNode:Jr,shouldPrintHardLineAfterStartInControlStructure:Zr,shouldPrintHardLineBeforeEndInControlStructure:to,getAlignment:eo,isProgramLikeNode:io,getNodeKindIncludingLogical:so,useDoubleQuote:no,hasEmptyBody:ro,isNextLineEmptyAfterNamespace:oo,shouldPrintHardlineBeforeTrailingComma:ho,isDocNode:ao,getAncestorNode:co,isReferenceLikeNode:lo,getNextNode:_o,normalizeMagicMethodName:uo,getNextNonSpaceNonCommentCharacterIndex:po,isNextLineEmpty:fo,isPreviousLineEmpty:ko}=Un;function To(t,e){return parseFloat(t)>=parseFloat(e)}function mo(t,e){return!!t.trailingCommaPHP&&To(t.phpVersion,e)}function xo(t){return"1tbs"!==t.braceStyle}function Eo(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return[s?"?":"","->",t.call(i,"offset")]}function yo(t,e,i){return Eo(t,e,i,!0)}function Ao(t,e,i){const s=t.getValue(),n=!["variable","identifier"].includes(s.offset.kind);return["::",n?"{":"",t.call(i,"offset"),n?"}":""]}function go(t,e,i){const s=t.getValue(),n=s.offset&&"number"===s.offset.kind||co(t,"encapsed");return["[",s.offset?Cr([br([n?"":vr,t.call(i,"offset")]),n?"":vr]):"","]"]}function No(t){return"array"===t.kind&&(t.items.length>0||t.comments)||"function"===t.kind||"method"===t.kind||"closure"===t.kind}function Co(t){const e=Fr(t),i=Hr(t);return!zr(e)&&!Kr(e)&&No(e)&&(!i||i.kind!==e.kind)}function Lo(t){if(2!==t.length)return!1;const[e,i]=t;return!(e.comments&&e.comments.length||"function"!==e.kind&&"method"!==e.kind&&"closure"!==e.kind||"retif"===i.kind||No(i))}function bo(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"arguments";const n=t.getValue()[s];if(0===n.length)return["(",pr.printDanglingComments(t,e,!0),")"];let r=!1,o=!1;const h=n.length-1,a=t.map(((t,s)=>{const n=t.getNode(),a=[i(t)];return s===h||(fo(e.originalText,n,e)?(0===s&&(o=!0),r=!0,a.push(",",Or,Or)):a.push(",",gr)),a}),s),c=t.getValue(),l=Fr(n),_=mo(e,"7.3")&&["call","new","unset","isset"].includes(c.kind)||mo(e,"8.0")&&["function","closure","method","arrowfunc","attribute"].includes(c.kind)?br([l&&ho(l)?Or:"",","]):"";function u(){return Cr(["(",br([gr,...a]),_,gr,")"],{shouldBreak:!0})}const d=Lo(n),p=Co(n);if(d||p){const e=(d?a.slice(1).some(Pr):a.slice(0,-1).some(Pr))||r;let h,c=0;t.each((t=>{d&&0===c&&(h=[t.call((t=>i(t,{expandFirstArg:!0}))),a.length>1?",":"",o?Or:gr,o?Or:"",a.slice(1)]),p&&c===n.length-1&&(h=[...a.slice(0,-1),t.call((t=>i(t,{expandLastArg:!0})))]),c++}),s);const l=a.some(Pr),f=["(",...h,")"];return[l?yr:"",Lr([l?Sr(u(),f):f,d?["(",Cr(h[0],{shouldBreak:!0}),...h.slice(1),")"]:["(",...a.slice(0,-1),Cr(Fr(h),{shouldBreak:!0}),")"],Cr(["(",br([gr,...a]),Sr(_),gr,")"],{shouldBreak:!0})],{shouldBreak:e})]}return Cr(["(",br([vr,...a]),Sr(_),vr,")"],{shouldBreak:a.some(Pr)||r})}function Io(t){return"array"===t.kind&&0!==t.items.length}function So(t){return"array"===t.right.kind&&0!==t.right.items.length}function Oo(t,e,i,s,n){let r=[];const o=t.getValue();if("bin"===o.kind){Wr(o.type,o.left.type)?r=r.concat(t.call((t=>Oo(t,e,i,!0,n)),"left")):r.push(t.call(e,"left"));const h=So(o)?[o.type," ",t.call(e,"right")]:[o.type,gr,t.call(e,"right")],a=t.getParentNode(),c=!(n&&["||","&&"].includes(o.type))&&so(a)!==so(o)&&so(o.left)!==so(o)&&so(o.right)!==so(o),l=ao(o.left)||"bin"===o.left.kind&&ao(o.left.right);r.push(l?"":" ",c?Cr(h):h),s&&o.comments&&(r=pr.printAllComments(t,(()=>r),i))}else r.push(t.call(e));return r}function vo(t,e,i){const s=t.getValue();switch(s.kind){case"propertylookup":return Eo(t,e,i);case"nullsafepropertylookup":return yo(t,e,i);case"staticlookup":return Ao(t,0,i);case"offsetlookup":return go(t,0,i);default:return"Have not implemented lookup kind ".concat(s.kind," yet.")}}function Ro(t){let{opening:e=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("heredoc"===t.type)return e?"<<<".concat(t.label):t.label;const i={string:'"',shell:"`"};return i[t.type]?i[t.type]:"Unimplemented encapsed type ".concat(t.type)}function wo(t,e,i){const s=[];let n=[];return t.each((t=>{s.push(n),s.push(Cr(i(t))),n=[",",gr],t.getValue()&&fo(e.originalText,t.getValue(),e)&&n.push(vr)}),"items"),s}function Do(t,e){if(0===e.length)return t;let i=0;return e.reduce(((e,s)=>{const{start:n,end:r,alignment:o,before:h,after:a}=s,c=[h||"",...t.slice(n,r),a||""],l=e.concat(t.slice(i,n),o?Dr(Cr(wr(new Array(o).join(" "),c))):Cr(c),r===t.length-1?t.slice(r):"");return i=r,l}),[])}function Po(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"children";const n=t.getValue(),r=t.getParentNode();let o=-1;const h=[],a=[];t.map(((c,l)=>{const _=c.getValue(),u="inline"===_.kind,d=i(c),p=n[s],f=p[l+1],k=!Gr(c)&&!u&&(f&&"case"===f.kind?!Jr(t):f&&"inline"!==f.kind);let T=[d,k?Or:"",k&&fo(e.originalText,_,e)?Or:""];const m=0===l,x=p.length-1===l,E="block"===n.kind&&r&&["function","closure","method","try","catch"].includes(r.kind);let y=E&&m?"":" ";if(u||!u&&x&&o>=0){const t=o;u&&(o=l);if(u&&!m||!u&&x){const e=(u?t:o)+1,i=x&&!u?l+1:l,s=p[u?t:o],r=s?eo(s.raw):"",h=i-e>1,c=h?E&&!s||io(n)&&0===e?"":Or:"",d=h&&"halt"!==_.kind?E&&x?"":Or:"";h&&(y=""),a.push({start:e,end:i,alignment:r,before:c,after:d})}}if(u){const i=f&&"echo"===f.kind&&f.shortForm?"<?=":"<?php",s=_.leadingComments&&_.leadingComments.length?[m&&"namespace"!==n.kind&&!E?"<?php":"","namespace"!==n.kind&&E?"":Or,pr.printComments(_.leadingComments,e),Or,"?>"]:io(n)&&m&&"namespace"!==n.kind?"":[y,"?>"],r=t.getNode(l+1),o=r&&r.children&&r.children.length;T=[s,T,_.comments&&_.comments.length?[i,Or,o?pr.printComments(_.comments,e):"",Or]:io(n)&&x?"":[i," "]]}h.push(T)}),s);const c=Do(h,a);if("program"===n.kind&&!n.extra.parseAsEval){const t=[],[i]=n.children;if(!i||"inline"!==i.kind){const s=e.originalText.trim().match(/^<\?(php|=)(\s+)?\S/),r=[s&&s[2]&&s[2].includes("\n")?[Or,s[2].split("\n").length>2?Or:""]:" ",n.comments?pr.printComments(n.comments,e):""],o=i&&"echo"===i.kind&&i.shortForm;t.push([o?"<?=":"<?php",r])}t.push(c);if(/\?>\n?$/.test(e.originalText)){const i=Fr(n.children),s=i?[Br(e.originalText.trimEnd(),e.locEnd(i),e.locEnd(n))?"inline"===i.kind&&i.comments&&i.comments.length?"":Or:" ",fo(e.originalText,i,e)?Or:""]:n.comments?Or:"";t.push(Nr([s,"?>"]))}return t}return c}function Uo(t,e,i,s){return t.map((t=>{const s=[];return s.push(i(t)),Gr(t)||(s.push(Or),fo(e.originalText,t.getValue(),e)&&s.push(Or)),s}),s)}function Mo(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"extends",n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:" ",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:" ";const o=t.getValue(),h=jr(o[s])?[Or,t.call((t=>pr.printDanglingComments(t,e,!0)),s),Or]:n,a=Array.isArray(o[s])?Cr(Ar(",",t.map((t=>{const s=i(t);return jr(t.getValue())?[Or,pr.printDanglingComments(t,e,!0),Or,s]:[r,s]}),s))):[r,t.call(i,s)];return br([h,s,Pr(h)?br(a):a])}function Bo(t,e,i){let{inline:s=!1}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const n=[];return t.getValue().attrGroups?(t.each((t=>{const r=["#["];!s&&n.length>0&&n.push(Or),r.push(vr),t.each((t=>{const s=t.getValue();r.length>2&&r.push(",",gr);const n=[s.name];s.args.length>0&&n.push(bo(t,e,i,"args")),r.push(Cr(n))}),"attrs"),n.push(Cr([br(r),Sr(mo(e,"8.0")?",":""),vr,"]",s?Sr(vr," "):""]))}),"attrGroups"),0===n.length?[]:[...n,s?"":Or]):[]}function Fo(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"body";const n=t.getValue();if(!n[s])return";";const r=t.call(i,s);return[n.shortForm?":":" {",br("block"!==n[s].kind||n[s].children&&n[s].children.length>0||n[s].comments&&n[s].comments.length>0?[Zr(t)?"switch"===n.kind?" ":"":Or,r]:""),"if"===n.kind&&"body"===s?"":[to(t)?Or:"",n.shortForm?["end",n.kind,";"]:"}"]]}function Ho(t,e,i,s,n,r,o){if(!s)return e;const h=Vo(t,s,n,r,o);return Cr([e,i,h])}function Go(t){return!!qr(t)&&(!("variable"!==t.what.kind&&!lo(t.what))||Go(t.what))}function Vo(t,e,i,s,n){const r=s?"&":"";if(pr.hasLeadingOwnLineComment(n.originalText,e,n))return br([Or,r,i]);const o="cast"===e.kind?e.expr:e;return"bin"===o.kind&&!So(o)||"retif"===o.kind&&(!o.trueExpr&&!Io(o.falseExpr)||"bin"===o.test.kind&&!So(o.test))||("variable"===t.kind||"string"===t.kind||qr(t))&&("string"===o.kind&&!Qo(o)||Go(o))?Cr(br([gr,r,i])):[" ",r,i]}function Qo(t){return t.raw.includes("\n")}function Wo(t,e,i){return("string"===t.kind||"encapsed"===t.kind&&("string"===t.type||"shell"===t.type))&&Qo(t)&&!Mr(e,i.locStart(t),{backwards:!0})}function Yo(t,e,i){return Cr(t.map(((s,n)=>0===n?[t.call(e)]:[i,t.call(e)]),"types"))}var $o=function(t,e,i){const s=t.getValue();if(!s)return"";if("string"==typeof s)return s;const n=function(t,e,i){const s=t.getValue();switch(s.kind){case"program":return Cr([Po(t,e,i),pr.printDanglingComments(t,e,!0,(t=>!t.printed))]);case"expressionstatement":return t.call(i,"expression");case"block":return[Po(t,e,i),pr.printDanglingComments(t,e,!0)];case"declare":{const n=t=>Ar(", ",t.map((t=>i(t)),"directives"));if(["block","short"].includes(s.mode))return["declare(",n(t),")","block"===s.mode?" {":":",s.children.length>0?br([Or,Po(t,e,i)]):"",pr.printDanglingComments(t,e),Or,"block"===s.mode?"}":"enddeclare;"];const r=_o(t,s);return["declare(",n(t),")",r&&"inline"===r.kind?"":";"]}case"declaredirective":return[t.call(i,"key"),"=",t.call(i,"value")];case"namespace":return["namespace ",s.name&&"string"==typeof s.name?[s.name,s.withBrackets?" ":""]:"",s.withBrackets?"{":";",jr(s)?[" ",pr.printDanglingComments(t,e,!0)]:"",s.children.length>0?s.withBrackets?br([Or,Po(t,e,i)]):["inline"===s.children[0].kind?"":[Or,oo(e.originalText,s,e.locStart)?Or:""],Po(t,e,i)]:"",s.withBrackets?[Or,"}"]:""];case"usegroup":return Cr(["use ",s.type?[s.type," "]:"",br([s.name?[Yr(s.name),"\\{",vr]:"",Ar([",",gr],t.map((t=>i(t)),"items"))]),s.name?[Sr(mo(e,"7.2")?",":""),vr,"}"]:""]);case"useitem":return[s.type?[s.type," "]:"",Yr(s.name),jr(s)?[" ",pr.printDanglingComments(t,e,!0)]:"",s.alias?[" as ",t.call(i,"alias")]:""];case"class":case"enum":case"interface":case"trait":return function(t,e,i){const s=t.getValue(),n="class"===s.kind&&s.isAnonymous,r=Bo(t,e,i,{inline:n}),o=n?[]:[...r];s.isReadonly&&o.push("readonly ");s.isFinal&&o.push("final ");s.isAbstract&&o.push("abstract ");o.push(n?"":s.kind),s.name&&o.push(" ",t.call(i,"name"));"enum"===s.kind&&s.valueType&&o.push(": ",t.call(i,"valueType"));s.extends&&s.implements?o.push(Lr([[Mo(t,e,i,"extends"),Mo(t,e,i,"implements")],[Mo(t,e,i,"extends"),Mo(t,e,i,"implements"," ",Or)],[Mo(t,e,i,"extends",Or," "),Mo(t,e,i,"implements",Or,s.implements.length>1?Or:" ")]],{shouldBreak:jr(s.extends)})):(s.extends&&o.push(Lr([Mo(t,e,i,"extends"),Mo(t,e,i,"extends"," ",Or),Mo(t,e,i,"extends",Or,s.extends.length>1?Or:" ")])),s.implements&&o.push(Lr([Mo(t,e,i,"implements"),Mo(t,e,i,"implements"," ",Or),Mo(t,e,i,"implements",Or,s.implements.length>1?Or:" ")])));const h=Cr([Cr(o),xo(e)?n?gr:Or:" "]),a=s.body&&0===s.body.length&&!jr(s),c=["{",br([a?"":Or,Uo(t,e,i,"body")]),pr.printDanglingComments(t,e,!0),n&&a?vr:Or,"}"];return[h,c]}(t,e,i);case"traitprecedence":return[t.call(i,"trait"),"::",t.call(i,"method")," insteadof ",Ar(", ",t.map(i,"instead"))];case"traitalias":return[s.trait?[t.call(i,"trait"),"::"]:"",s.method?t.call(i,"method"):""," as ",Ar(" ",[...s.visibility?[s.visibility]:[],...s.as?[t.call(i,"as")]:[]])];case"traituse":return Cr(["use ",br(Cr(Ar([",",gr],t.map(i,"traits")))),s.adaptations?[" {",s.adaptations.length>0?[br([Or,Uo(t,e,i,"adaptations")]),Or]:jr(s)?[gr,pr.printDanglingComments(t,e,!0),gr]:"","}"]:""]);case"function":case"closure":case"method":return function(t,e,i){const s=t.getValue(),n=Bo(t,e,i,{inline:"closure"===s.kind}),r=[];s.isFinal&&r.push("final ");s.isAbstract&&r.push("abstract ");s.visibility&&r.push(s.visibility," ");s.isStatic&&r.push("static ");r.push("function "),s.byref&&r.push("&");s.name&&r.push(t.call(i,"name"));r.push(bo(t,e,i)),s.uses&&s.uses.length>0&&r.push(Cr([" use ",bo(t,e,i,"uses")]));s.type&&r.push([": ",jr(s.type)?[t.call((t=>pr.printDanglingComments(t,e,!0)),"type")," "]:"",s.nullable?"?":"",t.call(i,"type")]);const o=r;if(!s.body)return[...n,o];const h="closure"===s.kind,a=["{",br([ro(t)?"":Or,t.call(i,"body")]),h&&ro(t)?"":Or,"}"];if(h)return[...n,o," ",a];if(0===s.arguments.length)return[...n,o,xo(e)?Or:" ",a];if(r.some(Pr))return[o," ",a];return[...n,Lr([[o,xo(e)?Or:" ",a],[o," ",a]])]}(t,e,i);case"arrowfunc":return[s.parenthesizedExpression?"(":"",...Bo(t,e,i,{inline:!0}),s.isStatic?"static ":"","fn",bo(t,e,i),s.type?[": ",s.nullable?"?":"",t.call(i,"type")]:""," => ",t.call(i,"body"),s.parenthesizedExpression?")":""];case"parameter":{let n="";1===s.flags?n="public ":2===s.flags?n="protected ":4===s.flags&&(n="private ");const r=[...Bo(t,e,i,{inline:!0}),n,s.readonly?"readonly ":"",s.nullable?"?":"",s.type?[t.call(i,"type")," "]:"",s.byref?"&":"",s.variadic?"...":"","$",t.call(i,"name")];return s.value?Cr([r,jr(s)?" ":"",pr.printDanglingComments(t,e,!0)," =",Vo(s.name,s.value,t.call(i,"value"),!1,e)]):r}case"variadic":return["...",t.call(i,"what")];case"property":return Cr([s.readonly?"readonly ":"",s.type?[s.nullable?"?":"",t.call(i,"type")," "]:"","$",t.call(i,"name"),s.value?[" =",Vo(s.name,s.value,t.call(i,"value"),!1,e)]:""]);case"propertystatement":{const n=[];t.map((t=>n.push(...Bo(t,e,i))),"properties");const r=t.map((t=>i(t)),"properties"),o=s.properties.some((t=>t.value));let h;1!==r.length||s.properties[0].comments?r.length>0&&(h=br(r[0])):[h]=r;const a=s.visibility||null===s.visibility;return Cr([...n,a?[null===s.visibility?"var":s.visibility,""]:"",s.isStatic?[a?" ":"","static"]:"",h?[" ",h]:"",br(r.slice(1).map((t=>[",",o?Or:gr,t])))])}case"if":{const n=[],r=Fo(t,e,i,"body"),o=Cr(["if (",Cr([br([vr,t.call(i,"test")]),vr]),")",r]);if(n.push(o,Jr(t)||!s.body?"":Or),s.alternate){n.push(s.shortForm?"":"} ");const r=Kr(s.body)&&s.body.comments.some((t=>t.trailing&&!pr.isBlockComment(t)))||function(t){if(!t.comments)return!1;const e=Fr(t.comments.filter((t=>!t.leading&&!t.trailing)));return e&&!pr.isBlockComment(e)}(s),o=!r;n.push(o?"":Or),jr(s)&&n.push(fo(e.originalText,s.body,e)?Or:"",pr.printDanglingComments(t,e,!0),r?Or:" "),n.push("else",Cr("if"===s.alternate.kind?t.call(i,"alternate"):Fo(t,e,i,"alternate")))}else n.push(s.body?s.shortForm?"endif;":"}":"");return n}case"do":return["do",Fo(t,e,i,"body")," while (",Cr([br([vr,t.call(i,"test")]),vr]),")"];case"while":case"switch":return Cr([s.kind," (",Cr([br([vr,t.call(i,"test")]),vr]),")",Fo(t,e,i,"body")]);case"for":{const n=Fo(t,e,i,"body"),r=pr.printDanglingComments(t,e,!0),o=r?[r,vr]:"";return s.init.length||s.test.length||s.increment.length?[o,Cr(["for (",Cr([br([vr,Cr(Ar([",",gr],t.map(i,"init"))),";",gr,Cr(Ar([",",gr],t.map(i,"test"))),";",gr,Cr(Ar([",",gr],t.map(i,"increment")))]),vr]),")",n])]:[o,Cr(["for (;;)",n])]}case"foreach":{const n=Fo(t,e,i,"body"),r=pr.printDanglingComments(t,e,!0);return[r?[r,vr]:"",Cr(["foreach (",Cr([br([vr,t.call(i,"source"),gr,"as ",Cr(s.key?br(Ar([" =>",gr],[t.call(i,"key"),t.call(i,"value")])):t.call(i,"value"))]),vr]),")",n])]}case"try":{const n=[];return n.push("try",Fo(t,e,i,"body")),s.catches&&n.push(t.map(i,"catches")),s.always&&n.push(" finally",Fo(t,e,i,"always")),n}case"catch":return[" catch",s.what?[" (",Ar(" | ",t.map(i,"what")),s.variable?[" ",t.call(i,"variable")]:"",")"]:"",Fo(t,e,i,"body")];case"case":return[s.test?["case ",s.test.comments?br(t.call(i,"test")):t.call(i,"test"),":"]:"default:",s.body&&s.body.children&&s.body.children.length?br([Jr(t)?"":Or,t.call(i,"body")]):""];case"break":case"continue":return s.level&&("number"===s.level.kind&&"1"!==s.level.value)?["".concat(s.kind," "),t.call(i,"level")]:s.kind;case"call":return 1===s.arguments.length&&Wo(s.arguments[0],e.originalText,e)?[t.call(i,"what"),"(",Ar(", ",t.map(i,"arguments")),")"]:qr(s.what)?function(t,e,i){const s=[];function n(t){const{originalText:i}=e,s=po(i,t,e);return")"===i.charAt(s)?Ur(i,s+1,e):fo(i,t,e)}function r(t){const o=t.getValue();if("call"!==o.kind||!qr(o.what)&&"call"!==o.what.kind)if(qr(o)){let n=null;n="propertylookup"===o.kind?Eo(t,e,i):"nullsafepropertylookup"===o.kind?yo(t,e,i):"staticlookup"===o.kind?Ao(t,e,i):go(t,e,i),s.unshift({node:o,needsParens:Er(t),printed:pr.printAllComments(t,(()=>n),e)}),t.call((t=>r(t)),"what")}else s.unshift({node:o,printed:t.call(i)});else s.unshift({node:o,printed:[pr.printAllComments(t,(()=>bo(t,e,i)),e),n(o)?Or:""]}),t.call((t=>r(t)),"what")}const o=t.getValue();s.unshift({node:o,printed:bo(t,e,i)}),t.call((t=>r(t)),"what");for(let t=0;t<s.length;++t)"call"===s[t].node.kind&&s[t-1]&&["propertylookup","nullsafepropertylookup","staticlookup"].includes(s[t-1].node.kind)&&s[t-1].needsParens&&(s[0].printed=["(",s[0].printed],s[t-1].printed=[s[t-1].printed,")"]);const h=[];let a=[s[0]],c=1;for(;c<s.length&&("call"===s[c].node.kind||qr(s[c].node)&&s[c].node.offset&&"number"===s[c].node.offset.kind);++c)a.push(s[c]);if("call"!==s[0].node.kind)for(;c+1<s.length&&(qr(s[c].node)&&qr(s[c+1].node));++c)a.push(s[c]);h.push(a),a=[];let l=!1;for(;c<s.length;++c){if(l&&qr(s[c].node)){if("offsetlookup"===s[c].node.kind&&s[c].node.offset&&"number"===s[c].node.offset.kind){a.push(s[c]);continue}h.push(a),a=[],l=!1}"call"===s[c].node.kind&&(l=!0),a.push(s[c]),s[c].node.comments&&pr.hasTrailingComment(s[c].node)&&(h.push(a),a=[],l=!1)}a.length>0&&h.push(a);function _(t){const i=t[1].length&&"offsetlookup"===t[1][0].node.kind;if(1===t[0].length){const e=t[0][0].node;return"variable"===e.kind&&("this"===e.name||u&&s(e.name))||lo(e)}function s(t){return t.length<e.tabWidth}const n=Fr(t[0]).node;return qr(n)&&("identifier"===n.offset.kind||"variable"===n.offset.kind)&&i}const u="expressionstatement"===t.getParentNode().kind,d=h.length>=2&&!h[1][0].node.comments&&_(h);function p(t){const e=[];for(let i=0;i<t.length;i++)t[i+1]&&t[i+1].needsParens?(e.push("(",t[i].printed,t[i+1].printed,")"),i++):e.push(t[i].printed);return e}function f(t){return 0===t.length?"":br(Cr([Or,Ar(Or,t.map(p))]))}const k=h.map(p),T=k,m=d?3:2,x=h.slice(0,m).flat(),E=x.slice(1,-1).some((t=>pr.hasLeadingComment(t.node)))||x.slice(0,-1).some((t=>pr.hasTrailingComment(t.node)))||h[m]&&pr.hasLeadingComment(h[m][0].node),y=co(t,"encapsed");if(h.length<=m&&!E||y)return Cr(T);const A=Fr(d?h.slice(1,2)[0]:h[0]).node,g="call"!==A.kind&&n(A),N=[p(h[0]),d?h.slice(1,2).map(p):"",g?Or:"",f(h.slice(d?2:1))],C=s.filter((t=>"call"===t.node.kind)).length;if(E||C>=3||k.slice(0,-1).some(Pr))return Cr(N);return[Pr(T)||g?yr:"",Lr([T,N])]}(t,e,i):[t.call(i,"what"),bo(t,e,i)];case"new":{const n=s.what&&"class"===s.what.kind&&s.what.isAnonymous;if(!n&&1===s.arguments.length&&Wo(s.arguments[0],e.originalText,e))return["new ",...t.call(Bo,"what"),t.call(i,"what"),"(",Ar(", ",t.map(i,"arguments")),")"];const r=[];if(r.push("new "),n)r.push(s.what.leadingComments&&"commentblock"===s.what.leadingComments[0].kind?[pr.printComments(s.what.leadingComments,e)," "]:"",...t.call((t=>Bo(t,e,i,{inline:!0})),"what"),"class",s.arguments.length>0?[" ",bo(t,e,i)]:"",Cr(t.call(i,"what")));else{const n=["call","offsetlookup"].includes(s.what.kind),o=[n?"(":"",t.call(i,"what"),n?")":"",bo(t,e,i)];r.push(zr(s.what)?br(o):o)}return r}case"clone":return["clone ",s.what.comments?br(t.call(i,"what")):t.call(i,"what")];case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":{const n=t.getParentNode();let r,o=0;do{r=t.getParentNode(o),o++}while(r&&qr(r));const h=co(t,"encapsed")||r&&("new"===r.kind||"assign"===r.kind&&"variable"!==r.left.kind)||"offsetlookup"===s.kind||(lo(s.what)||"variable"===s.what.kind)&&["identifier","variable","encapsedpart"].includes(s.offset.kind)&&n&&!qr(n);return[t.call(i,"what"),h?vo(t,e,i):Cr(br([vr,vo(t,e,i)]))]}case"exit":return Cr([s.useDie?"die":"exit","(",s.expression?Wo(s.expression,e.originalText,e)?t.call(i,"expression"):[br([vr,t.call(i,"expression")]),vr]:pr.printDanglingComments(t,e),")"]);case"global":return Cr(["global ",br(Ar([",",gr],t.map(i,"items")))]);case"include":return[s.require?"require":"include",s.once?"_once":""," ",s.target.comments?br(t.call(i,"target")):t.call(i,"target")];case"label":return[t.call(i,"name"),":"];case"goto":return["goto ",t.call(i,"label")];case"throw":return["throw ",s.what.comments?br(t.call(i,"what")):t.call(i,"what")];case"silent":return["@",t.call(i,"expr")];case"halt":return[jr(s)?[pr.printDanglingComments(t,e,!0),Or]:"","__halt_compiler();",s.after];case"eval":return Cr(["eval(",Wo(s.source,e.originalText,e)?t.call(i,"source"):[br([vr,t.call(i,"source")]),vr],")"]);case"echo":{const e=t.map((t=>i(t)),"expressions");let n;return 1!==e.length||s.expressions[0].comments?e.length>0&&(n=ao(s.expressions[0])||s.expressions[0].comments?br(e[0]):Ir(e[0])):[n]=e,Cr([s.shortForm?"":"echo ",n||"",br(e.slice(1).map((t=>[",",gr,t])))])}case"print":return["print ",s.expression.comments?br(t.call(i,"expression")):t.call(i,"expression")];case"return":{const n=[];if(n.push("return"),s.expr){const e=t.call(i,"expr");n.push(" ",s.expr.comments?br(e):e)}return jr(s)&&n.push(" ",pr.printDanglingComments(t,e,!0)),n}case"isset":case"unset":return Cr([s.kind,bo(t,e,i,"variables")]);case"empty":return Cr(["empty(",br([vr,t.call(i,"expression")]),vr,")"]);case"variable":{const e=t.getParentNode(),n=t.getParentNode(1),r="assign"===e.kind?"":s.byref?"&":"",o="encapsedpart"===e.kind&&"simple"===e.syntax&&e.curly||n&&"offsetlookup"===e.kind&&"encapsedpart"===n.kind&&"simple"===n.syntax&&n.curly?"":"$",h=s.curly?"{":"",a=s.curly?"}":"";return[r,o,h,t.call(i,"name"),a]}case"constantstatement":case"classconstant":{const n=Bo(t,e,i),r=t.map((t=>i(t)),"constants");let o;return 1!==r.length||s.constants[0].comments?r.length>0&&(o=br(r[0])):[o]=r,Cr([...n,s.final?"final ":"",s.visibility?[s.visibility," "]:"","const",o?[" ",o]:"",br(r.slice(1).map((t=>[",",Or,t])))])}case"constant":return Ho(s.name,t.call(i,"name")," =",s.value,t.call(i,"value"),!1,e);case"static":{const e=t.map((t=>i(t)),"variables"),n=s.variables.some((t=>t.defaultValue));let r;return 1!==e.length||s.variables[0].comments?e.length>0&&(r=br(e[0])):[r]=e,Cr(["static",r?[" ",r]:"",br(e.slice(1).map((t=>[",",n?Or:gr,t])))])}case"staticvariable":return Ho(s.variable,t.call(i,"variable")," =",s.defaultValue,t.call(i,"defaultValue"),!1,e);case"list":case"array":{const n="array"===s.kind&&To(e.phpVersion,"5.4")||"list"===s.kind&&(s.shortForm||To(e.phpVersion,"7.1")),r=n?"[":[s.kind,"("],o=n?"]":")";if(0===s.items.length)return jr(s)?Cr([r,pr.printDanglingComments(t,e),vr,o]):[r,o];const h=Fr(s.items),a=h&&"noop"===h.kind,[c]=s.items.filter((t=>"noop"!==t.kind)).sort(((t,i)=>e.locStart(t)-e.locStart(i))),l=!(!c||!c.key)&&c&&Br(e.originalText,e.locStart(s),e.locStart(c));return Cr([r,br([vr,wo(t,e,i)]),a?",":"",Sr(!a&&mo(e,"5.0")?[h&&ho(h)?Or:"",","]:""),pr.printDanglingComments(t,e,!0),vr,o],{shouldBreak:l})}case"entry":{const n=s.byRef?"&":"",r=s.unpack?"...":"";return s.key?Ho(s.key,t.call(i,"key")," =>",s.value,t.call(i,"value"),n,e):[n,r,t.call(i,"value")]}case"yield":{const e=[s.key?[t.call(i,"key")," => "]:"",t.call(i,"value")];return["yield",s.key||s.value?" ":"",s.value&&s.value.comments?br(e):e]}case"yieldfrom":return["yield from ",s.value.comments?br(t.call(i,"value")):t.call(i,"value")];case"unary":return[s.type,t.call(i,"what")];case"pre":return[s.type+s.type,t.call(i,"what")];case"post":return[t.call(i,"what"),s.type+s.type];case"cast":return["(",s.type,") ",s.expr.comments?br(t.call(i,"expr")):t.call(i,"expr")];case"assignref":case"assign":{const n="assignref"===s.kind;return Ho(s.left,t.call(i,"left"),[" ",n?"=":s.operator],s.right,t.call(i,"right"),n,e)}case"bin":{const n=t.getParentNode(),r=t.getParentNode(1),o=s!==n.body&&("if"===n.kind||"while"===n.kind||"switch"===n.kind||"do"===n.kind),h=Oo(t,i,e,!1,o);if(o)return h;if("unary"===n.kind||qr(n)&&"offsetlookup"!==n.kind)return Cr([br([vr,...h]),vr]);const a=s!==n.body&&"for"===n.kind||"retif"===n.kind&&r&&"return"!==r.kind,c=["assign","property","constant","staticvariable","entry"].includes(n.kind),l="bin"===s.left.kind&&Wr(s.type,s.left.type);if(a||So(s)&&!l||!So(s)&&c)return Cr(h);const _=h.slice(1);return Cr([h.length>0?h[0]:"",br(_)])}case"retif":{const e=[],n=t.getParentNode();let r,o=0;do{r=t.getParentNode(o),o++}while(r&&"retif"===r.kind);const h=r||n,a="bin"===s.falseExpr.kind?br(t.call(i,"falseExpr")):t.call(i,"falseExpr"),c=[s.trueExpr?gr:" ","?",s.trueExpr?[" ","bin"===s.trueExpr.kind?br(t.call(i,"trueExpr")):t.call(i,"trueExpr"),gr]:"",":",s.trueExpr?[" ",a]:[Io(s.falseExpr)?" ":gr,a]];e.push(c);const l=t=>n===h?Cr(t):t,_=t.getParentNode(1),u="cast"===n.kind&&_?_:n,d=["propertylookup","nullsafepropertylookup","staticlookup"].includes(u.kind),p=t.call(i,"test");if(!s.trueExpr){const t=[p,"bin"===u.kind||["print","echo","return","include"].includes(h.kind)?br(e):e];return"call"===u.kind&&u.what===s||"unary"===u.kind||qr(u)&&"offsetlookup"!==u.kind?Cr([br([vr,t]),vr]):l(t)}return l(["retif"===s.test.kind?br(p):p,br(e),d?vr:""])}case"boolean":return s.value?"true":"false";case"number":return Qr(s.value);case"string":{if("encapsedpart"===t.getParentNode().kind){const i=t.getParentNode(1);let n=0;const r=To(e.phpVersion,"7.3");let o=Rr;if("heredoc"===i.type){o=r?Or:Rr;const t=i.raw.split("\n");n=t[t.length-1].search(/\S/),-1===n&&(n=t[t.length-2].search(/\S/))}return Ar(o,s.raw.split("\n").map(((t,e)=>e>0||0===s.loc.start.column?t.substring(n):t)))}const i=no(s,e)?'"':"'";let n=s.raw;return"b"===s.raw[0]&&(n=n.slice(1)),['"',"'"].includes(n[0])&&(n=n.substr(1)),['"',"'"].includes(n[n.length-1])&&(n=n.substr(0,n.length-1)),["b"===s.raw[0]?"b":"",i,Ar(Rr,n.split("\n")),i]}case"intersectiontype":return Yo(t,i,"&");case"uniontype":return Yo(t,i,"|");case"encapsedpart":{const e="simple"===s.syntax&&s.curly||"complex"===s.syntax?[s.curly?"$":"","{"]:"",n="simple"===s.syntax&&s.curly||"complex"===s.syntax?"}":"";return[e,t.call(i,"expression"),n]}case"encapsed":switch(s.type){case"string":case"shell":case"heredoc":{const n=To(e.phpVersion,"7.3")?Or:Rr;return[Ro(s),"heredoc"===s.type?n:"",...t.map(i,"value"),Ro(s,{opening:!1}),"heredoc"===s.type&&Xr(t)?Or:""]}default:return"Have not implemented kind ".concat(s.type," yet.")}case"inline":return Ar(Rr,s.raw.replace("___PSEUDO_INLINE_PLACEHOLDER___","").split("\n"));case"magic":return s.value;case"nowdoc":{const i=To(e.phpVersion,"7.3")?Or:Rr;return["<<<'",s.label,"'",i,Ar(i,s.value.split("\n")),i,s.label,Xr(t)?Or:""]}case"name":return["rn"===s.resolution?"namespace\\":"",s.name];case"literal":return t.call(i,"value");case"parentreference":return"parent";case"selfreference":return"self";case"staticreference":return"static";case"typereference":return s.name;case"nullkeyword":return"null";case"identifier":return"method"===t.getParentNode().kind&&(s.name=uo(s.name)),t.call(i,"name");case"match":{const n=s.arms.length-1,r=t.map(((t,s)=>{const r=t.getValue(),o=pr.hasLeadingComment(r)?[pr.printComments(r.leadingComments,e),Or]:[],h=s<n||e.trailingCommaPHP?",":"",a=pr.hasTrailingComment(r)?[" ",pr.printComments(r.comments.filter((t=>t.trailing)),e)]:[],c=null===r.conds?"default":t.map(((t,e)=>[",",gr,i(t)].slice(0===e?2:0)),"conds"),l=t.call(i,"body"),_=s>0&&ko(e.originalText,r,e)?Or:"";return["",Or,_,...o,Cr([Cr([c,br(gr)]),"=> ",l,h,...a])].slice(s>0?0:1)}),"arms");return Cr(["match (",Cr([vr,br(t.call(i,"cond")),vr]),") {",Cr(br([...r]))," ",vr,"}"])}case"noop":return s.comments?pr.printComments(t.getValue().comments,e):"";case"namedargument":return[s.name,": ",t.call(i,"value")];case"enumcase":return Cr(["case ",t.call(i,"name"),s.value?[" =",Vo(s.name,s.value,t.call(i,"value"),!1,e)]:""]);case"variadicplaceholder":return"...";default:return"Have not implemented kind ".concat(s.kind," yet.")}}(t,e,i),r=[],o=Er(t);return o&&r.unshift("("),r.push(n),o&&r.push(")"),Vr(t)&&r.push(";"),$r(t)&&r.push(Or),r};const jo=new Set(["loc","range","raw","comments","leadingComments","trailingComments","parenthesizedExpression","parent","prev","start","end","tokens","errors","extra"]);function zo(t,e){if("string"===t.kind&&delete e.isDoubleQuote,["array","list"].includes(t.kind)&&delete e.shortForm,"inline"===t.kind){if(t.value.includes("___PSEUDO_INLINE_PLACEHOLDER___"))return null;e.value=e.value.replace(/\n/g,"")}if(("continue"===t.kind||"break"===t.kind)&&t.level){const{level:t}=e;"number"===t.kind&&(e.level="1"===t.value?null:t)}if("block"===t.kind&&1===t.children.length&&"block"===t.children[0].kind)for(;"block"===e.children[0].kind;)e.children=e.children[0].children;"number"===t.kind&&(e.value=Un.printNumber(t.value));if(["foreach","for","if","while","do"].includes(t.kind)&&(t.body&&"block"!==t.body.kind?e.body={kind:"block",children:[e.body]}:e.body=e.body?e.body:null,t.alternate&&"block"!==t.alternate.kind?e.alternate={kind:"block",children:[e.alternate]}:e.alternate=e.alternate?e.alternate:null),"usegroup"===t.kind&&"string"==typeof t.name&&(e.name=e.name.replace(/^\\/,"")),"useitem"===t.kind&&(e.name=e.name.replace(/^\\/,"")),"method"===t.kind&&"identifier"===t.name.kind&&(e.name.name=Un.normalizeMagicMethodName(e.name.name)),"noop"===t.kind)return null}zo.ignoredProperties=jo;var Ko=zo;const Xo="PHP";var qo={phpVersion:{since:"0.13.0",category:Xo,type:"choice",default:"7.0",description:"Minimum target PHP version.",choices:[{value:"5.0"},{value:"5.1"},{value:"5.2"},{value:"5.3"},{value:"5.4"},{value:"5.5"},{value:"5.6"},{value:"7.0"},{value:"7.1"},{value:"7.2"},{value:"7.3"},{value:"7.4"},{value:"8.0"},{value:"8.1"},{value:"8.2"}]},trailingCommaPHP:{since:"0.0.0",category:Xo,type:"boolean",default:!0,description:"Print trailing commas wherever possible when multi-line."},braceStyle:{since:"0.10.0",category:Xo,type:"choice",default:"per-cs",description:"Print one space or newline for code blocks (classes and functions).",choices:[{value:"psr-2",description:"(deprecated) Use per-cs"},{value:"per-cs",description:"Use the PER Coding Style brace style."},{value:"1tbs",description:"Use 1tbs brace style."}]}};const Jo=(t,e,i,s)=>{if("length"===i||"prototype"===i)return;if("arguments"===i||"caller"===i)return;const n=Object.getOwnPropertyDescriptor(t,i),r=Object.getOwnPropertyDescriptor(e,i);!Zo(n,r)&&s||Object.defineProperty(t,i,r)},Zo=function(t,e){return void 0===t||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},th=(t,e)=>{const i=Object.getPrototypeOf(e);i!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,i)},eh=(t,e)=>"/* Wrapped ".concat(t,"*/\n").concat(e),ih=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),sh=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),nh=(t,e,i)=>{const s=""===i?"":"with ".concat(i.trim(),"() "),n=eh.bind(null,s,e.toString());Object.defineProperty(n,"name",sh),Object.defineProperty(t,"toString",{...ih,value:n})};var rh=function(t,e){let{ignoreNonConfigurable:i=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{name:s}=t;for(const s of Reflect.ownKeys(e))Jo(t,e,s,i);return th(t,e),nh(t,e,s),t},oh="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function hh(t){return t&&t.default||t}var ah,ch=()=>{const t={};return t.promise=new Promise(((e,i)=>{t.resolve=e,t.reject=i})),t},lh=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){var i=oh&&oh.__awaiter||function(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{a(s.next(t))}catch(t){r(t)}}function h(t){try{a(s.throw(t))}catch(t){r(t)}}function a(t){t.done?n(t.value):new i((function(e){e(t.value)})).then(o,h)}a((s=s.apply(t,e||[])).next())}))},s=oh&&oh.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const n=s(ch);function r(t){let e,s,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"maxAge";const h=()=>i(this,void 0,void 0,(function*(){if(void 0!==e)return;const h=h=>i(this,void 0,void 0,(function*(){r=n.default();const i=h[1][o]-Date.now();return i<=0?(t.delete(h[0]),void r.resolve()):(e=h[0],s=setTimeout((()=>{t.delete(h[0]),r&&r.resolve()}),i),"function"==typeof s.unref&&s.unref(),r.promise)}));try{for(const e of t)yield h(e)}catch(t){}e=void 0})),a=()=>{e=void 0,void 0!==s&&(clearTimeout(s),s=void 0),void 0!==r&&(r.reject(void 0),r=void 0)},c=t.set.bind(t);return t.set=(i,s)=>{t.has(i)&&t.delete(i);const n=c(i,s);return e&&e===i&&a(),h(),n},h(),t}e.default=r,t.exports=r,t.exports.default=r}));(ah=lh)&&ah.__esModule&&Object.prototype.hasOwnProperty.call(ah,"default")&&ah.default;var _h=lh;const uh=new WeakMap,dh=new WeakMap,ph=function(t){let{cacheKey:e,cache:i=new Map,maxAge:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"number"==typeof s&&_h(i);const n=function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];const h=e?e(r):r[0],a=i.get(h);if(a)return a.data;const c=t.apply(this,r);return i.set(h,{data:c,maxAge:s?Date.now()+s:Number.POSITIVE_INFINITY}),c};return rh(n,t,{ignoreNonConfigurable:!0}),dh.set(n,i),n};ph.decorator=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(e,i,s)=>{const n=e[i];if("function"!=typeof n)throw new TypeError("The decorated value must be a function");delete s.value,delete s.writable,s.get=function(){if(!uh.has(this)){const e=ph(n,t);return uh.set(this,e),e}return uh.get(this)}}},ph.clear=t=>{const e=dh.get(t);if(!e)throw new TypeError("Can't clear a function that was not memoized!");if("function"!=typeof e.clear)throw new TypeError("The cache Map can't be cleared!");e.clear()};const fh=/@prettier|@format/,kh=ph((t=>{const e=fn(t),[i]=e.children,[s]=e.comments.filter((t=>"commentblock"===t.kind));if(i&&s&&s.loc.start.line<i.loc.start.line)return s}));var Th={hasPragma:function(t){if(!fh.test(t))return!1;const e=kh(t);if(e){const{value:t}=e;return fh.test(t)}return!1},insertPragma:function(t){const e=kh(t);if(e){const{start:{offset:i},end:{offset:s}}=e.loc,n=t.substring(0,i),r=t.substring(s);return"".concat(n).concat(function(t){let e=t.split("\n");if(1===e.length){const[,t]=/\/*\*\*(.*)\*\//.exec(e[0]);e=["/**"," * ".concat(t.trim())," */"]}const i=e.findIndex((t=>/@\S/.test(t)))||1;return e.splice(i,0," * @format"),e.join("\n")}(e.value)).concat(r)}const i="<?php";if(!t.startsWith(i))return t;const s=i.length,n=t.substring(0,s),r=t.substring(s);return"".concat(n,"\n/** \n * @format \n */\n").concat(r)}},mh="programming",xh="text.html.php",Eh="application/x-httpd-php",yh="#4F5D95",Ah=[".php",".aw",".ctp",".fcgi",".inc",".php3",".php4",".php5",".phps",".phpt"],gh=[".php",".php_cs",".php_cs.dist","Phakefile"],Nh=["php"],Ch=["inc"],Lh={name:"PHP",type:mh,tmScope:xh,aceMode:"php",codemirrorMode:"php",codemirrorMimeType:Eh,color:yh,extensions:Ah,filenames:gh,interpreters:Nh,aliases:Ch,languageId:272},bh=Object.freeze({__proto__:null,name:"PHP",type:mh,tmScope:xh,aceMode:"php",codemirrorMode:"php",codemirrorMimeType:Eh,color:yh,extensions:Ah,filenames:gh,interpreters:Nh,aliases:Ch,languageId:272,default:Lh}),Ih="HTML+PHP",Sh="markup",Oh="#4f5d95",vh="text.html.php",Rh="HTML",wh=[".phtml"],Dh="application/x-httpd-php",Ph={name:Ih,type:Sh,color:Oh,tmScope:vh,group:Rh,extensions:wh,aceMode:"php",codemirrorMode:"php",codemirrorMimeType:Dh,languageId:151},Uh=Object.freeze({__proto__:null,name:Ih,type:Sh,color:Oh,tmScope:vh,group:Rh,extensions:wh,aceMode:"php",codemirrorMode:"php",codemirrorMimeType:Dh,languageId:151,default:Ph}),Mh=hh(bh),Bh=hh(Uh);const{join:Fh,hardline:Hh}=s.default.doc.builders,{hasPragma:Gh,insertPragma:Vh}=Th;function Qh(t,e){let{extend:i,override:s}=e;const n={};for(const e in t){n["languageId"===e?"linguistLanguageId":e]=t[e]}if(i)for(const t in i)n[t]=(n[t]||[]).concat(i[t]);for(const t in s)n[t]=s[t];return n}const Wh=[Qh(Mh,{override:{parsers:["php"],vscodeLanguageIds:["php"]}}),Qh(Bh,{override:{parsers:["php"],vscodeLanguageIds:["php"]}})],Yh=t=>e=>e.loc&&e.loc[t]&&e.loc[t].offset,$h={php:{parse:fn,astFormat:"php",locStart:Yh("start"),locEnd:Yh("end"),hasPragma:Gh}},jh={php:{print:$o,insertPragma:Vh,massageAstNode:Ko,getCommentChildNodes:pr.getCommentChildNodes,canAttachComment:pr.canAttachComment,isBlockComment:pr.isBlockComment,handleComments:{ownLine:pr.handleOwnLineComment,endOfLine:pr.handleEndOfLineComment,remaining:pr.handleRemainingComment},willPrintOwnComments(t){const e=t.getValue();return e&&"noop"===e.kind},printComment(t){const e=t.getValue();switch(e.kind){case"commentblock":{if(!e.value.includes("\n"))return e.value;const t=e.value.split("\n");return t.slice(1,t.length-1).every((t=>"*"===t.trim()[0]))?Fh(Hh,t.map(((e,i)=>(i>0?" ":"")+(i<t.length-1?e.trim():e.trimLeft())))):e.value}case"commentline":return e.value.trimRight();default:throw new Error("Not a comment: ".concat(JSON.stringify(e)))}},hasPrettierIgnore(t){const e=t=>t.value.includes("prettier-ignore")&&!t.value.includes("prettier-ignore-start")&&!t.value.includes("prettier-ignore-end"),i=t.getParentNode(),s=t.getNode();return s&&"classconstant"!==s.kind&&s.comments&&s.comments.length>0&&s.comments.some(e)||s&&"constant"===s.kind&&i&&"classconstant"===i.kind&&i.comments&&i.comments.length>0&&i.comments.some(e)}}};var zh={languages:Wh,printers:jh,parsers:$h,options:qo,defaultOptions:{tabWidth:4}},Kh=zh.languages,Xh=zh.printers,qh=zh.parsers,Jh=zh.options,Zh=zh.defaultOptions;t.default=zh,t.defaultOptions=Zh,t.languages=Kh,t.options=Jh,t.parsers=qh,t.printers=Xh,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("prettier/standalone")):"function"==typeof define&&define.amd?define(["exports","prettier/standalone"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).prettierPlugins=t.prettierPlugins||{},t.prettierPlugins.php={}),t.prettier)}(this,(function(t,e){"use strict";var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function s(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var n={name:"PHP",type:"programming",tmScope:"text.html.php",aceMode:"php",codemirrorMode:"php",codemirrorMimeType:"application/x-httpd-php",color:"#4F5D95",extensions:[".php",".aw",".ctp",".fcgi",".inc",".php3",".php4",".php5",".phps",".phpt"],filenames:[".php",".php_cs",".php_cs.dist","Phakefile"],interpreters:["php"],aliases:["inc"],languageId:272},r={name:"HTML+PHP",type:"markup",color:"#4f5d95",tmScope:"text.html.php",group:"HTML",extensions:[".phtml"],aceMode:"php",codemirrorMode:"php",codemirrorMimeType:"application/x-httpd-php",languageId:151};function o(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,s)}return i}function h(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?o(Object(i),!0).forEach((function(e){u(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function a(){
|
|
2
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
3
|
+
a=function(){return t};var t={},e=Object.prototype,i=e.hasOwnProperty,s="function"==typeof Symbol?Symbol:{},n=s.iterator||"@@iterator",r=s.asyncIterator||"@@asyncIterator",o=s.toStringTag||"@@toStringTag";function h(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,i){return t[e]=i}}function c(t,e,i,s){var n=e&&e.prototype instanceof _?e:_,r=Object.create(n.prototype),o=new g(s||[]);return r._invoke=function(t,e,i){var s="suspendedStart";return function(n,r){if("executing"===s)throw new Error("Generator is already running");if("completed"===s){if("throw"===n)throw r;return N()}for(i.method=n,i.arg=r;;){var o=i.delegate;if(o){var h=m(o,i);if(h){if(h===l)continue;return h}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===s)throw s="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);s="executing";var a=u(t,e,i);if("normal"===a.type){if(s=i.done?"completed":"suspendedYield",a.arg===l)continue;return{value:a.arg,done:i.done}}"throw"===a.type&&(s="completed",i.method="throw",i.arg=a.arg)}}}(t,i,o),r}function u(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function _(){}function p(){}function f(){}var d={};h(d,n,(function(){return this}));var k=Object.getPrototypeOf,T=k&&k(k(b([])));T&&T!==e&&i.call(T,n)&&(d=T);var x=f.prototype=_.prototype=Object.create(d);function E(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function y(t,e){function s(n,r,o,h){var a=u(t[n],t,r);if("throw"!==a.type){var c=a.arg,l=c.value;return l&&"object"==typeof l&&i.call(l,"__await")?e.resolve(l.__await).then((function(t){s("next",t,o,h)}),(function(t){s("throw",t,o,h)})):e.resolve(l).then((function(t){c.value=t,o(c)}),(function(t){return s("throw",t,o,h)}))}h(a.arg)}var n;this._invoke=function(t,i){function r(){return new e((function(e,n){s(t,i,e,n)}))}return n=n?n.then(r,r):r()}}function m(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,m(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var s=u(i,t.iterator,e.arg);if("throw"===s.type)return e.method="throw",e.arg=s.arg,e.delegate=null,l;var n=s.arg;return n?n.done?(e[t.resultName]=n.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):n:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function v(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function g(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function b(t){if(t){var e=t[n];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,r=function e(){for(;++s<t.length;)if(i.call(t,s))return e.value=t[s],e.done=!1,e;return e.value=void 0,e.done=!0,e};return r.next=r}}return{next:N}}function N(){return{value:void 0,done:!0}}return p.prototype=f,h(x,"constructor",f),h(f,"constructor",p),p.displayName=h(f,o,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,h(t,o,"GeneratorFunction")),t.prototype=Object.create(x),t},t.awrap=function(t){return{__await:t}},E(y.prototype),h(y.prototype,r,(function(){return this})),t.AsyncIterator=y,t.async=function(e,i,s,n,r){void 0===r&&(r=Promise);var o=new y(c(e,i,s,n),r);return t.isGeneratorFunction(i)?o:o.next().then((function(t){return t.done?t.value:o.next()}))},E(x),h(x,o,"Generator"),h(x,n,(function(){return this})),h(x,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var i in t)e.push(i);return e.reverse(),function i(){for(;e.length;){var s=e.pop();if(s in t)return i.value=s,i.done=!1,i}return i.done=!0,i}},t.values=b,g.prototype={constructor:g,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function s(i,s){return o.type="throw",o.arg=t,e.next=i,s&&(e.method="next",e.arg=void 0),!!s}for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n],o=r.completion;if("root"===r.tryLoc)return s("end");if(r.tryLoc<=this.prev){var h=i.call(r,"catchLoc"),a=i.call(r,"finallyLoc");if(h&&a){if(this.prev<r.catchLoc)return s(r.catchLoc,!0);if(this.prev<r.finallyLoc)return s(r.finallyLoc)}else if(h){if(this.prev<r.catchLoc)return s(r.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<r.finallyLoc)return s(r.finallyLoc)}}}},abrupt:function(t,e){for(var s=this.tryEntries.length-1;s>=0;--s){var n=this.tryEntries[s];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var r=n;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var o=r?r.completion:{};return o.type=t,o.arg=e,r?(this.method="next",this.next=r.finallyLoc,l):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),A(i),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var s=i.completion;if("throw"===s.type){var n=s.arg;A(i)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:b(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),l}},t}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function u(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==i)return;var s,n,r=[],o=!0,h=!1;try{for(i=i.call(t);!(o=(s=i.next()).done)&&(r.push(s.value),!e||r.length!==e);o=!0);}catch(t){h=!0,n=t}finally{try{o||null==i.return||i.return()}finally{if(h)throw n}}return r}(t,e)||p(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(t){return function(t){if(Array.isArray(t))return f(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t,e){if(t){if("string"==typeof t)return f(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?f(t,e):void 0}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,s=new Array(e);i<e;i++)s[i]=t[i];return s}function d(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=p(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var s=0,n=function(){};return{s:n,n:function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,h=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return o=t.done,t},e:function(t){h=!0,r=t},f:function(){try{o||null==i.return||i.return()}finally{if(h)throw r}}}}var k={exports:{}},T={attributeIndex:0,attributeListDepth:{},matchST_ATTRIBUTE:function(){var t=this.input();if(this.is_WHITESPACE()){do{t=this.input()}while(this.is_WHITESPACE());return this.unput(1),null}switch(t){case"]":return 0===this.attributeListDepth[this.attributeIndex]?(delete this.attributeListDepth[this.attributeIndex],this.attributeIndex--,this.popState()):this.attributeListDepth[this.attributeIndex]--,"]";case"(":case")":case":":case"=":case"|":case"&":case"^":case"-":case"+":case"*":case"%":case"~":case"<":case">":case"!":case".":return this.consume_TOKEN();case"[":return this.attributeListDepth[this.attributeIndex]++,"[";case",":return",";case'"':return this.ST_DOUBLE_QUOTES();case"'":return this.T_CONSTANT_ENCAPSED_STRING();case"/":return"/"===this._input[this.offset]?this.T_COMMENT():"*"===this._input[this.offset]?(this.input(),this.T_DOC_COMMENT()):this.consume_TOKEN()}if(this.is_LABEL_START()||"\\"===t){for(;this.offset<this.size;){var e=this.input();if(!this.is_LABEL()&&"\\"!==e){e&&this.unput(1);break}}return this.T_STRING()}if(this.is_NUM())return this.consume_NUM();throw new Error('Bad terminal sequence "'.concat(t,'" at line ').concat(this.yylineno," (offset ").concat(this.offset,")"))}},x={consume_NUM:function(){var t=this.yytext[0],e="."===t;if("0"===t)if("x"===(t=this.input())||"X"===t){if("_"!==(t=this.input())&&this.is_HEX())return this.consume_HNUM();this.unput(t?2:1)}else if("b"===t||"B"===t){if("_"!==(t=this.input())&&"0"===t||"1"===t)return this.consume_BNUM();this.unput(t?2:1)}else if("o"===t||"O"===t){if("_"!==(t=this.input())&&this.is_OCTAL())return this.consume_ONUM();this.unput(t?2:1)}else this.is_NUM()||t&&this.unput(1);for(;this.offset<this.size;){var i=t;if("_"===(t=this.input())){if("_"===i){this.unput(2);break}if("."===i){this.unput(1);break}if("e"===i||"E"===i){this.unput(2);break}}else{if("."===t){if(e){this.unput(1);break}if("_"===i){this.unput(2);break}e=!0;continue}if("e"===t||"E"===t){if("_"===i){this.unput(1);break}var s=2;if("+"!==(t=this.input())&&"-"!==t||(s=3,t=this.input()),this.is_NUM_START())return this.consume_LNUM(),this.tok.T_DNUMBER;this.unput(t?s:s-1);break}}if(!this.is_NUM()){t&&this.unput(1);break}}return e?this.tok.T_DNUMBER:this.yytext.length<9||this.yytext.length<10||10==this.yytext.length&&this.yytext<"2147483648"?this.tok.T_LNUMBER:this.tok.T_DNUMBER},consume_HNUM:function(){for(;this.offset<this.size;){var t=this.input();if(!this.is_HEX()){t&&this.unput(1);break}}return this.tok.T_LNUMBER},consume_LNUM:function(){for(;this.offset<this.size;){var t=this.input();if(!this.is_NUM()){t&&this.unput(1);break}}return this.tok.T_LNUMBER},consume_BNUM:function(){for(var t;this.offset<this.size;)if("0"!==(t=this.input())&&"1"!==t&&"_"!==t){t&&this.unput(1);break}return this.tok.T_LNUMBER},consume_ONUM:function(){for(;this.offset<this.size;){var t=this.input();if(!this.is_OCTAL()){t&&this.unput(1);break}}return this.tok.T_LNUMBER}},E={matchST_LOOKING_FOR_PROPERTY:function(){var t=this.input();if("-"===t){if(">"===(t=this.input()))return this.tok.T_OBJECT_OPERATOR;t&&this.unput(1)}else{if(this.is_WHITESPACE())return this.tok.T_WHITESPACE;if(this.is_LABEL_START())return this.consume_LABEL(),this.popState(),this.tok.T_STRING}return this.popState(),t&&this.unput(1),!1},matchST_LOOKING_FOR_VARNAME:function(){var t=this.input();if(this.popState(),this.begin("ST_IN_SCRIPTING"),this.is_LABEL_START()){if(this.consume_LABEL(),"["===(t=this.input())||"}"===t)return this.unput(1),this.tok.T_STRING_VARNAME;this.unput(this.yytext.length)}else t&&this.unput(1);return!1},matchST_VAR_OFFSET:function(){var t=this.input();if(this.is_NUM_START())return this.consume_NUM(),this.tok.T_NUM_STRING;if("]"===t)return this.popState(),"]";if("$"===t){if(this.input(),this.is_LABEL_START())return this.consume_LABEL(),this.tok.T_VARIABLE;throw new Error("Unexpected terminal")}if(this.is_LABEL_START())return this.consume_LABEL(),this.tok.T_STRING;if(this.is_WHITESPACE()||"\\"===t||"'"===t||"#"===t)return this.tok.T_ENCAPSED_AND_WHITESPACE;if("["===t||"{"===t||"}"===t||'"'===t||"`"===t||this.is_TOKEN())return t;throw new Error("Unexpected terminal")}},y={matchST_IN_SCRIPTING:function(){var t=this.input();switch(t){case" ":case"\t":case"\n":case"\r":case"\r\n":return this.T_WHITESPACE();case"#":return this.version>=800&&"["===this._input[this.offset]?(this.input(),this.attributeListDepth[++this.attributeIndex]=0,this.begin("ST_ATTRIBUTE"),this.tok.T_ATTRIBUTE):this.T_COMMENT();case"/":return"/"===this._input[this.offset]?this.T_COMMENT():"*"===this._input[this.offset]?(this.input(),this.T_DOC_COMMENT()):this.consume_TOKEN();case"'":return this.T_CONSTANT_ENCAPSED_STRING();case'"':return this.ST_DOUBLE_QUOTES();case"`":return this.begin("ST_BACKQUOTE"),"`";case"?":if(!this.aspTagMode&&this.tryMatch(">")){this.input();var e=this._input[this.offset];return"\n"!==e&&"\r"!==e||this.input(),this.conditionStack.length>1&&this.begin("INITIAL"),this.tok.T_CLOSE_TAG}return this.consume_TOKEN();case"%":return this.aspTagMode&&">"===this._input[this.offset]?(this.input(),"\n"!==(t=this._input[this.offset])&&"\r"!==t||this.input(),this.aspTagMode=!1,this.conditionStack.length>1&&this.begin("INITIAL"),this.tok.T_CLOSE_TAG):this.consume_TOKEN();case"{":return this.begin("ST_IN_SCRIPTING"),"{";case"}":return this.conditionStack.length>2&&this.popState(),"}";default:if("."===t){if(t=this.input(),this.is_NUM_START())return this.consume_NUM();t&&this.unput(1)}if(this.is_NUM_START())return this.consume_NUM();if(this.is_LABEL_START())return this.consume_LABEL().T_STRING();if(this.is_TOKEN())return this.consume_TOKEN()}throw new Error('Bad terminal sequence "'+t+'" at line '+this.yylineno+" (offset "+this.offset+")")},T_WHITESPACE:function(){for(;this.offset<this.size;){var t=this.input();if(" "!==t&&"\t"!==t&&"\n"!==t&&"\r"!==t){t&&this.unput(1);break}}return this.tok.T_WHITESPACE}},m=["\n","\r"],v=["\n","\r",";"],A=v.concat(["\t"," ",",","]",")","/","=","!"]),g={T_CONSTANT_ENCAPSED_STRING:function(){for(var t;this.offset<this.size;)if("\\"==(t=this.input()))this.input();else if("'"==t)break;return this.tok.T_CONSTANT_ENCAPSED_STRING},is_HEREDOC:function(){var t=this.offset;if("<"===this._input[this.offset-1]&&"<"===this._input[this.offset]&&"<"===this._input[this.offset+1]){if(this.offset+=3,this.is_TABSPACE())for(;this.offset<this.size&&(this.offset++,this.is_TABSPACE()););var e=this._input[this.offset-1];if("'"===e||'"'===e?this.offset++:e=null,this.is_LABEL_START()){for(var i=this.offset-1;this.offset<this.size&&(this.offset++,this.is_LABEL()););var s=this._input.substring(i,this.offset-1);if((!e||e===this._input[this.offset-1])&&(e&&this.offset++,m.includes(this._input[this.offset-1])))return this.heredoc_label.label=s,this.heredoc_label.length=s.length,this.heredoc_label.finished=!1,i=this.offset-t,this.offset=t,this.consume(i),"'"===e?this.begin("ST_NOWDOC"):this.begin("ST_HEREDOC"),this.prematch_ENDOFDOC(),this.tok.T_START_HEREDOC}}return this.offset=t,!1},ST_DOUBLE_QUOTES:function(){for(var t;this.offset<this.size;)if("\\"==(t=this.input()))this.input();else{if('"'==t)break;if("$"==t){if("{"==(t=this.input())||this.is_LABEL_START()){this.unput(2);break}t&&this.unput(1)}else if("{"==t){if("$"==(t=this.input())){this.unput(2);break}t&&this.unput(1)}}if('"'==t)return this.tok.T_CONSTANT_ENCAPSED_STRING;var e=1;return"b"!==this.yytext[0]&&"B"!==this.yytext[0]||(e=2),this.yytext.length>2&&this.appendToken(this.tok.T_ENCAPSED_AND_WHITESPACE,this.yytext.length-e),this.unput(this.yytext.length-e),this.begin("ST_DOUBLE_QUOTES"),this.yytext},isDOC_MATCH:function(t,e){var i=this._input[t-2];if(!m.includes(i))return!1;var s=!1,n=!1,r=0,o=this._input[t-1];if(this.version>=703){for(;"\t"===o||" "===o;)" "===o?s=!0:"\t"===o&&(n=!0),o=this._input[t+r],r++;if(t+=r,m.includes(this._input[t-1]))return!1}if(this._input.substring(t-1,t-1+this.heredoc_label.length)===this.heredoc_label.label){var h=this._input[t-1+this.heredoc_label.length];if((this.version>=703?A:v).includes(h)){if(e){if(this.consume(r),s&&n)throw new Error("Parse error: mixing spaces and tabs in ending marker at line "+this.yylineno+" (offset "+this.offset+")")}else this.heredoc_label.indentation=r,this.heredoc_label.indentation_uses_spaces=s,this.heredoc_label.first_encaps_node=!0;return!0}}return!1},prematch_ENDOFDOC:function(){this.heredoc_label.indentation_uses_spaces=!1,this.heredoc_label.indentation=0,this.heredoc_label.first_encaps_node=!0;for(var t=this.offset+1;t<this._input.length;){if(this.isDOC_MATCH(t,!1))return;if(!m.includes(this._input[t-1]))for(;!m.includes(this._input[t++])&&t<this._input.length;);t++}},matchST_NOWDOC:function(){if(this.isDOC_MATCH(this.offset,!0))return this.consume(this.heredoc_label.length),this.popState(),this.tok.T_END_HEREDOC;for(var t=this._input[this.offset-1];this.offset<this.size;)if(m.includes(t)){if(t=this.input(),this.isDOC_MATCH(this.offset,!0))return this.unput(1).popState(),this.appendToken(this.tok.T_END_HEREDOC,this.heredoc_label.length),this.tok.T_ENCAPSED_AND_WHITESPACE}else t=this.input();return this.tok.T_ENCAPSED_AND_WHITESPACE},matchST_HEREDOC:function(){var t=this.input();if(this.isDOC_MATCH(this.offset,!0))return this.consume(this.heredoc_label.length-1),this.popState(),this.tok.T_END_HEREDOC;for(;this.offset<this.size;)if("\\"===t&&(t=this.input(),m.includes(t)||(t=this.input())),m.includes(t)){if(t=this.input(),this.isDOC_MATCH(this.offset,!0))return this.unput(1).popState(),this.appendToken(this.tok.T_END_HEREDOC,this.heredoc_label.length),this.tok.T_ENCAPSED_AND_WHITESPACE}else if("$"===t){if("{"===(t=this.input()))return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){var e=this.offset,i=this.consume_VARIABLE();return this.yytext.length>this.offset-e+2?(this.appendToken(i,this.offset-e+2),this.unput(this.offset-e+2),this.tok.T_ENCAPSED_AND_WHITESPACE):i}}else if("{"===t){if("$"===(t=this.input()))return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN)}else t=this.input();return this.tok.T_ENCAPSED_AND_WHITESPACE},consume_VARIABLE:function(){this.consume_LABEL();var t=this.input();if("["==t)return this.unput(1),this.begin("ST_VAR_OFFSET"),this.tok.T_VARIABLE;if("-"===t){if(">"===this.input())return this.input(),this.is_LABEL_START()&&this.begin("ST_LOOKING_FOR_PROPERTY"),this.unput(3),this.tok.T_VARIABLE;this.unput(2)}else t&&this.unput(1);return this.tok.T_VARIABLE},matchST_BACKQUOTE:function(){var t=this.input();if("$"===t){if("{"===(t=this.input()))return this.begin("ST_LOOKING_FOR_VARNAME"),this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START())return this.consume_VARIABLE()}else if("{"===t){if("$"===this._input[this.offset])return this.begin("ST_IN_SCRIPTING"),this.tok.T_CURLY_OPEN}else if("`"===t)return this.popState(),"`";for(;this.offset<this.size;){if("\\"===t)this.input();else{if("`"===t){this.unput(1),this.popState(),this.appendToken("`",1);break}if("$"===t){if("{"===(t=this.input()))return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){var e=this.offset,i=this.consume_VARIABLE();return this.yytext.length>this.offset-e+2?(this.appendToken(i,this.offset-e+2),this.unput(this.offset-e+2),this.tok.T_ENCAPSED_AND_WHITESPACE):i}continue}if("{"===t){if("$"===(t=this.input()))return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN);continue}}t=this.input()}return this.tok.T_ENCAPSED_AND_WHITESPACE},matchST_DOUBLE_QUOTES:function(){var t=this.input();if("$"===t){if("{"===(t=this.input()))return this.begin("ST_LOOKING_FOR_VARNAME"),this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START())return this.consume_VARIABLE()}else if("{"===t){if("$"===this._input[this.offset])return this.begin("ST_IN_SCRIPTING"),this.tok.T_CURLY_OPEN}else if('"'===t)return this.popState(),'"';for(;this.offset<this.size;){if("\\"===t)this.input();else{if('"'===t){this.unput(1),this.popState(),this.appendToken('"',1);break}if("$"===t){if("{"===(t=this.input()))return this.begin("ST_LOOKING_FOR_VARNAME"),this.yytext.length>2?(this.appendToken(this.tok.T_DOLLAR_OPEN_CURLY_BRACES,2),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):this.tok.T_DOLLAR_OPEN_CURLY_BRACES;if(this.is_LABEL_START()){var e=this.offset,i=this.consume_VARIABLE();return this.yytext.length>this.offset-e+2?(this.appendToken(i,this.offset-e+2),this.unput(this.offset-e+2),this.tok.T_ENCAPSED_AND_WHITESPACE):i}t&&this.unput(1)}else if("{"===t){if("$"===(t=this.input()))return this.begin("ST_IN_SCRIPTING"),this.yytext.length>2?(this.appendToken(this.tok.T_CURLY_OPEN,1),this.unput(2),this.tok.T_ENCAPSED_AND_WHITESPACE):(this.unput(1),this.tok.T_CURLY_OPEN);t&&this.unput(1)}}t=this.input()}return this.tok.T_ENCAPSED_AND_WHITESPACE}},b={is_NUM:function(){var t=this._input.charCodeAt(this.offset-1);return t>47&&t<58||95===t},is_NUM_START:function(){var t=this._input.charCodeAt(this.offset-1);return t>47&&t<58},is_LABEL:function(){var t=this._input.charCodeAt(this.offset-1);return t>96&&t<123||t>64&&t<91||95===t||t>47&&t<58||t>126},is_LABEL_START:function(){var t=this._input.charCodeAt(this.offset-1);return t>64&&t<91||(t>96&&t<123||(95===t||t>126))},consume_LABEL:function(){for(;this.offset<this.size;){var t=this.input();if(!this.is_LABEL()){t&&this.unput(1);break}}return this},is_TOKEN:function(){var t=this._input[this.offset-1];return-1!==";:,.\\[]()|^&+-/*=%!~$<>?@".indexOf(t)},is_WHITESPACE:function(){var t=this._input[this.offset-1];return" "===t||"\t"===t||"\n"===t||"\r"===t},is_TABSPACE:function(){var t=this._input[this.offset-1];return" "===t||"\t"===t},consume_TABSPACE:function(){for(;this.offset<this.size;){var t=this.input();if(!this.is_TABSPACE()){t&&this.unput(1);break}}return this},is_HEX:function(){var t=this._input.charCodeAt(this.offset-1);return t>47&&t<58||(t>64&&t<71||(t>96&&t<103||95===t))},is_OCTAL:function(){var t=this._input.charCodeAt(this.offset-1);return t>47&&t<56||95===t}},N=function(t){this.engine=t,this.tok=this.engine.tokens.names,this.EOF=1,this.debug=!1,this.all_tokens=!0,this.comment_tokens=!1,this.mode_eval=!1,this.asp_tags=!1,this.short_tags=!1,this.version=801,this.yyprevcol=0,this.keywords={__class__:this.tok.T_CLASS_C,__trait__:this.tok.T_TRAIT_C,__function__:this.tok.T_FUNC_C,__method__:this.tok.T_METHOD_C,__line__:this.tok.T_LINE,__file__:this.tok.T_FILE,__dir__:this.tok.T_DIR,__namespace__:this.tok.T_NS_C,exit:this.tok.T_EXIT,die:this.tok.T_EXIT,function:this.tok.T_FUNCTION,const:this.tok.T_CONST,return:this.tok.T_RETURN,try:this.tok.T_TRY,catch:this.tok.T_CATCH,finally:this.tok.T_FINALLY,throw:this.tok.T_THROW,if:this.tok.T_IF,elseif:this.tok.T_ELSEIF,endif:this.tok.T_ENDIF,else:this.tok.T_ELSE,while:this.tok.T_WHILE,endwhile:this.tok.T_ENDWHILE,do:this.tok.T_DO,for:this.tok.T_FOR,endfor:this.tok.T_ENDFOR,foreach:this.tok.T_FOREACH,endforeach:this.tok.T_ENDFOREACH,declare:this.tok.T_DECLARE,enddeclare:this.tok.T_ENDDECLARE,instanceof:this.tok.T_INSTANCEOF,as:this.tok.T_AS,switch:this.tok.T_SWITCH,endswitch:this.tok.T_ENDSWITCH,case:this.tok.T_CASE,default:this.tok.T_DEFAULT,break:this.tok.T_BREAK,continue:this.tok.T_CONTINUE,goto:this.tok.T_GOTO,echo:this.tok.T_ECHO,print:this.tok.T_PRINT,class:this.tok.T_CLASS,interface:this.tok.T_INTERFACE,trait:this.tok.T_TRAIT,enum:this.tok.T_ENUM,extends:this.tok.T_EXTENDS,implements:this.tok.T_IMPLEMENTS,new:this.tok.T_NEW,clone:this.tok.T_CLONE,var:this.tok.T_VAR,eval:this.tok.T_EVAL,include:this.tok.T_INCLUDE,include_once:this.tok.T_INCLUDE_ONCE,require:this.tok.T_REQUIRE,require_once:this.tok.T_REQUIRE_ONCE,namespace:this.tok.T_NAMESPACE,use:this.tok.T_USE,insteadof:this.tok.T_INSTEADOF,global:this.tok.T_GLOBAL,isset:this.tok.T_ISSET,empty:this.tok.T_EMPTY,__halt_compiler:this.tok.T_HALT_COMPILER,static:this.tok.T_STATIC,abstract:this.tok.T_ABSTRACT,final:this.tok.T_FINAL,private:this.tok.T_PRIVATE,protected:this.tok.T_PROTECTED,public:this.tok.T_PUBLIC,unset:this.tok.T_UNSET,list:this.tok.T_LIST,array:this.tok.T_ARRAY,callable:this.tok.T_CALLABLE,or:this.tok.T_LOGICAL_OR,and:this.tok.T_LOGICAL_AND,xor:this.tok.T_LOGICAL_XOR,match:this.tok.T_MATCH,readonly:this.tok.T_READ_ONLY},this.castKeywords={int:this.tok.T_INT_CAST,integer:this.tok.T_INT_CAST,real:this.tok.T_DOUBLE_CAST,double:this.tok.T_DOUBLE_CAST,float:this.tok.T_DOUBLE_CAST,string:this.tok.T_STRING_CAST,binary:this.tok.T_STRING_CAST,array:this.tok.T_ARRAY_CAST,object:this.tok.T_OBJECT_CAST,bool:this.tok.T_BOOL_CAST,boolean:this.tok.T_BOOL_CAST,unset:this.tok.T_UNSET_CAST}};N.prototype.setInput=function(t){return this._input=t,this.size=t.length,this.yylineno=1,this.offset=0,this.yyprevcol=0,this.yytext="",this.yylloc={first_offset:0,first_line:1,first_column:0,prev_offset:0,prev_line:1,prev_column:0,last_line:1,last_column:0},this.tokens=[],this.version>703?this.keywords.fn=this.tok.T_FN:delete this.keywords.fn,this.done=this.offset>=this.size,!this.all_tokens&&this.mode_eval?(this.conditionStack=["INITIAL"],this.begin("ST_IN_SCRIPTING")):(this.conditionStack=[],this.begin("INITIAL")),this.heredoc_label={label:"",length:0,indentation:0,indentation_uses_spaces:!1,finished:!1,first_encaps_node:!1,toString:function(){this.label}},this},N.prototype.input=function(){var t=this._input[this.offset];return t?(this.yytext+=t,this.offset++,"\r"===t&&"\n"===this._input[this.offset]&&(this.yytext+="\n",this.offset++),"\n"===t||"\r"===t?(this.yylloc.last_line=++this.yylineno,this.yyprevcol=this.yylloc.last_column,this.yylloc.last_column=0):this.yylloc.last_column++,t):""},N.prototype.unput=function(t){if(1===t)this.offset--,"\n"===this._input[this.offset]&&"\r"===this._input[this.offset-1]&&(this.offset--,t++),"\r"===this._input[this.offset]||"\n"===this._input[this.offset]?(this.yylloc.last_line--,this.yylineno--,this.yylloc.last_column=this.yyprevcol):this.yylloc.last_column--,this.yytext=this.yytext.substring(0,this.yytext.length-t);else if(t>0)if(this.offset-=t,t<this.yytext.length){this.yytext=this.yytext.substring(0,this.yytext.length-t),this.yylloc.last_line=this.yylloc.first_line,this.yylloc.last_column=this.yyprevcol=this.yylloc.first_column;for(var e=0;e<this.yytext.length;e++){var i=this.yytext[e];"\r"===i?(i=this.yytext[++e],this.yyprevcol=this.yylloc.last_column,this.yylloc.last_line++,this.yylloc.last_column=0,"\n"!==i&&("\r"===i?this.yylloc.last_line++:this.yylloc.last_column++)):"\n"===i?(this.yyprevcol=this.yylloc.last_column,this.yylloc.last_line++,this.yylloc.last_column=0):this.yylloc.last_column++}this.yylineno=this.yylloc.last_line}else this.yytext="",this.yylloc.last_line=this.yylineno=this.yylloc.first_line,this.yylloc.last_column=this.yylloc.first_column;return this},N.prototype.tryMatch=function(t){return t===this.ahead(t.length)},N.prototype.tryMatchCaseless=function(t){return t===this.ahead(t.length).toLowerCase()},N.prototype.ahead=function(t){var e=this._input.substring(this.offset,this.offset+t);return"\r"===e[e.length-1]&&"\n"===this._input[this.offset+t+1]&&(e+="\n"),e},N.prototype.consume=function(t){for(var e=0;e<t;e++){var i=this._input[this.offset];if(!i)break;this.yytext+=i,this.offset++,"\r"===i&&"\n"===this._input[this.offset]&&(this.yytext+="\n",this.offset++,e++),"\n"===i||"\r"===i?(this.yylloc.last_line=++this.yylineno,this.yyprevcol=this.yylloc.last_column,this.yylloc.last_column=0):this.yylloc.last_column++}return this},N.prototype.getState=function(){return{yytext:this.yytext,offset:this.offset,yylineno:this.yylineno,yyprevcol:this.yyprevcol,yylloc:{first_offset:this.yylloc.first_offset,first_line:this.yylloc.first_line,first_column:this.yylloc.first_column,last_line:this.yylloc.last_line,last_column:this.yylloc.last_column},heredoc_label:this.heredoc_label}},N.prototype.setState=function(t){return this.yytext=t.yytext,this.offset=t.offset,this.yylineno=t.yylineno,this.yyprevcol=t.yyprevcol,this.yylloc=t.yylloc,t.heredoc_label&&(this.heredoc_label=t.heredoc_label),this},N.prototype.appendToken=function(t,e){return this.tokens.push([t,e]),this},N.prototype.lex=function(){this.yylloc.prev_offset=this.offset,this.yylloc.prev_line=this.yylloc.last_line,this.yylloc.prev_column=this.yylloc.last_column;var t=this.next()||this.lex();if(!this.all_tokens){for(;t===this.tok.T_WHITESPACE||!this.comment_tokens&&(t===this.tok.T_COMMENT||t===this.tok.T_DOC_COMMENT)||t===this.tok.T_OPEN_TAG;)t=this.next()||this.lex();if(t==this.tok.T_OPEN_TAG_WITH_ECHO)return this.tok.T_ECHO;if(t===this.tok.T_CLOSE_TAG)return";"}return this.yylloc.prev_offset||(this.yylloc.prev_offset=this.yylloc.first_offset,this.yylloc.prev_line=this.yylloc.first_line,this.yylloc.prev_column=this.yylloc.first_column),t},N.prototype.begin=function(t){if(this.conditionStack.push(t),this.curCondition=t,this.stateCb=this["match"+t],"function"!=typeof this.stateCb)throw new Error('Undefined condition state "'+t+'"');return this},N.prototype.popState=function(){var t=this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0];if(this.curCondition=this.conditionStack[this.conditionStack.length-1],this.stateCb=this["match"+this.curCondition],"function"!=typeof this.stateCb)throw new Error('Undefined condition state "'+this.curCondition+'"');return t},N.prototype.next=function(){var t;if(this._input||(this.done=!0),this.yylloc.first_offset=this.offset,this.yylloc.first_line=this.yylloc.last_line,this.yylloc.first_column=this.yylloc.last_column,this.yytext="",this.done)return this.yylloc.prev_offset=this.yylloc.first_offset,this.yylloc.prev_line=this.yylloc.first_line,this.yylloc.prev_column=this.yylloc.first_column,this.EOF;if(this.tokens.length>0?("object"===c((t=this.tokens.shift())[1])?this.setState(t[1]):this.consume(t[1]),t=t[0]):t=this.stateCb.apply(this,[]),this.offset>=this.size&&0===this.tokens.length&&(this.done=!0),this.debug){var e=t;e="number"==typeof e?this.engine.tokens.values[e]:'"'+e+'"';var i=new Error(e+"\tfrom "+this.yylloc.first_line+","+this.yylloc.first_column+"\t - to "+this.yylloc.last_line+","+this.yylloc.last_column+'\t"'+this.yytext+'"');console.error(i.stack)}return t},[T,{T_COMMENT:function(){for(;this.offset<this.size;){var t=this.input();if("\n"===t||"\r"===t)return this.tok.T_COMMENT;if("?"===t&&!this.aspTagMode&&">"===this._input[this.offset])return this.unput(1),this.tok.T_COMMENT;if("%"===t&&this.aspTagMode&&">"===this._input[this.offset])return this.unput(1),this.tok.T_COMMENT}return this.tok.T_COMMENT},T_DOC_COMMENT:function(){var t=this.input(),e=this.tok.T_COMMENT;if("*"===t){if(t=this.input(),this.is_WHITESPACE()&&(e=this.tok.T_DOC_COMMENT),"/"===t)return e;this.unput(1)}for(;this.offset<this.size;)if("*"===(t=this.input())&&"/"===this._input[this.offset]){this.input();break}return e}},{nextINITIAL:function(){return this.conditionStack.length>1&&"INITIAL"===this.conditionStack[this.conditionStack.length-1]?this.popState():this.begin("ST_IN_SCRIPTING"),this},matchINITIAL:function(){for(;this.offset<this.size;){var t=this.input();if("<"==t)if("?"==(t=this.ahead(1))){if(this.tryMatch("?=")){this.unput(1).appendToken(this.tok.T_OPEN_TAG_WITH_ECHO,3).nextINITIAL();break}if(this.tryMatchCaseless("?php")&&(" "===(t=this._input[this.offset+4])||"\t"===t||"\n"===t||"\r"===t)){this.unput(1).appendToken(this.tok.T_OPEN_TAG,6).nextINITIAL();break}if(this.short_tags){this.unput(1).appendToken(this.tok.T_OPEN_TAG,2).nextINITIAL();break}}else if(this.asp_tags&&"%"==t){if(this.tryMatch("%=")){this.aspTagMode=!0,this.unput(1).appendToken(this.tok.T_OPEN_TAG_WITH_ECHO,3).nextINITIAL();break}this.aspTagMode=!0,this.unput(1).appendToken(this.tok.T_OPEN_TAG,2).nextINITIAL();break}}return this.yytext.length>0&&this.tok.T_INLINE_HTML}},x,E,y,g,{T_STRING:function(){var t=this.yytext.toLowerCase(),e=this.keywords[t];if("number"!=typeof e)if("yield"===t)this.version>=700&&this.tryMatch(" from")?(this.consume(5),e=this.tok.T_YIELD_FROM):e=this.tok.T_YIELD;else if(e=this.tok.T_STRING,"b"===t||"B"===t){var i=this.input();if('"'===i)return this.ST_DOUBLE_QUOTES();if("'"===i)return this.T_CONSTANT_ENCAPSED_STRING();i&&this.unput(1)}if(e===this.tok.T_ENUM){if(this.version<801)return this.tok.T_STRING;for(var s=this.offset,n=this.input();" "==n;)n=this.input();var r=!1;if(this.is_LABEL_START()){for(;this.is_LABEL();)n+=this.input();var o=n.slice(0,-1).toLowerCase();r="extends"!==o&&"implements"!==o}return this.unput(this.offset-s),r?this.tok.T_ENUM:this.tok.T_STRING}if(this.offset<this.size&&e!==this.tok.T_YIELD_FROM){var h=this.input();if("\\"===h){e="namespace"===t?this.tok.T_NAME_RELATIVE:this.tok.T_NAME_QUALIFIED;do{if("{"===this._input[this.offset]){this.input();break}this.consume_LABEL(),h=this.input()}while("\\"===h)}h&&this.unput(1)}return e},consume_TOKEN:function(){var t=this._input[this.offset-1],e=this.tokenTerminals[t];return e?e.apply(this,[]):this.yytext},tokenTerminals:{$:function(){return this.offset++,this.is_LABEL_START()?(this.offset--,this.consume_LABEL(),this.tok.T_VARIABLE):(this.offset--,"$")},"-":function(){var t=this._input[this.offset];return">"===t?(this.begin("ST_LOOKING_FOR_PROPERTY").input(),this.tok.T_OBJECT_OPERATOR):"-"===t?(this.input(),this.tok.T_DEC):"="===t?(this.input(),this.tok.T_MINUS_EQUAL):"-"},"\\":function(){if(this.offset<this.size){if(this.input(),this.is_LABEL_START()){var t;do{if("{"===this._input[this.offset]){this.input();break}this.consume_LABEL(),t=this.input()}while("\\"===t);return this.unput(1),this.tok.T_NAME_FULLY_QUALIFIED}this.unput(1)}return this.tok.T_NS_SEPARATOR},"/":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_DIV_EQUAL):"/"},":":function(){return":"===this._input[this.offset]?(this.input(),this.tok.T_DOUBLE_COLON):":"},"(":function(){var t=this.offset;if(this.input(),this.is_TABSPACE()&&this.consume_TABSPACE().input(),this.is_LABEL_START()){var e=this.yytext.length;this.consume_LABEL();var i=this.yytext.substring(e-1).toLowerCase(),s=this.castKeywords[i];if("number"==typeof s&&(this.input(),this.is_TABSPACE()&&this.consume_TABSPACE().input(),")"===this._input[this.offset-1]))return s}return this.unput(this.offset-t),"("},"=":function(){var t=this._input[this.offset];return">"===t?(this.input(),this.tok.T_DOUBLE_ARROW):"="===t?"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_IS_IDENTICAL):(this.input(),this.tok.T_IS_EQUAL):"="},"+":function(){var t=this._input[this.offset];return"+"===t?(this.input(),this.tok.T_INC):"="===t?(this.input(),this.tok.T_PLUS_EQUAL):"+"},"!":function(){return"="===this._input[this.offset]?"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_IS_NOT_IDENTICAL):(this.input(),this.tok.T_IS_NOT_EQUAL):"!"},"?":function(){return this.version>=700&&"?"===this._input[this.offset]?this.version>=704&&"="===this._input[this.offset+1]?(this.consume(2),this.tok.T_COALESCE_EQUAL):(this.input(),this.tok.T_COALESCE):this.version>=800&&"-"===this._input[this.offset]&&">"===this._input[this.offset+1]?(this.consume(2),this.tok.T_NULLSAFE_OBJECT_OPERATOR):"?"},"<":function(){var t=this._input[this.offset];return"<"===t?"="===(t=this._input[this.offset+1])?(this.consume(2),this.tok.T_SL_EQUAL):"<"===t&&this.is_HEREDOC()?this.tok.T_START_HEREDOC:(this.input(),this.tok.T_SL):"="===t?(this.input(),this.version>=700&&">"===this._input[this.offset]?(this.input(),this.tok.T_SPACESHIP):this.tok.T_IS_SMALLER_OR_EQUAL):">"===t?(this.input(),this.tok.T_IS_NOT_EQUAL):"<"},">":function(){var t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_IS_GREATER_OR_EQUAL):">"===t?"="===(t=this._input[this.offset+1])?(this.consume(2),this.tok.T_SR_EQUAL):(this.input(),this.tok.T_SR):">"},"*":function(){var t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_MUL_EQUAL):"*"===t?(this.input(),"="===this._input[this.offset]?(this.input(),this.tok.T_POW_EQUAL):this.tok.T_POW):"*"},".":function(){var t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_CONCAT_EQUAL):"."===t&&"."===this._input[this.offset+1]?(this.consume(2),this.tok.T_ELLIPSIS):"."},"%":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_MOD_EQUAL):"%"},"&":function(){var t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_AND_EQUAL):"&"===t?(this.input(),this.tok.T_BOOLEAN_AND):"&"},"|":function(){var t=this._input[this.offset];return"="===t?(this.input(),this.tok.T_OR_EQUAL):"|"===t?(this.input(),this.tok.T_BOOLEAN_OR):"|"},"^":function(){return"="===this._input[this.offset]?(this.input(),this.tok.T_XOR_EQUAL):"^"}}},b].forEach((function(t){for(var e in t)N.prototype[e]=t[e]}));var L=N,I=function(t,e,i){this.line=t,this.column=e,this.offset=i},S={read_class_declaration_statement:function(t){var e=this.node("class"),i=this.read_class_modifiers();if(this.token!==this.tok.T_CLASS)return this.error(this.tok.T_CLASS),this.next(),null;this.next().expect(this.tok.T_STRING);var s=this.node("identifier"),n=this.text();this.next(),s=s(n);var r=this.read_extends_from(),o=this.read_implements_list();this.expect("{");var h=e(s,r,o,this.next().read_class_body(!0,!1),i);return t&&(h.attrGroups=t),h},read_class_modifiers:function(){var t=this.read_class_modifier({readonly:0,final_or_abstract:0});return[0,0,t.final_or_abstract,t.readonly]},read_class_modifier:function(t){return this.token===this.tok.T_READ_ONLY?(this.next(),t.readonly=1,t=this.read_class_modifier(t)):0===t.final_or_abstract&&this.token===this.tok.T_ABSTRACT?(this.next(),t.final_or_abstract=1,t=this.read_class_modifier(t)):0===t.final_or_abstract&&this.token===this.tok.T_FINAL&&(this.next(),t.final_or_abstract=2,t=this.read_class_modifier(t)),t},read_class_body:function(t,e){for(var i=[],s=[];this.token!==this.EOF&&"}"!==this.token;)if(this.token!==this.tok.T_COMMENT)if(this.token!==this.tok.T_DOC_COMMENT)if(this.token!==this.tok.T_USE)if(e&&this.token===this.tok.T_CASE){var n=this.read_enum_case();this.expect(";")&&this.next(),i=i.concat(n)}else{this.token===this.tok.T_ATTRIBUTE&&(s=this.read_attr_list());var r=this.position(),o=this.read_member_flags(!1);if(this.token!==this.tok.T_CONST)if(t&&this.token===this.tok.T_VAR&&(this.next().expect(this.tok.T_VARIABLE),o[0]=null,o[1]=0),this.token===this.tok.T_FUNCTION)i.push(this.read_function(!1,o,s,r)),s=[];else if(t&&(this.token===this.tok.T_VARIABLE||this.version>=801&&this.token===this.tok.T_READ_ONLY||this.version>=704&&("?"===this.token||this.token===this.tok.T_ARRAY||this.token===this.tok.T_CALLABLE||this.token===this.tok.T_NAMESPACE||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_STRING))){var h=this.read_variable_list(o,s);s=[],this.expect(";"),this.next(),i=i.concat(h)}else this.error([this.tok.T_CONST].concat(_(t?[this.tok.T_VARIABLE]:[]),_(e?[this.tok.T_CASE]:[]),[this.tok.T_FUNCTION])),this.next();else{var a=this.read_constant_list(o,s);this.expect(";")&&this.next(),i=i.concat(a)}}else i=i.concat(this.read_trait_use_statement());else i.push(this.read_doc_comment());else i.push(this.read_comment());return this.expect("}"),this.next(),i},read_variable_list:function(t,e){var i=this.node("propertystatement"),s=this.read_list((function(){var t=this.node("property"),i=!1;this.token===this.tok.T_READ_ONLY&&(i=!0,this.next());var s=l(this.read_optional_type(),2),n=s[0],r=s[1];this.expect(this.tok.T_VARIABLE);var o=this.node("identifier"),h=this.text().substring(1);return this.next(),o=o(h),";"===this.token||","===this.token?t(o,null,i,n,r,e||[]):"="===this.token?t(o,this.next().read_expr(),i,n,r,e||[]):(this.expect([",",";","="]),t(o,null,n,r,e||[]))}),",");return i(null,s,t)},read_constant_list:function(t,e){this.expect(this.tok.T_CONST)&&this.next();var i=this.node("classconstant"),s=this.read_list((function(){var t=this.node("constant"),e=null,i=null;if(this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){e=this.node("identifier");var s=this.text();this.next(),e=e(s)}else this.expect("IDENTIFIER");return this.expect("=")&&(i=this.next().read_expr()),t(e,i)}),",");return i(null,s,t,e||[])},read_member_flags:function(t){var e=[-1,-1,-1];if(this.is("T_MEMBER_FLAGS")){var i=0,s=0;do{switch(this.token){case this.tok.T_PUBLIC:i=0,s=0;break;case this.tok.T_PROTECTED:i=0,s=1;break;case this.tok.T_PRIVATE:i=0,s=2;break;case this.tok.T_STATIC:i=1,s=1;break;case this.tok.T_ABSTRACT:i=2,s=1;break;case this.tok.T_FINAL:i=2,s=2}t&&(0==i&&2==s?(this.expect([this.tok.T_PUBLIC,this.tok.T_PROTECTED]),s=-1):2==i&&1==s&&(this.error(),s=-1)),-1!==e[i]?this.error():-1!==s&&(e[i]=s)}while(this.next().is("T_MEMBER_FLAGS"))}return-1==e[1]&&(e[1]=0),-1==e[2]&&(e[2]=0),e},read_optional_type:function(){var t=!1;"?"===this.token&&(t=!0,this.next());var e=this.read_types();if(t&&!e&&this.raiseError("Expecting a type definition combined with nullable operator"),!t&&!e)return[!1,null];if("|"===this.token){e=[e];do{this.next();var i=this.read_type();if(!i){this.raiseError("Expecting a type definition");break}e.push(i)}while("|"===this.token)}return[t,e]},read_interface_declaration_statement:function(t){var e=this.node("interface");if(this.token!==this.tok.T_INTERFACE)return this.error(this.tok.T_INTERFACE),this.next(),null;this.next().expect(this.tok.T_STRING);var i=this.node("identifier"),s=this.text();this.next(),i=i(s);var n=this.read_interface_extends_list();return this.expect("{"),e(i,n,this.next().read_interface_body(),t||[])},read_interface_body:function(){for(var t=[],e=[];this.token!==this.EOF&&"}"!==this.token;)if(this.token!==this.tok.T_COMMENT)if(this.token!==this.tok.T_DOC_COMMENT){var i=this.position();e=this.read_attr_list();var s=this.read_member_flags(!0);if(this.token==this.tok.T_CONST){var n=this.read_constant_list(s,e);this.expect(";")&&this.next(),t=t.concat(n),e=[]}else if(this.token===this.tok.T_FUNCTION){var r=this.read_function_declaration(2,s,e,i);r.parseFlags(s),t.push(r),this.expect(";")&&this.next(),e=[]}else this.error([this.tok.T_CONST,this.tok.T_FUNCTION]),this.next()}else t.push(this.read_doc_comment());else t.push(this.read_comment());return this.expect("}")&&this.next(),t},read_trait_declaration_statement:function(){var t=this.node("trait");if(this.token!==this.tok.T_TRAIT)return this.error(this.tok.T_TRAIT),this.next(),null;this.next().expect(this.tok.T_STRING);var e=this.node("identifier"),i=this.text();return this.next(),e=e(i),this.expect("{"),t(e,this.next().read_class_body(!0,!1))},read_trait_use_statement:function(){var t=this.node("traituse");this.expect(this.tok.T_USE)&&this.next();for(var e=[this.read_namespace_name()],i=null;","===this.token;)e.push(this.next().read_namespace_name());if("{"===this.token){for(i=[];this.next().token!==this.EOF&&"}"!==this.token;)i.push(this.read_trait_use_alias()),this.expect(";");this.expect("}")&&this.next()}else this.expect(";")&&this.next();return t(e,i)},read_trait_use_alias:function(){var t,e=this.node(),i=null;if(this.is("IDENTIFIER")){t=this.node("identifier");var s=this.text();this.next(),t=t(s)}else if(t=this.read_namespace_name(),this.token===this.tok.T_DOUBLE_COLON)if(this.next(),this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){i=t,t=this.node("identifier");var n=this.text();this.next(),t=t(n)}else this.expect(this.tok.T_STRING);else t=t.name;if(this.token===this.tok.T_INSTEADOF)return e("traitprecedence",i,t,this.next().read_name_list());if(this.token===this.tok.T_AS){var r=null,o=null;if(this.next().is("T_MEMBER_FLAGS")&&(r=this.read_member_flags()),this.token===this.tok.T_STRING||this.version>=700&&this.is("IDENTIFIER")){o=this.node("identifier");var h=this.text();this.next(),o=o(h)}else!1===r&&this.expect(this.tok.T_STRING);return e("traitalias",i,t,o,r)}return this.expect([this.tok.T_AS,this.tok.T_INSTEADOF]),e("traitalias",i,t,null,null)}},C={read_expr:function(t){var e=this.node();if("@"===this.token)return t||(t=this.next().read_expr()),e("silent",t);if(t||(t=this.read_expr_item()),"|"===this.token)return e("bin","|",t,this.next().read_expr());if("&"===this.token)return e("bin","&",t,this.next().read_expr());if("^"===this.token)return e("bin","^",t,this.next().read_expr());if("."===this.token)return e("bin",".",t,this.next().read_expr());if("+"===this.token)return e("bin","+",t,this.next().read_expr());if("-"===this.token)return e("bin","-",t,this.next().read_expr());if("*"===this.token)return e("bin","*",t,this.next().read_expr());if("/"===this.token)return e("bin","/",t,this.next().read_expr());if("%"===this.token)return e("bin","%",t,this.next().read_expr());if(this.token===this.tok.T_POW)return e("bin","**",t,this.next().read_expr());if(this.token===this.tok.T_SL)return e("bin","<<",t,this.next().read_expr());if(this.token===this.tok.T_SR)return e("bin",">>",t,this.next().read_expr());if(this.token===this.tok.T_BOOLEAN_OR)return e("bin","||",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_OR)return e("bin","or",t,this.next().read_expr());if(this.token===this.tok.T_BOOLEAN_AND)return e("bin","&&",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_AND)return e("bin","and",t,this.next().read_expr());if(this.token===this.tok.T_LOGICAL_XOR)return e("bin","xor",t,this.next().read_expr());if(this.token===this.tok.T_IS_IDENTICAL)return e("bin","===",t,this.next().read_expr());if(this.token===this.tok.T_IS_NOT_IDENTICAL)return e("bin","!==",t,this.next().read_expr());if(this.token===this.tok.T_IS_EQUAL)return e("bin","==",t,this.next().read_expr());if(this.token===this.tok.T_IS_NOT_EQUAL)return e("bin","!=",t,this.next().read_expr());if("<"===this.token)return e("bin","<",t,this.next().read_expr());if(">"===this.token)return e("bin",">",t,this.next().read_expr());if(this.token===this.tok.T_IS_SMALLER_OR_EQUAL)return e("bin","<=",t,this.next().read_expr());if(this.token===this.tok.T_IS_GREATER_OR_EQUAL)return e("bin",">=",t,this.next().read_expr());if(this.token===this.tok.T_SPACESHIP)return e("bin","<=>",t,this.next().read_expr());if(this.token===this.tok.T_INSTANCEOF&&(t=e("bin","instanceof",t,this.next().read_class_name_reference()),";"!==this.token&&this.token!==this.tok.T_INLINE_HTML&&this.token!==this.EOF&&(t=this.read_expr(t))),this.token===this.tok.T_COALESCE)return e("bin","??",t,this.next().read_expr());if("?"===this.token){var i=null;return":"!==this.next().token&&(i=this.read_expr()),this.expect(":")&&this.next(),e("retif",t,i,this.read_expr())}return e.destroy(t),t},read_expr_cast:function(t){return this.node("cast")(t,this.text(),this.next().read_expr())},read_isset_variable:function(){return this.read_expr()},read_isset_variables:function(){return this.read_function_list(this.read_isset_variable,",")},read_internal_functions_in_yacc:function(){var t=null;switch(this.token){case this.tok.T_ISSET:t=this.node("isset"),this.next().expect("(")&&this.next();var e=this.read_isset_variables();this.expect(")")&&this.next(),t=t(e);break;case this.tok.T_EMPTY:t=this.node("empty"),this.next().expect("(")&&this.next();var i=this.read_expr();this.expect(")")&&this.next(),t=t(i);break;case this.tok.T_INCLUDE:t=this.node("include")(!1,!1,this.next().read_expr());break;case this.tok.T_INCLUDE_ONCE:t=this.node("include")(!0,!1,this.next().read_expr());break;case this.tok.T_EVAL:t=this.node("eval"),this.next().expect("(")&&this.next();var s=this.read_expr();this.expect(")")&&this.next(),t=t(s);break;case this.tok.T_REQUIRE:t=this.node("include")(!1,!0,this.next().read_expr());break;case this.tok.T_REQUIRE_ONCE:t=this.node("include")(!0,!0,this.next().read_expr())}return t},read_optional_expr:function(t){return this.token!==t?this.read_expr():null},read_exit_expr:function(){var t=null;return"("===this.token&&(this.next(),t=this.read_optional_expr(")"),this.expect(")")&&this.next()),t},read_expr_item:function(){var t,e,i=[];if("+"===this.token)return this.node("unary")("+",this.next().read_expr());if("-"===this.token)return this.node("unary")("-",this.next().read_expr());if("!"===this.token)return this.node("unary")("!",this.next().read_expr());if("~"===this.token)return this.node("unary")("~",this.next().read_expr());if("("===this.token)return(e=this.next().read_expr()).parenthesizedExpression=!0,this.expect(")")&&this.next(),this.handleDereferencable(e);if("`"===this.token)return this.read_encapsed_string("`");if(this.token===this.tok.T_LIST){var s=null,n=this.innerList;t=this.node("list"),n||(s=this.node("assign")),this.next().expect("(")&&this.next(),this.innerList||(this.innerList=!0);var r=this.read_array_pair_list(!1);this.expect(")")&&this.next();for(var o=!1,h=0;h<r.length;h++)if(null!==r[h]&&"noop"!==r[h].kind){o=!0;break}return o||this.raiseError("Fatal Error : Cannot use empty list on line "+this.lexer.yylloc.first_line),n?t(r,!1):(this.innerList=!1,this.expect("=")?s(t(r,!1),this.next().read_expr(),"="):t(r,!1))}if(this.token===this.tok.T_ATTRIBUTE&&(i=this.read_attr_list()),this.token===this.tok.T_CLONE)return this.node("clone")(this.next().read_expr());switch(this.token){case this.tok.T_INC:return this.node("pre")("+",this.next().read_variable(!1,!1));case this.tok.T_DEC:return this.node("pre")("-",this.next().read_variable(!1,!1));case this.tok.T_NEW:return this.read_new_expr();case this.tok.T_ISSET:case this.tok.T_EMPTY:case this.tok.T_INCLUDE:case this.tok.T_INCLUDE_ONCE:case this.tok.T_EVAL:case this.tok.T_REQUIRE:case this.tok.T_REQUIRE_ONCE:return this.read_internal_functions_in_yacc();case this.tok.T_MATCH:return this.read_match_expression();case this.tok.T_INT_CAST:return this.read_expr_cast("int");case this.tok.T_DOUBLE_CAST:return this.read_expr_cast("float");case this.tok.T_STRING_CAST:return this.read_expr_cast(-1!==this.text().indexOf("binary")?"binary":"string");case this.tok.T_ARRAY_CAST:return this.read_expr_cast("array");case this.tok.T_OBJECT_CAST:return this.read_expr_cast("object");case this.tok.T_BOOL_CAST:return this.read_expr_cast("bool");case this.tok.T_UNSET_CAST:return this.read_expr_cast("unset");case this.tok.T_THROW:return this.version<800&&this.raiseError("PHP 8+ is required to use throw as an expression"),this.node("throw")(this.next().read_expr());case this.tok.T_EXIT:var a="die"===this.lexer.yytext.toLowerCase();return t=this.node("exit"),this.next(),t(this.read_exit_expr(),a);case this.tok.T_PRINT:return this.node("print")(this.next().read_expr());case this.tok.T_YIELD:var c=null,u=null;return t=this.node("yield"),this.next().is("EXPR")&&(c=this.read_expr(),this.token===this.tok.T_DOUBLE_ARROW&&(u=c,c=this.next().read_expr())),t(c,u);case this.tok.T_YIELD_FROM:return(t=this.node("yieldfrom"))(e=this.next().read_expr());case this.tok.T_FN:case this.tok.T_FUNCTION:return this.read_inline_function(void 0,i);case this.tok.T_STATIC:var l=[this.token,this.lexer.getState()];if(this.next(),this.token===this.tok.T_FUNCTION||this.version>=704&&this.token===this.tok.T_FN)return this.read_inline_function([0,1,0],i);this.lexer.tokens.push(l),this.next()}if(this.is("VARIABLE")){t=this.node();var _="identifier"===(e=this.read_variable(!1,!1)).kind||"staticlookup"===e.kind&&"identifier"===e.offset.kind;switch(this.token){case"=":return _&&this.error("VARIABLE"),"&"==this.next().token?this.read_assignref(t,e):t("assign",e,this.read_expr(),"=");case this.tok.T_PLUS_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"+=");case this.tok.T_MINUS_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"-=");case this.tok.T_MUL_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"*=");case this.tok.T_POW_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"**=");case this.tok.T_DIV_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"/=");case this.tok.T_CONCAT_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),".=");case this.tok.T_MOD_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"%=");case this.tok.T_AND_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"&=");case this.tok.T_OR_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"|=");case this.tok.T_XOR_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"^=");case this.tok.T_SL_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"<<=");case this.tok.T_SR_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),">>=");case this.tok.T_COALESCE_EQUAL:return _&&this.error("VARIABLE"),t("assign",e,this.next().read_expr(),"??=");case this.tok.T_INC:return _&&this.error("VARIABLE"),this.next(),t("post","+",e);case this.tok.T_DEC:return _&&this.error("VARIABLE"),this.next(),t("post","-",e);default:t.destroy(e)}}else{if(this.is("SCALAR")){if(t=this.node(),"array"===(e=this.read_scalar()).kind&&e.shortForm&&"="===this.token){var p=this.convertToList(e);return e.loc&&(p.loc=e.loc),t("assign",p,this.next().read_expr(),"=")}return t.destroy(e),this.handleDereferencable(e)}this.error("EXPR"),this.next()}return e},convertToList:function(t){var e=this,i=t.items.map((function(t){return t.value&&"array"===t.value.kind&&t.value.shortForm&&(t.value=e.convertToList(t.value)),t})),s=this.node("list")(i,!0);return t.loc&&(s.loc=t.loc),t.leadingComments&&(s.leadingComments=t.leadingComments),t.trailingComments&&(s.trailingComments=t.trailingComments),s},read_assignref:function(t,e){var i;return this.next(),this.token===this.tok.T_NEW?(this.version>=700&&this.error(),i=this.read_new_expr()):i=this.read_variable(!1,!1),t("assignref",e,i)},read_inline_function:function(t,e){if(this.token===this.tok.T_FUNCTION){var i=this.read_function(!0,t,e);return i.attrGroups=e,i}!this.version>=704&&this.raiseError("Arrow Functions are not allowed");var s=this.node("arrowfunc");this.expect(this.tok.T_FN)&&this.next();var n=this.is_reference();this.expect("(")&&this.next();var r=this.read_parameter_list();this.expect(")")&&this.next();var o=!1,h=null;":"===this.token&&("?"===this.next().token&&(o=!0,this.next()),h=this.read_types()),this.expect(this.tok.T_DOUBLE_ARROW)&&this.next();var a=s(r,n,this.read_expr(),h,o,!!t);return a.attrGroups=e,a},read_match_expression:function(){var t=this.node("match");this.expect(this.tok.T_MATCH)&&this.next(),this.version<800&&this.raiseError("Match statements are not allowed before PHP 8");var e,i;return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(")")&&this.next(),this.expect("{")&&this.next(),i=this.read_match_arms(),this.expect("}")&&this.next(),t(e,i)},read_match_arms:function(){var t=this;return this.read_list((function(){return t.read_match_arm()}),",",!0)},read_match_arm:function(){if("}"!==this.token)return this.node("matcharm")(this.read_match_arm_conds(),this.read_expr())},read_match_arm_conds:function(){var t=[];if(this.token===this.tok.T_DEFAULT)t=null,this.next();else for(t.push(this.read_expr());","===this.token;){if(this.next(),this.token===this.tok.T_DOUBLE_ARROW)return this.next(),t;t.push(this.read_expr())}return this.expect(this.tok.T_DOUBLE_ARROW)&&this.next(),t},read_attribute:function(){var t=this.text(),e=[];return this.next(),"("===this.token&&(e=this.read_argument_list()),this.node("attribute")(t,e)},read_attr_list:function(){var t=[];if(this.token===this.tok.T_ATTRIBUTE)do{var e=this.node("attrgroup")([]);for(this.next(),e.attrs.push(this.read_attribute());","===this.token;)this.next(),"]"!==this.token&&e.attrs.push(this.read_attribute());t.push(e),this.expect("]"),this.next()}while(this.token===this.tok.T_ATTRIBUTE);return t},read_new_expr:function(){var t=this.node("new");this.expect(this.tok.T_NEW)&&this.next();var e=[];if("("===this.token){this.next();var i=this.read_expr();return this.expect(")"),this.next(),"("===this.token&&(e=this.read_argument_list()),t(i,e)}var s=this.read_attr_list();if(this.token===this.tok.T_CLASS){var n=this.node("class");"("===this.next().token&&(e=this.read_argument_list());var r=this.read_extends_from(),o=this.read_implements_list(),h=null;this.expect("{")&&(h=this.next().read_class_body(!0,!1));var a=n(null,r,o,h,[0,0,0]);return a.attrGroups=s,t(a,e)}for(var c=this.read_new_class_name();"["===this.token;){var u=this.node("offsetlookup"),l=this.next().read_encaps_var_offset();this.expect("]")&&this.next(),c=u(c,l)}return"("===this.token&&(e=this.read_argument_list()),t(c,e)},read_new_class_name:function(){if(this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_STRING||this.token===this.tok.T_NAMESPACE){var t=this.read_namespace_name(!0);return this.token===this.tok.T_DOUBLE_COLON&&(t=this.read_static_getter(t)),t}if(this.is("VARIABLE"))return this.read_variable(!0,!1);this.expect([this.tok.T_STRING,"VARIABLE"])},handleDereferencable:function(t){for(;this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR||this.token===this.tok.T_DOUBLE_COLON)t=this.recursive_variable_chain_scan(t,!1,!1,!0);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)t=this.read_dereferencable(t);else{if("("!==this.token)return t;t=this.node("call")(t,this.read_argument_list())}return t}},O={is_reference:function(){return"&"===this.token&&(this.next(),!0)},is_variadic:function(){return this.token===this.tok.T_ELLIPSIS&&(this.next(),!0)},read_function:function(t,e,i,s){var n=this.read_function_declaration(t?1:e?2:0,e&&1===e[1],i||[],s);return e&&1==e[2]?(n.parseFlags(e),this.expect(";")&&this.next()):(this.expect("{")&&(n.body=this.read_code_block(!1),n.loc&&n.body.loc&&(n.loc.end=n.body.loc.end)),!t&&e&&n.parseFlags(e)),n},read_function_declaration:function(t,e,i,s){var n=this,r="function";1===t?r="closure":2===t&&(r="method");var o=this.node(r);this.expect(this.tok.T_FUNCTION)&&this.next();var h=this.is_reference(),a=!1,c=[],u=null,l=!1;if(1!==t){var _=this.node("identifier");2===t?this.version>=700?this.token===this.tok.T_STRING||this.is("IDENTIFIER")?(a=this.text(),this.next()):this.version<704&&this.error("IDENTIFIER"):this.token===this.tok.T_STRING?(a=this.text(),this.next()):this.error("IDENTIFIER"):this.version>=700?this.token===this.tok.T_STRING?(a=this.text(),this.next()):this.version>=704?this.expect("(")||this.next():(this.error(this.tok.T_STRING),this.next()):(this.expect(this.tok.T_STRING)&&(a=this.text()),this.next()),a=_(a)}this.expect("(")&&this.next();var p=this.read_parameter_list("__construct"===a.name);this.expect(")")&&this.next(),1===t&&(c=this.read_lexical_vars()),":"===this.token&&("?"===this.next().token&&(l=!0,this.next()),u=this.read_types());var f=function(t){return t.attrGroups=i||[],s&&t.loc&&(t.loc.start=s,t.loc.source&&(t.loc.source=n.lexer._input.substr(t.loc.start.offset,t.loc.end.offset-t.loc.start.offset))),t};return f(1===t?o(p,h,c,u,l,e):o(a,p,h,u,l))},read_lexical_vars:function(){var t=[];return this.token===this.tok.T_USE&&(this.next(),this.expect("(")&&this.next(),t=this.read_lexical_var_list(),this.expect(")")&&this.next()),t},read_list_with_dangling_comma:function(t){for(var e=[];this.token!=this.EOF;){if(e.push(t()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}if(this.next(),this.version>=800&&")"===this.token)return e}return e},read_lexical_var_list:function(){return this.read_list_with_dangling_comma(this.read_lexical_var.bind(this))},read_lexical_var:function(){if("&"===this.token)return this.read_byref(this.read_lexical_var.bind(this));var t=this.node("variable");this.expect(this.tok.T_VARIABLE);var e=this.text().substring(1);return this.next(),t(e,!1)},read_parameter_list:function(t){if(")"!==this.token){var e=!1;return this.read_list_with_dangling_comma(function(){var i=this.read_parameter(t);return i&&(e&&this.raiseError("Unexpected parameter after a variadic parameter"),i.variadic&&(e=!0)),i}.bind(this),",")}return[]},read_parameter:function(t){var e,i=this.node("parameter"),s=null,n=null,r=!1,o=!1,h=[];this.token===this.tok.T_ATTRIBUTE&&(h=this.read_attr_list()),this.version>=801&&this.token===this.tok.T_READ_ONLY&&(t?(this.next(),o=!0):this.raiseError("readonly properties can be used only on class constructor"));var a=this.read_promoted();!o&&this.version>=801&&this.token===this.tok.T_READ_ONLY&&(t?(this.next(),o=!0):this.raiseError("readonly properties can be used only on class constructor")),"?"===this.token&&(this.next(),r=!0),e=this.read_types(),r&&!e&&this.raiseError("Expecting a type definition combined with nullable operator");var c=this.is_reference(),u=this.is_variadic();if(this.expect(this.tok.T_VARIABLE)){s=this.node("identifier");var l=this.text().substring(1);this.next(),s=s(l)}"="==this.token&&(n=this.next().read_expr());var _=i(s,e,n,c,u,o,r,a);return h&&(_.attrGroups=h),_},read_types:function(){var t="unset",e="union",i="intersection",s=[],n=t,r=this.read_type();if(!r)return null;for(s.push(r);"|"===this.token||this.version>=801&&"&"===this.token;){var o=this.peek();if(o===this.tok.T_ELLIPSIS||o===this.tok.T_VARIABLE)break;n===t?n="|"===this.token?e:i:(n===e&&"|"!==this.token||n===i&&"&"!==this.token)&&this.raiseError('Unexpect token "'+this.token+'", "|" and "&" can not be mixed'),this.next(),s.push(this.read_type())}return 1===s.length?s[0]:n===i?this.node("intersectiontype")(s):this.node("uniontype")(s)},read_promoted:function(){return this.token===this.tok.T_PUBLIC?(this.next(),1):this.token===this.tok.T_PROTECTED?(this.next(),2):this.token===this.tok.T_PRIVATE?(this.next(),4):0},read_argument_list:function(){var t=[];return this.expect("(")&&this.next(),this.version>=801&&this.token===this.tok.T_ELLIPSIS&&")"===this.peek()?(t.push(this.node("variadicplaceholder")()),this.next()):")"!==this.token&&(t=this.read_non_empty_argument_list()),this.expect(")")&&this.next(),t},read_non_empty_argument_list:function(){var t=!1;return this.read_function_list(function(){var e=this.read_argument();if(e){var i="variadic"===e.kind;t&&!i&&this.raiseError("Unexpected non-variadic argument after a variadic argument"),i&&(t=!0)}return e}.bind(this),",")},read_argument:function(){if(this.token===this.tok.T_ELLIPSIS)return this.node("variadic")(this.next().read_expr());if((this.token===this.tok.T_STRING||Object.values(this.lexer.keywords).includes(this.token))&&":"===this.peek())return this.version<800&&this.raiseError("PHP 8+ is required to use named arguments"),this.node("namedargument")(this.text(),this.next().next().read_expr());return this.read_expr()},read_type:function(){var t=this.node();if(this.token===this.tok.T_ARRAY||this.token===this.tok.T_CALLABLE){var e=this.text();return this.next(),t("typereference",e.toLowerCase(),e)}if(this.token===this.tok.T_NAME_RELATIVE||this.token===this.tok.T_NAME_QUALIFIED||this.token===this.tok.T_NAME_FULLY_QUALIFIED||this.token===this.tok.T_STRING||this.token===this.tok.T_STATIC){var i=this.text(),s=[this.token,this.lexer.getState()];return this.next(),this.token!==this.tok.T_NS_SEPARATOR&&this.ast.typereference.types.indexOf(i.toLowerCase())>-1?t("typereference",i.toLowerCase(),i):(this.lexer.tokens.push(s),this.next(),t.destroy(),this.read_namespace_name())}return t.destroy(),null}},R={"\\":"\\",$:"$",n:"\n",r:"\r",t:"\t",f:String.fromCharCode(12),v:String.fromCharCode(11),e:String.fromCharCode(27)},w={resolve_special_chars:function(t,e){return e?t.replace(/\\"/,'"').replace(/\\([\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u{([0-9a-fA-F]+)})/g,(function(t,e,i){return R[e]?R[e]:"x"===e[0]||"X"===e[0]?String.fromCodePoint(parseInt(e.substr(1),16)):"u"===e[0]?String.fromCodePoint(parseInt(i,16)):String.fromCodePoint(parseInt(e,8))})):t.replace(/\\\\/g,"\\").replace(/\\'/g,"'")},remove_heredoc_leading_whitespace_chars:function(t,e,i,s){if(0===e)return t;this.check_heredoc_indentation_level(t,e,i,s);var n=i?" ":"\t",r=new RegExp("\\n".concat(n,"{").concat(e,"}"),"g"),o=new RegExp("^".concat(n,"{").concat(e,"}"));return s&&(t=t.replace(o,"")),t.replace(r,"\n")},check_heredoc_indentation_level:function(t,e,i,s){var n=t.length,r=0,o=0,h=!0,a=i?" ":"\t",c=!1;if(!s){if(-1===(r=t.indexOf("\n")))return;r++}for(;r<n;)h?t[r]===a?o++:c=!0:h=!1,"\n"!==t[r]&&c&&o<e?this.raiseError("Invalid body indentation level (expecting an indentation at least ".concat(e,")")):c=!1,"\n"===t[r]&&(h=!0,o=0),r++},read_dereferencable_scalar:function(){var t=null;switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:var e=this.node("string"),i=this.text(),s=0;"b"!==i[0]&&"B"!==i[0]||(s=1);var n='"'===i[s];this.next(),e=e(n,this.resolve_special_chars(i.substring(s+1,i.length-1),n),1===s,i),t=this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(e):e;break;case this.tok.T_ARRAY:case"[":t=this.read_array()}return t},read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();var t,e;switch(this.token){case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:var i=this.node("number");return t=this.text(),this.next(),i(t,null);case this.tok.T_START_HEREDOC:if("ST_NOWDOC"===this.lexer.curCondition){var s=this.lexer.yylloc.first_offset;e=this.node("nowdoc"),t=this.next().text(),this.lexer.heredoc_label.indentation>0&&(t=t.substring(0,t.length-this.lexer.heredoc_label.indentation));var n=t[t.length-1];"\n"===n?t="\r"===t[t.length-2]?t.substring(0,t.length-2):t.substring(0,t.length-1):"\r"===n&&(t=t.substring(0,t.length-1)),this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE)&&this.next(),this.expect(this.tok.T_END_HEREDOC)&&this.next();var r=this.lexer._input.substring(s,this.lexer.yylloc.first_offset);return e=e(this.remove_heredoc_leading_whitespace_chars(t,this.lexer.heredoc_label.indentation,this.lexer.heredoc_label.indentation_uses_spaces,this.lexer.heredoc_label.first_encaps_node),r,this.lexer.heredoc_label.label),this.lexer.heredoc_label.finished=!0,e}return this.read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.read_encapsed_string('"');case'b"':case'B"':return this.read_encapsed_string('"',!0);case this.tok.T_CONSTANT_ENCAPSED_STRING:case this.tok.T_ARRAY:case"[":return this.read_dereferencable_scalar();default:var o=this.error("SCALAR");return this.next(),o}},read_dereferencable:function(t){var e,i,s=this.node("offsetlookup");return"["===this.token?(i=this.next().read_expr(),this.expect("]")&&this.next(),e=s(t,i)):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES&&(e=s(t,i=this.read_encapsed_string_item(!1))),e},read_encapsed_string_item:function(t){var e,i,s,n=this.node("encapsedpart"),r=null,o=!1,h=this.node();if(this.token===this.tok.T_ENCAPSED_AND_WHITESPACE){var a=this.text();this.next(),h=h("string",!1,this.version>=703&&!this.lexer.heredoc_label.finished?this.remove_heredoc_leading_whitespace_chars(this.resolve_special_chars(a,t),this.lexer.heredoc_label.indentation,this.lexer.heredoc_label.indentation_uses_spaces,this.lexer.heredoc_label.first_encaps_node):a,!1,a)}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){if(r="simple",o=!0,s=null,this.next().token===this.tok.T_STRING_VARNAME){s=this.node("variable");var c=this.text();this.next(),h.destroy(),"["===this.token?(s=s(c,!1),i=this.node("offsetlookup"),e=this.next().read_expr(),this.expect("]")&&this.next(),h=i(s,e)):h=s(c,!1)}else h=h("variable",this.read_expr(),!1);this.expect("}")&&this.next()}else if(this.token===this.tok.T_CURLY_OPEN)r="complex",h.destroy(),h=this.next().read_variable(!1,!1),this.expect("}")&&this.next();else if(this.token===this.tok.T_VARIABLE){if(r="simple",h.destroy(),h=this.read_simple_variable(),"["===this.token&&(i=this.node("offsetlookup"),e=this.next().read_encaps_var_offset(),this.expect("]")&&this.next(),h=i(h,e)),this.token===this.tok.T_OBJECT_OPERATOR){i=this.node("propertylookup"),this.next().expect(this.tok.T_STRING);var u=this.node("identifier");s=this.text(),this.next(),h=i(h,u(s))}}else{this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE);var l=this.text();this.next(),h.destroy(),h=h("string",!1,l,!1,l)}return this.lexer.heredoc_label.first_encaps_node=!1,n(h,r,o)},read_encapsed_string:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.lexer.yylloc.first_offset,s=this.node("encapsed");this.next();var n=this.lexer.yylloc.prev_offset-(e?1:0),r=[],o=null;for(o="`"===t?this.ast.encapsed.TYPE_SHELL:'"'===t?this.ast.encapsed.TYPE_STRING:this.ast.encapsed.TYPE_HEREDOC;this.token!==t&&this.token!==this.EOF;)r.push(this.read_encapsed_string_item(!0));if(r.length>0&&"encapsedpart"===r[r.length-1].kind&&"string"===r[r.length-1].expression.kind){var h=r[r.length-1].expression,a=h.value[h.value.length-1];"\n"===a?"\r"===h.value[h.value.length-2]?h.value=h.value.substring(0,h.value.length-2):h.value=h.value.substring(0,h.value.length-1):"\r"===a&&(h.value=h.value.substring(0,h.value.length-1))}this.expect(t)&&this.next();var c=this.lexer._input.substring("heredoc"===o?i:n-1,this.lexer.yylloc.first_offset);return s=s(r,c,o),t===this.tok.T_END_HEREDOC&&(s.label=this.lexer.heredoc_label.label,this.lexer.heredoc_label.finished=!0),s},get_magic_constant:function(){var t=this.node("magic"),e=this.text();return this.next(),t(e.toUpperCase(),e)}},D={read_top_statements:function(){for(var t=[];this.token!==this.EOF&&"}"!==this.token;){var e=this.read_top_statement();e&&(Array.isArray(e)?t=t.concat(e):t.push(e))}return t},read_top_statement:function(){var t=[];switch(this.token===this.tok.T_ATTRIBUTE&&(t=this.read_attr_list()),this.token){case this.tok.T_FUNCTION:return this.read_function(!1,!1,t);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:case this.tok.T_READ_ONLY:case this.tok.T_CLASS:return this.read_class_declaration_statement(t);case this.tok.T_INTERFACE:return this.read_interface_declaration_statement(t);case this.tok.T_TRAIT:return this.read_trait_declaration_statement();case this.tok.T_ENUM:return this.read_enum_declaration_statement(t);case this.tok.T_USE:return this.read_use_statement();case this.tok.T_CONST:var e=this.node("constantstatement"),i=this.next().read_const_list();return this.expectEndOfStatement(),e(null,i);case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:var s=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),this.expect(";"),this.lexer.done=!0,s(this.lexer._input.substring(this.lexer.offset));default:return this.read_statement()}},read_inner_statements:function(){for(var t=[];this.token!=this.EOF&&"}"!==this.token;){var e=this.read_inner_statement();e&&(Array.isArray(e)?t=t.concat(e):t.push(e))}return t},read_const_list:function(){return this.read_list((function(){this.expect(this.tok.T_STRING);var t=this.node("constant"),e=this.node("identifier"),i=this.text();return this.next(),e=e(i),this.expect("=")?t(e,this.next().read_expr()):t(e,null)}),",",!1)},read_declare_list:function(){for(var t=[];this.token!=this.EOF&&")"!==this.token;){this.expect(this.tok.T_STRING);var e=this.node("declaredirective"),i=this.node("identifier"),s=this.text();this.next(),i=i(s);var n=null;if(this.expect("=")&&(n=this.next().read_expr()),t.push(e(i,n)),","!==this.token)break;this.next()}return t},read_inner_statement:function(){var t=[];switch(this.token===this.tok.T_ATTRIBUTE&&(t=this.read_attr_list()),this.token){case this.tok.T_FUNCTION:var e=this.read_function(!1,!1);return e.attrGroups=t,e;case this.tok.T_ABSTRACT:case this.tok.T_FINAL:case this.tok.T_CLASS:return this.read_class_declaration_statement();case this.tok.T_INTERFACE:return this.read_interface_declaration_statement();case this.tok.T_TRAIT:return this.read_trait_declaration_statement();case this.tok.T_ENUM:return this.read_enum_declaration_statement();case this.tok.T_HALT_COMPILER:this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");var i=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),i=i(this.lexer._input.substring(this.lexer.offset)),this.expect(";")&&this.next(),i;default:return this.read_statement()}},read_statement:function(){switch(this.token){case"{":return this.read_code_block(!1);case this.tok.T_IF:return this.read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.read_for();case this.tok.T_FOREACH:return this.read_foreach();case this.tok.T_WHILE:return this.read_while();case this.tok.T_DO:return this.read_do();case this.tok.T_COMMENT:return this.read_comment();case this.tok.T_DOC_COMMENT:return this.read_doc_comment();case this.tok.T_RETURN:var t=this.node("return");this.next();var e=this.read_optional_expr(";");return this.expectEndOfStatement(),t(e);case this.tok.T_BREAK:case this.tok.T_CONTINUE:var i=this.node(this.token===this.tok.T_CONTINUE?"continue":"break");this.next();var s=this.read_optional_expr(";");return this.expectEndOfStatement(),i(s);case this.tok.T_GLOBAL:var n=this.node("global"),r=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),n(r);case this.tok.T_STATIC:var o=[this.token,this.lexer.getState()],h=this.node();if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(o);var a=this.next().read_expr();return this.expectEndOfStatement(a),h("expressionstatement",a)}if(this.token===this.tok.T_FUNCTION)return this.read_function(!0,[0,1,0]);var c=this.read_variable_declarations();return this.expectEndOfStatement(),h("static",c);case this.tok.T_ECHO:var u=this.node("echo"),l=this.text(),_="<?="===l||"<%="===l,p=this.next().read_function_list(this.read_expr,",");return this.expectEndOfStatement(),u(p,_);case this.tok.T_INLINE_HTML:var f=this.text(),d=this.lexer.yylloc.first_offset>0?this.lexer._input[this.lexer.yylloc.first_offset-1]:null,k="\r"===d||"\n"===d;k&&"\n"===d&&this.lexer.yylloc.first_offset>1&&"\r"===this.lexer._input[this.lexer.yylloc.first_offset-2]&&(d="\r\n");var T=this.node("inline");return this.next(),T(f,k?d+f:f);case this.tok.T_UNSET:var x=this.node("unset");this.next().expect("(")&&this.next();var E=this.read_function_list(this.read_variable,",");return this.expect(")")&&this.next(),this.expect(";")&&this.next(),x(E);case this.tok.T_DECLARE:var y,m=this.node("declare"),v=[];this.next().expect("(")&&this.next();var A=this.read_declare_list();if(this.expect(")")&&this.next(),":"===this.token){for(this.next();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)v.push(this.read_top_statement());0===v.length&&this.extractDoc&&this._docs.length>this._docIndex&&v.push(this.node("noop")()),this.expect(this.tok.T_ENDDECLARE)&&this.next(),this.expectEndOfStatement(),y=this.ast.declare.MODE_SHORT}else if("{"===this.token){for(this.next();this.token!=this.EOF&&"}"!==this.token;)v.push(this.read_top_statement());0===v.length&&this.extractDoc&&this._docs.length>this._docIndex&&v.push(this.node("noop")()),this.expect("}")&&this.next(),y=this.ast.declare.MODE_BLOCK}else this.expect(";")&&this.next(),y=this.ast.declare.MODE_NONE;return m(A,v,y);case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:var g=this.node("throw"),b=this.next().read_expr();return this.expectEndOfStatement(),g(b);case";":return this.next(),null;case this.tok.T_STRING:var N=this.node(),L=[this.token,this.lexer.getState()],I=this.text(),S=this.node("identifier");if(":"===this.next().token)return S=S(I),this.next(),N("label",S);S.destroy(),N.destroy(),this.lexer.tokens.push(L);var C=this.node("expressionstatement"),O=this.next().read_expr();return this.expectEndOfStatement(O),C(O);case this.tok.T_GOTO:var R=this.node("goto"),w=null;if(this.next().expect(this.tok.T_STRING)){w=this.node("identifier");var D=this.text();this.next(),w=w(D),this.expectEndOfStatement()}return R(w);default:var U=this.node("expressionstatement"),P=this.read_expr();return this.expectEndOfStatement(P),U(P)}},read_code_block:function(t){var e=this.node("block");this.expect("{")&&this.next();var i=t?this.read_top_statements():this.read_inner_statements();return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect("}")&&this.next(),e(null,i)}},U={read_variable:function(t,e){var i;if("&"===this.token)return this.read_byref(this.read_variable.bind(this,t,e));if(this.is([this.tok.T_VARIABLE,"$"]))i=this.read_reference_variable(e);else if(this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_NAMESPACE])){i=this.node();var s=this.read_namespace_name();if(this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token&&-1===["parentreference","selfreference"].indexOf(s.kind)){var n=s.name.toLowerCase();"true"===n?i=s.destroy(i("boolean",!0,s.name)):"false"===n?i=s.destroy(i("boolean",!1,s.name)):"null"===n?i=s.destroy(i("nullkeyword",s.name)):(i.destroy(s),i=s)}else i.destroy(s),i=s}else if(this.token===this.tok.T_STATIC){i=this.node("staticreference");var r=this.text();this.next(),i=i(r)}else this.expect("VARIABLE");return this.token===this.tok.T_DOUBLE_COLON&&(i=this.read_static_getter(i,e)),this.recursive_variable_chain_scan(i,t,e)},read_static_getter:function(t,e){var i,s,n=this.node("staticlookup");return this.next().is([this.tok.T_VARIABLE,"$"])?i=this.read_reference_variable(e):this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS||this.version>=700&&this.is("IDENTIFIER")?(i=this.node("identifier"),s=this.text(),this.next(),i=i(s)):"{"===this.token?(i=this.node("literal"),s=this.next().read_expr(),this.expect("}")&&this.next(),i=i("literal",s,null),this.expect("(")):(this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),i=this.node("identifier"),s=this.text(),this.next(),i=i(s)),n(t,i)},read_what:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=null,i=null;switch(this.next().token){case this.tok.T_STRING:e=this.node("identifier"),i=this.text(),this.next(),e=e(i),t&&this.token===this.tok.T_OBJECT_OPERATOR&&this.error();break;case this.tok.T_VARIABLE:e=this.node("variable"),i=this.text().substring(1),this.next(),e=e(i,!1);break;case"$":e=this.node(),this.next().expect(["$","{",this.tok.T_VARIABLE]),"{"===this.token?(i=this.next().read_expr(),this.expect("}")&&this.next(),e=e("variable",i,!0)):e=e("variable",i=this.read_expr(),!1);break;case"{":e=this.node("encapsedpart"),i=this.next().read_expr(),this.expect("}")&&this.next(),e=e(i,"complex",!1);break;default:this.error([this.tok.T_STRING,this.tok.T_VARIABLE,"$","{"]),e=this.node("identifier"),i=this.text(),this.next(),e=e(i)}return e},recursive_variable_chain_scan:function(t,e,i){var s,n;t:for(;this.token!=this.EOF;)switch(this.token){case"(":if(e)return t;t=this.node("call")(t,this.read_argument_list());break;case"[":case"{":var r="["===this.token;if(s=this.node("offsetlookup"),this.next(),n=!1,i)n=this.read_encaps_var_offset(),this.expect(r?"]":"}")&&this.next();else(r?"]"!==this.token:"}"!==this.token)?(n=this.read_expr(),this.expect(r?"]":"}")&&this.next()):this.next();t=s(t,n);break;case this.tok.T_DOUBLE_COLON:"staticlookup"===t.kind&&"identifier"===t.offset.kind&&this.error(),t=(s=this.node("staticlookup"))(t,this.read_what(!0));break;case this.tok.T_OBJECT_OPERATOR:t=(s=this.node("propertylookup"))(t,this.read_what());break;case this.tok.T_NULLSAFE_OBJECT_OPERATOR:t=(s=this.node("nullsafepropertylookup"))(t,this.read_what());break;default:break t}return t},read_encaps_var_offset:function(){var t=this.node();if(this.token===this.tok.T_STRING){var e=this.text();this.next(),t=t("identifier",e)}else if(this.token===this.tok.T_NUM_STRING){var i=this.text();this.next(),t=t("number",i,null)}else if("-"===this.token){this.next();var s=-1*this.text();this.expect(this.tok.T_NUM_STRING)&&this.next(),t=t("number",s,null)}else if(this.token===this.tok.T_VARIABLE){var n=this.text().substring(1);this.next(),t=t("variable",n,!1)}else{this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,"-",this.tok.T_VARIABLE]);var r=this.text();this.next(),t=t("identifier",r)}return t},read_reference_variable:function(t){for(var e,i=this.read_simple_variable();this.token!=this.EOF;){var s=this.node();if("{"!=this.token||t){s.destroy();break}e=this.next().read_expr(),this.expect("}")&&this.next(),i=s("offsetlookup",i,e)}return i},read_simple_variable:function(){var t,e=this.node("variable");if(this.expect([this.tok.T_VARIABLE,"$"])&&this.token===this.tok.T_VARIABLE)t=this.text().substring(1),this.next(),e=e(t,!1);else switch("$"===this.token&&this.next(),this.token){case"{":var i=this.next().read_expr();this.expect("}")&&this.next(),e=e(i,!0);break;case"$":e=e(this.read_simple_variable(),!1);break;case this.tok.T_VARIABLE:t=this.text().substring(1);var s=this.node("variable");this.next(),e=e(s(t,!1),!1);break;default:this.error(["{","$",this.tok.T_VARIABLE]),t=this.text(),this.next(),e=e(t,!1)}return e}},P=I;function F(t){return"."!=t&&","!=t&&!isNaN(parseFloat(t))&&isFinite(t)}var M=function(t,e){this.lexer=t,this.ast=e,this.tok=t.tok,this.EOF=t.EOF,this.token=null,this.prev=null,this.debug=!1,this.version=801,this.extractDoc=!1,this.extractTokens=!1,this.suppressErrors=!1;var i=function(t){return[t,null]};this.entries={IDENTIFIER:new Map([this.tok.T_ABSTRACT,this.tok.T_ARRAY,this.tok.T_AS,this.tok.T_BREAK,this.tok.T_CALLABLE,this.tok.T_CASE,this.tok.T_CATCH,this.tok.T_CLASS,this.tok.T_CLASS_C,this.tok.T_CLONE,this.tok.T_CONST,this.tok.T_CONTINUE,this.tok.T_DECLARE,this.tok.T_DEFAULT,this.tok.T_DIR,this.tok.T_DO,this.tok.T_ECHO,this.tok.T_ELSE,this.tok.T_ELSEIF,this.tok.T_EMPTY,this.tok.T_ENDDECLARE,this.tok.T_ENDFOR,this.tok.T_ENDFOREACH,this.tok.T_ENDIF,this.tok.T_ENDSWITCH,this.tok.T_ENDWHILE,this.tok.T_ENUM,this.tok.T_EVAL,this.tok.T_EXIT,this.tok.T_EXTENDS,this.tok.T_FILE,this.tok.T_FINAL,this.tok.T_FINALLY,this.tok.T_FN,this.tok.T_FOR,this.tok.T_FOREACH,this.tok.T_FUNC_C,this.tok.T_FUNCTION,this.tok.T_GLOBAL,this.tok.T_GOTO,this.tok.T_IF,this.tok.T_IMPLEMENTS,this.tok.T_INCLUDE,this.tok.T_INCLUDE_ONCE,this.tok.T_INSTANCEOF,this.tok.T_INSTEADOF,this.tok.T_INTERFACE,this.tok.T_ISSET,this.tok.T_LINE,this.tok.T_LIST,this.tok.T_LOGICAL_AND,this.tok.T_LOGICAL_OR,this.tok.T_LOGICAL_XOR,this.tok.T_MATCH,this.tok.T_METHOD_C,this.tok.T_NAMESPACE,this.tok.T_NEW,this.tok.T_NS_C,this.tok.T_PRINT,this.tok.T_PRIVATE,this.tok.T_PROTECTED,this.tok.T_PUBLIC,this.tok.T_READ_ONLY,this.tok.T_REQUIRE,this.tok.T_REQUIRE_ONCE,this.tok.T_RETURN,this.tok.T_STATIC,this.tok.T_SWITCH,this.tok.T_THROW,this.tok.T_TRAIT,this.tok.T_TRY,this.tok.T_UNSET,this.tok.T_USE,this.tok.T_VAR,this.tok.T_WHILE,this.tok.T_YIELD].map(i)),VARIABLE:new Map([this.tok.T_VARIABLE,"$","&",this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_NAMESPACE,this.tok.T_STATIC].map(i)),SCALAR:new Map([this.tok.T_CONSTANT_ENCAPSED_STRING,this.tok.T_START_HEREDOC,this.tok.T_LNUMBER,this.tok.T_DNUMBER,this.tok.T_ARRAY,"[",this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C,'"','b"','B"',"-",this.tok.T_NS_SEPARATOR].map(i)),T_MAGIC_CONST:new Map([this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C].map(i)),T_MEMBER_FLAGS:new Map([this.tok.T_PUBLIC,this.tok.T_PRIVATE,this.tok.T_PROTECTED,this.tok.T_STATIC,this.tok.T_ABSTRACT,this.tok.T_FINAL].map(i)),EOS:new Map([";",this.EOF,this.tok.T_INLINE_HTML].map(i)),EXPR:new Map(["@","-","+","!","~","(","`",this.tok.T_LIST,this.tok.T_CLONE,this.tok.T_INC,this.tok.T_DEC,this.tok.T_NEW,this.tok.T_ISSET,this.tok.T_EMPTY,this.tok.T_MATCH,this.tok.T_INCLUDE,this.tok.T_INCLUDE_ONCE,this.tok.T_REQUIRE,this.tok.T_REQUIRE_ONCE,this.tok.T_EVAL,this.tok.T_INT_CAST,this.tok.T_DOUBLE_CAST,this.tok.T_STRING_CAST,this.tok.T_ARRAY_CAST,this.tok.T_OBJECT_CAST,this.tok.T_BOOL_CAST,this.tok.T_UNSET_CAST,this.tok.T_EXIT,this.tok.T_PRINT,this.tok.T_YIELD,this.tok.T_STATIC,this.tok.T_FUNCTION,this.tok.T_FN,this.tok.T_VARIABLE,"$",this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAME_RELATIVE,this.tok.T_NAME_QUALIFIED,this.tok.T_NAME_FULLY_QUALIFIED,this.tok.T_STRING,this.tok.T_CONSTANT_ENCAPSED_STRING,this.tok.T_START_HEREDOC,this.tok.T_LNUMBER,this.tok.T_DNUMBER,this.tok.T_ARRAY,"[",this.tok.T_CLASS_C,this.tok.T_TRAIT_C,this.tok.T_FUNC_C,this.tok.T_METHOD_C,this.tok.T_LINE,this.tok.T_FILE,this.tok.T_DIR,this.tok.T_NS_C,'"','b"','B"',"-",this.tok.T_NS_SEPARATOR].map(i))}};M.prototype.getTokenName=function(t){return F(t)?t==this.EOF?"the end of file (EOF)":this.lexer.engine.tokens.values[t]:"'"+t+"'"},M.prototype.parse=function(t,e){this._errors=[],this.filename=e||"eval",this.currentNamespace=[""],this.extractDoc?this._docs=[]:this._docs=null,this.extractTokens?this._tokens=[]:this._tokens=null,this._docIndex=0,this._lastNode=null,this.lexer.setInput(t),this.lexer.all_tokens=this.extractTokens,this.lexer.comment_tokens=this.extractDoc,this.length=this.lexer._input.length,this.innerList=!1,this.innerListForm=!1;var i=this.node("program"),s=[];for(this.next();this.token!=this.EOF;)s.push(this.read_start());0===s.length&&this.extractDoc&&this._docs.length>this._docIndex&&s.push(this.node("noop")()),this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset];var n=i(s,this._errors,this._docs,this._tokens);if(this.debug){var r=this.ast.checkNodes();if(r.length>0)throw r.forEach((function(t){t.position&&console.log("Node at line "+t.position.line+", column "+t.position.column),console.log(t.stack.join("\n"))})),new Error("Some nodes are not closed")}return n},M.prototype.raiseError=function(t,e,i,s){if(t+=" on line "+this.lexer.yylloc.first_line,!this.suppressErrors){var n=new SyntaxError(t,this.filename,this.lexer.yylloc.first_line);throw n.lineNumber=this.lexer.yylloc.first_line,n.fileName=this.filename,n.columnNumber=this.lexer.yylloc.first_column,n}var r=this.ast.prepare("error",null,this)(t,s,this.lexer.yylloc.first_line,i);return this._errors.push(r),r},M.prototype.error=function(t){var e="Parse Error : syntax error",i=this.getTokenName(this.token),s="";if(this.token!==this.EOF){if(F(this.token)){var n=this.text();n.length>10&&(n=n.substring(0,7)+"..."),i="'"+n+"' ("+i+")"}e+=", unexpected "+i}return t&&!Array.isArray(t)&&((F(t)||1===t.length)&&(s=", expecting "+this.getTokenName(t)),e+=s),this.raiseError(e,s,t,i)},M.prototype.position=function(){return new P(this.lexer.yylloc.first_line,this.lexer.yylloc.first_column,this.lexer.yylloc.first_offset)},M.prototype.node=function(t){if(this.extractDoc){var e=null;this._docIndex<this._docs.length&&(e=this._docs.slice(this._docIndex),this._docIndex=this._docs.length,this.debug&&(console.log(new Error("Append docs on "+t)),console.log(e)));var i=this.ast.prepare(t,e,this);return i.postBuild=function(t){if(this._docIndex<this._docs.length)if(this._lastNode){for(var e=this.prev[2],i=this._docIndex;i<this._docs.length&&!(this._docs[i].offset>e);i++);i>this._docIndex&&(this._lastNode.setTrailingComments(this._docs.slice(this._docIndex,i)),this._docIndex=i)}else this.token===this.EOF&&(t.setTrailingComments(this._docs.slice(this._docIndex)),this._docIndex=this._docs.length);this._lastNode=t}.bind(this),i}return this.ast.prepare(t,null,this)},M.prototype.expectEndOfStatement=function(t){if(";"===this.token)t&&";"===this.lexer.yytext&&t.includeToken(this);else if(this.token!==this.tok.T_INLINE_HTML&&this.token!==this.EOF)return this.error(";"),!1;return this.next(),!0};var B=["parser.next","parser.node","parser.showlog"];M.prototype.showlog=function(){for(var t,e=(new Error).stack.split("\n"),i=2;i<e.length;i++){t=e[i].trim();for(var s=!1,n=0;n<B.length;n++)if(t.substring(3,3+B[n].length)===B[n]){s=!0;break}if(!s)break}return console.log("Line "+this.lexer.yylloc.first_line+" : "+this.getTokenName(this.token)+">"+this.lexer.yytext+"< @--\x3e"+t),this},M.prototype.expect=function(t){if(Array.isArray(t)){if(-1===t.indexOf(this.token))return this.error(t),!1}else if(this.token!=t)return this.error(t),!1;return!0},M.prototype.text=function(){return this.lexer.yytext},M.prototype.next=function(){if(";"===this.token&&";"!==this.lexer.yytext||(this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset]),this.lex(),this.debug&&this.showlog(),this.extractDoc)for(;this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT;)this.token===this.tok.T_COMMENT?this._docs.push(this.read_comment()):this._docs.push(this.read_doc_comment());return this},M.prototype.peek=function(){var t=this.lexer.getState(),e=this.lexer.lex();return this.lexer.setState(t),e},M.prototype.lex=function(){if(this.extractTokens)do{if(this.token=this.lexer.lex()||this.EOF,this.token===this.EOF)return this;var t=this.lexer.yytext;if(t=Object.prototype.hasOwnProperty.call(this.lexer.engine.tokens.values,this.token)?[this.lexer.engine.tokens.values[this.token],t,this.lexer.yylloc.first_line,this.lexer.yylloc.first_offset,this.lexer.offset]:[null,t,this.lexer.yylloc.first_line,this.lexer.yylloc.first_offset,this.lexer.offset],this._tokens.push(t),this.token===this.tok.T_CLOSE_TAG)return this.token=";",this;if(this.token===this.tok.T_OPEN_TAG_WITH_ECHO)return this.token=this.tok.T_ECHO,this}while(this.token===this.tok.T_WHITESPACE||!this.extractDoc&&(this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT)||this.token===this.tok.T_OPEN_TAG);else this.token=this.lexer.lex()||this.EOF;return this},M.prototype.is=function(t){return Array.isArray(t)?-1!==t.indexOf(this.token):this.entries[t].has(this.token)},[{read_array:function(){var t=null,e=!1,i=this.node("array");this.token===this.tok.T_ARRAY?(this.next().expect("("),t=")"):(e=!0,t="]");var s=[];return this.next().token!==t&&(s=this.read_array_pair_list(e)),this.expect(t),this.next(),i(e,s)},read_array_pair_list:function(t){var e=this;return this.read_list((function(){return e.read_array_pair(t)}),",",!0)},read_array_pair:function(t){if(!(!t&&")"===this.token||t&&"]"===this.token)){if(","===this.token)return this.node("noop")();var e=this.node("entry"),i=null,s=null,n=!1,r=!1;if("&"===this.token)this.next(),n=!0,s=this.read_variable(!0,!1);else if(this.token===this.tok.T_ELLIPSIS&&this.version>=704)this.next(),"&"===this.token&&this.error(),r=!0,s=this.read_expr();else{var o=this.read_expr();this.token===this.tok.T_DOUBLE_ARROW?(this.next(),i=o,"&"===this.token?(this.next(),n=!0,s=this.read_variable(!0,!1)):s=this.read_expr()):s=o}return e(i,s,n,r)}}},S,{read_comment:function(){var t=this.text(),e=this.ast.prepare("/*"===t.substring(0,2)?"commentblock":"commentline",null,this),i=this.lexer.yylloc.first_offset,s=this.prev;return this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset],this.lex(),(e=e(t)).offset=i,this.prev=s,e},read_doc_comment:function(){var t=this.ast.prepare("commentblock",null,this),e=this.lexer.yylloc.first_offset,i=this.text(),s=this.prev;return this.prev=[this.lexer.yylloc.last_line,this.lexer.yylloc.last_column,this.lexer.offset],this.lex(),(t=t(i)).offset=e,this.prev=s,t}},C,{read_enum_declaration_statement:function(t){var e=this.node("enum");if(!this.expect(this.tok.T_ENUM))return null;this.next().expect(this.tok.T_STRING);var i=this.node("identifier"),s=this.text();this.next(),i=i(s);var n=this.read_enum_value_type(),r=this.read_implements_list();this.expect("{");var o=e(i,n,r,this.next().read_class_body(!1,!0));return t&&(o.attrGroups=t),o},read_enum_value_type:function(){return":"===this.token?this.next().read_namespace_name():null},read_enum_case:function(){this.expect(this.tok.T_CASE);var t=this.node("enumcase"),e=this.node("identifier"),i=this.next().text();this.next(),e=e(i);var s="="===this.token?this.next().read_expr():null;return this.expect(";"),t(e,s)}},O,{read_if:function(){var t=this.node("if"),e=this.next().read_if_expr(),i=null,s=null,n=!1;if(":"===this.token){n=!0,this.next(),i=this.node("block");for(var r=[];this.token!==this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){s=this.read_elseif_short();break}if(this.token===this.tok.T_ELSE){s=this.read_else_short();break}r.push(this.read_inner_statement())}i=i(null,r),this.expect(this.tok.T_ENDIF)&&this.next(),this.expectEndOfStatement()}else i=this.read_statement(),this.token===this.tok.T_ELSEIF?s=this.read_if():this.token===this.tok.T_ELSE&&(s=this.next().read_statement());return t(e,i,s,n)},read_if_expr:function(){this.expect("(")&&this.next();var t=this.read_expr();return this.expect(")")&&this.next(),t},read_elseif_short:function(){var t=null,e=this.node("if"),i=this.next().read_if_expr();this.expect(":")&&this.next();for(var s=this.node("block"),n=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){t=this.read_elseif_short();break}if(this.token===this.tok.T_ELSE){t=this.read_else_short();break}n.push(this.read_inner_statement())}return e(i,s(null,n),t,!0)},read_else_short:function(){this.next().expect(":")&&this.next();for(var t=this.node("block"),e=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)e.push(this.read_inner_statement());return t(null,e)}},{read_while:function(){var t=this.node("while");this.expect(this.tok.T_WHILE)&&this.next();var e,i=null,s=!1;return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(")")&&this.next(),":"===this.token?(s=!0,i=this.read_short_form(this.tok.T_ENDWHILE)):i=this.read_statement(),t(e,i,s)},read_do:function(){var t=this.node("do");this.expect(this.tok.T_DO)&&this.next();var e,i=null;return e=this.read_statement(),this.expect(this.tok.T_WHILE)&&(this.next().expect("(")&&this.next(),i=this.read_expr(),this.expect(")")&&this.next(),this.expect(";")&&this.next()),t(i,e)},read_for:function(){var t=this.node("for");this.expect(this.tok.T_FOR)&&this.next();var e=[],i=[],s=[],n=null,r=!1;return this.expect("(")&&this.next(),";"!==this.token?(e=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),";"!==this.token?(i=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),")"!==this.token?(s=this.read_list(this.read_expr,","),this.expect(")")&&this.next()):this.next(),":"===this.token?(r=!0,n=this.read_short_form(this.tok.T_ENDFOR)):n=this.read_statement(),t(e,i,s,n,r)},read_foreach:function(){var t=this.node("foreach");this.expect(this.tok.T_FOREACH)&&this.next();var e,i=null,s=null,n=null,r=!1;return this.expect("(")&&this.next(),e=this.read_expr(),this.expect(this.tok.T_AS)&&(this.next(),s=this.read_foreach_variable(),this.token===this.tok.T_DOUBLE_ARROW&&(i=s,s=this.next().read_foreach_variable())),i&&"list"===i.kind&&this.raiseError("Fatal Error : Cannot use list as key element"),this.expect(")")&&this.next(),":"===this.token?(r=!0,n=this.read_short_form(this.tok.T_ENDFOREACH)):n=this.read_statement(),t(e,i,s,n,r)},read_foreach_variable:function(){if(this.token===this.tok.T_LIST||"["===this.token){var t="["===this.token,e=this.node("list");this.next(),!t&&this.expect("(")&&this.next();var i=this.read_array_pair_list(t);return this.expect(t?"]":")")&&this.next(),e(i,t)}return this.read_variable(!1,!1)}},{read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}},{read_namespace:function(){var t,e,i=this.node("namespace");return this.expect(this.tok.T_NAMESPACE)&&this.next(),e="{"===this.token?{name:[""]}:this.read_namespace_name(),this.currentNamespace=e,";"===this.token?(this.currentNamespace=e,t=this.next().read_top_statements(),this.expect(this.EOF),i(e.name,t,!1)):"{"===this.token?(this.currentNamespace=e,t=this.next().read_top_statements(),this.expect("}")&&this.next(),0===t.length&&this.extractDoc&&this._docs.length>this._docIndex&&t.push(this.node("noop")()),i(e.name,t,!0)):(this.error(["{",";"]),this.currentNamespace=e,t=this.read_top_statements(),this.expect(this.EOF),i(e,t,!1))},read_namespace_name:function(t){var e,i=this.node(),s=this.text();switch(this.token){case this.tok.T_NAME_RELATIVE:e=this.ast.name.RELATIVE_NAME,s=s.replace(/^namespace\\/,"");break;case this.tok.T_NAME_QUALIFIED:e=this.ast.name.QUALIFIED_NAME;break;case this.tok.T_NAME_FULLY_QUALIFIED:e=this.ast.name.FULL_QUALIFIED_NAME;break;default:if(e=this.ast.name.UNQUALIFIED_NAME,!this.expect(this.tok.T_STRING))return i("name","",this.ast.name.FULL_QUALIFIED_NAME)}if(this.next(),t||"("!==this.token){if("parent"===s.toLowerCase())return i("parentreference",s);if("self"===s.toLowerCase())return i("selfreference",s)}return i("name",s,e)},read_use_statement:function(){var t=this.node("usegroup"),e=[],i=null;this.expect(this.tok.T_USE)&&this.next();var s=this.read_use_type();return e.push(this.read_use_declaration(!1)),","===this.token?e=e.concat(this.next().read_use_declarations(!1)):"{"===this.token&&(i=e[0].name,e=this.next().read_use_declarations(null===s),this.expect("}")&&this.next()),t=t(i,s,e),this.expect(";")&&this.next(),t},read_class_name_reference:function(){return this.read_variable(!0,!1)},read_use_declaration:function(t){var e=this.node("useitem"),i=null;t&&(i=this.read_use_type());var s=this.read_namespace_name(),n=this.read_use_alias();return e(s.name,n,i)},read_use_declarations:function(t){for(var e=[this.read_use_declaration(t)];","===this.token;){if(this.next(),t){if(this.token!==this.tok.T_NAME_RELATIVE&&this.token!==this.tok.T_NAME_QUALIFIED&&this.token!==this.tok.T_NAME_FULLY_QUALIFIED&&this.token!==this.tok.T_FUNCTION&&this.token!==this.tok.T_CONST&&this.token!==this.tok.T_STRING)break}else if(this.token!==this.tok.T_NAME_RELATIVE&&this.token!==this.tok.T_NAME_QUALIFIED&&this.token!==this.tok.T_NAME_FULLY_QUALIFIED&&this.token!==this.tok.T_STRING&&this.token!==this.tok.T_NS_SEPARATOR)break;e.push(this.read_use_declaration(t))}return e},read_use_alias:function(){var t=null;if(this.token===this.tok.T_AS&&this.next().expect(this.tok.T_STRING)){var e=this.node("identifier"),i=this.text();this.next(),t=e(i)}return t},read_use_type:function(){return this.token===this.tok.T_FUNCTION?(this.next(),this.ast.useitem.TYPE_FUNCTION):this.token===this.tok.T_CONST?(this.next(),this.ast.useitem.TYPE_CONST):null}},w,D,{read_switch:function(){var t=this.node("switch");this.expect(this.tok.T_SWITCH)&&this.next(),this.expect("(")&&this.next();var e=this.read_expr();this.expect(")")&&this.next();var i=":"===this.token;return t(e,this.read_switch_case_list(),i)},read_switch_case_list:function(){var t=null,e=this.node("block"),i=[];for("{"===this.token?t="}":":"===this.token?t=this.tok.T_ENDSWITCH:this.expect(["{",":"]),this.next(),";"===this.token&&this.next();this.token!==this.EOF&&this.token!==t;)i.push(this.read_case_list(t));return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect(t)&&this.next(),t===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),e(null,i)},read_case_list:function(t){var e=this.node("case"),i=null;this.token===this.tok.T_CASE?i=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]),this.expect([":",";"])&&this.next();for(var s=this.node("block"),n=[];this.token!==this.EOF&&this.token!==t&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)n.push(this.read_inner_statement());return e(i,s(null,n))}},{read_try:function(){this.expect(this.tok.T_TRY);for(var t=this.node("try"),e=null,i=[],s=this.next().read_statement();this.token===this.tok.T_CATCH;){var n=this.node("catch");this.next().expect("(")&&this.next();var r=this.read_list(this.read_namespace_name,"|",!1),o=null;(this.version<800||this.token===this.tok.T_VARIABLE)&&(o=this.read_variable(!0,!1)),this.expect(")"),i.push(n(this.next().read_statement(),r,o))}return this.token===this.tok.T_FINALLY&&(e=this.next().read_statement()),t(s,i,e)}},{read_short_form:function(t){var e=this.node("block"),i=[];for(this.expect(":")&&this.next();this.token!=this.EOF&&this.token!==t;)i.push(this.read_inner_statement());return 0===i.length&&this.extractDoc&&this._docs.length>this._docIndex&&i.push(this.node("noop")()),this.expect(t)&&this.next(),this.expectEndOfStatement(),e(null,i)},read_function_list:function(t,e){var i=[];do{if(this.token==e&&this.version>=703&&i.length>0){i.push(this.node("noop")());break}if(i.push(t.apply(this,[])),this.token!=e)break;if(")"==this.next().token&&this.version>=703)break}while(this.token!=this.EOF);return i},read_list:function(t,e,i){var s=[];if(this.token==e&&(i&&s.push("function"==typeof t?this.node("noop")():null),this.next()),"function"==typeof t)do{var n=t.apply(this,[]);if(n&&s.push(n),this.token!=e)break}while(this.next().token!=this.EOF);else{if(!this.expect(t))return[];for(s.push(this.text());this.next().token!=this.EOF&&this.token==e&&this.next().token==t;)s.push(this.text())}return s},read_name_list:function(){return this.read_list(this.read_namespace_name,",",!1)},read_byref:function(t){var e=this.node("byref");this.next(),e=e(null);var i=t();return i&&(this.ast.swapLocations(i,e,i,this),i.byref=!0),i},read_variable_declarations:function(){return this.read_list((function(){var t=this.node("staticvariable"),e=this.node("variable");if(this.expect(this.tok.T_VARIABLE)){var i=this.text().substring(1);this.next(),e=e(i,!1)}else e=e("#ERR",!1);return"="===this.token?t(e,this.next().read_expr()):e}),",")},read_extends_from:function(){return this.token===this.tok.T_EXTENDS?this.next().read_namespace_name():null},read_interface_extends_list:function(){return this.token===this.tok.T_EXTENDS?this.next().read_name_list():null},read_implements_list:function(){return this.token===this.tok.T_IMPLEMENTS?this.next().read_name_list():null}},U].forEach((function(t){for(var e in t){if(Object.prototype.hasOwnProperty.call(M.prototype,e))throw new Error("Function "+e+" is already defined - collision");M.prototype[e]=t[e]}}));var G=M,H={T_HALT_COMPILER:101,T_USE:102,T_ENCAPSED_AND_WHITESPACE:103,T_OBJECT_OPERATOR:104,T_STRING:105,T_DOLLAR_OPEN_CURLY_BRACES:106,T_STRING_VARNAME:107,T_CURLY_OPEN:108,T_NUM_STRING:109,T_ISSET:110,T_EMPTY:111,T_INCLUDE:112,T_INCLUDE_ONCE:113,T_EVAL:114,T_REQUIRE:115,T_REQUIRE_ONCE:116,T_NAMESPACE:117,T_NS_SEPARATOR:118,T_AS:119,T_IF:120,T_ENDIF:121,T_WHILE:122,T_DO:123,T_FOR:124,T_SWITCH:125,T_BREAK:126,T_CONTINUE:127,T_RETURN:128,T_GLOBAL:129,T_STATIC:130,T_ECHO:131,T_INLINE_HTML:132,T_UNSET:133,T_FOREACH:134,T_DECLARE:135,T_TRY:136,T_THROW:137,T_GOTO:138,T_FINALLY:139,T_CATCH:140,T_ENDDECLARE:141,T_LIST:142,T_CLONE:143,T_PLUS_EQUAL:144,T_MINUS_EQUAL:145,T_MUL_EQUAL:146,T_DIV_EQUAL:147,T_CONCAT_EQUAL:148,T_MOD_EQUAL:149,T_AND_EQUAL:150,T_OR_EQUAL:151,T_XOR_EQUAL:152,T_SL_EQUAL:153,T_SR_EQUAL:154,T_INC:155,T_DEC:156,T_BOOLEAN_OR:157,T_BOOLEAN_AND:158,T_LOGICAL_OR:159,T_LOGICAL_AND:160,T_LOGICAL_XOR:161,T_SL:162,T_SR:163,T_IS_IDENTICAL:164,T_IS_NOT_IDENTICAL:165,T_IS_EQUAL:166,T_IS_NOT_EQUAL:167,T_IS_SMALLER_OR_EQUAL:168,T_IS_GREATER_OR_EQUAL:169,T_INSTANCEOF:170,T_INT_CAST:171,T_DOUBLE_CAST:172,T_STRING_CAST:173,T_ARRAY_CAST:174,T_OBJECT_CAST:175,T_BOOL_CAST:176,T_UNSET_CAST:177,T_EXIT:178,T_PRINT:179,T_YIELD:180,T_YIELD_FROM:181,T_FUNCTION:182,T_DOUBLE_ARROW:183,T_DOUBLE_COLON:184,T_ARRAY:185,T_CALLABLE:186,T_CLASS:187,T_ABSTRACT:188,T_TRAIT:189,T_FINAL:190,T_EXTENDS:191,T_INTERFACE:192,T_IMPLEMENTS:193,T_VAR:194,T_PUBLIC:195,T_PROTECTED:196,T_PRIVATE:197,T_CONST:198,T_NEW:199,T_INSTEADOF:200,T_ELSEIF:201,T_ELSE:202,T_ENDSWITCH:203,T_CASE:204,T_DEFAULT:205,T_ENDFOR:206,T_ENDFOREACH:207,T_ENDWHILE:208,T_CONSTANT_ENCAPSED_STRING:209,T_LNUMBER:210,T_DNUMBER:211,T_LINE:212,T_FILE:213,T_DIR:214,T_TRAIT_C:215,T_METHOD_C:216,T_FUNC_C:217,T_NS_C:218,T_START_HEREDOC:219,T_END_HEREDOC:220,T_CLASS_C:221,T_VARIABLE:222,T_OPEN_TAG:223,T_OPEN_TAG_WITH_ECHO:224,T_CLOSE_TAG:225,T_WHITESPACE:226,T_COMMENT:227,T_DOC_COMMENT:228,T_ELLIPSIS:229,T_COALESCE:230,T_POW:231,T_POW_EQUAL:232,T_SPACESHIP:233,T_COALESCE_EQUAL:234,T_FN:235,T_NULLSAFE_OBJECT_OPERATOR:236,T_MATCH:237,T_ATTRIBUTE:238,T_ENUM:239,T_READ_ONLY:240,T_NAME_RELATIVE:241,T_NAME_QUALIFIED:242,T_NAME_FULLY_QUALIFIED:243},V={values:Object.entries(H).reduce((function(t,e){var i=l(e,2),s=i[0],n=i[1];return h(h({},t),{},u({},n,s))}),{}),names:H},Q=Object.freeze(V),Y=function(t,e,i){this.source=t,this.start=e,this.end=i},W=function(t,e,i){this.kind=t,e&&(this.leadingComments=e),i&&(this.loc=i)};W.prototype.setTrailingComments=function(t){this.trailingComments=t},W.prototype.destroy=function(t){if(!t)throw new Error("Node already initialized, you must swap with another node");return this.leadingComments&&(t.leadingComments?t.leadingComments=Array.concat(this.leadingComments,t.leadingComments):t.leadingComments=this.leadingComments),this.trailingComments&&(t.trailingComments?t.trailingComments=Array.concat(this.trailingComments,t.trailingComments):t.trailingComments=this.trailingComments),t},W.prototype.includeToken=function(t){return this.loc&&(this.loc.end&&(this.loc.end.line=t.lexer.yylloc.last_line,this.loc.end.column=t.lexer.yylloc.last_column,this.loc.end.offset=t.lexer.offset),t.ast.withSource&&(this.loc.source=t.lexer._input.substring(this.loc.start.offset,t.lexer.offset))),this},W.extends=function(t,e){return e.prototype=Object.create(this.prototype),e.extends=this.extends,e.prototype.constructor=e,e.kind=t,e};var j=W,$=j,z="expression",K=$.extends(z,(function(t,e,i){$.apply(this,[t||z,e,i])})),X=K,J="array",q=X.extends(J,(function(t,e,i,s){X.apply(this,[J,i,s]),this.items=e,this.shortForm=t})),Z=K,tt="arrowfunc",et=Z.extends(tt,(function(t,e,i,s,n,r,o,h){Z.apply(this,[tt,o,h]),this.arguments=t,this.byref=e,this.body=i,this.type=s,this.nullable=n,this.isStatic=r||!1})),it=K,st="assign",nt=it.extends(st,(function(t,e,i,s,n){it.apply(this,[st,s,n]),this.left=t,this.right=e,this.operator=i})),rt=K,ot="assignref",ht=rt.extends(ot,(function(t,e,i,s){rt.apply(this,[ot,i,s]),this.left=t,this.right=e})),at=j,ct="attribute",ut=at.extends(ct,(function(t,e,i,s){at.apply(this,[ct,i,s]),this.name=t,this.args=e})),lt=j,_t="attrgroup",pt=lt.extends(_t,(function(t,e,i){lt.apply(this,[_t,e,i]),this.attrs=t||[]})),ft=K,dt="operation",kt=ft.extends(dt,(function(t,e,i){ft.apply(this,[t||dt,e,i])})),Tt=kt,xt=Tt.extends("bin",(function(t,e,i,s,n){Tt.apply(this,["bin",s,n]),this.type=t,this.left=e,this.right=i})),Et=j,yt="statement",mt=Et.extends(yt,(function(t,e,i){Et.apply(this,[t||yt,e,i])})),vt=mt,At="block",gt=vt.extends(At,(function(t,e,i,s){vt.apply(this,[t||At,i,s]),this.children=e.filter(Boolean)})),bt=K,Nt="literal",Lt=bt.extends(Nt,(function(t,e,i,s,n){bt.apply(this,[t||Nt,s,n]),this.value=e,i&&(this.raw=i)})),It=Lt,St="boolean",Ct=It.extends(St,(function(t,e,i,s){It.apply(this,[St,t,e,i,s])})),Ot=mt,Rt="break",wt=Ot.extends(Rt,(function(t,e,i){Ot.apply(this,[Rt,e,i]),this.level=t})),Dt=K,Ut="byref",Pt=Dt.extends(Ut,(function(t,e,i){Dt.apply(this,[Ut,e,i]),this.what=t})),Ft=K,Mt="call",Bt=Ft.extends(Mt,(function(t,e,i,s){Ft.apply(this,[Mt,i,s]),this.what=t,this.arguments=e})),Gt=mt,Ht="case",Vt=Gt.extends(Ht,(function(t,e,i,s){Gt.apply(this,[Ht,i,s]),this.test=t,this.body=e})),Qt=kt,Yt="cast",Wt=Qt.extends(Yt,(function(t,e,i,s,n){Qt.apply(this,[Yt,s,n]),this.type=t,this.raw=e,this.expr=i})),jt=mt,$t="catch",zt=jt.extends($t,(function(t,e,i,s,n){jt.apply(this,[$t,s,n]),this.body=t,this.what=e,this.variable=i})),Kt=mt,Xt="declaration",Jt=Kt.extends(Xt,(function(t,e,i,s){Kt.apply(this,[t||Xt,i,s]),this.name=e}));Jt.prototype.parseFlags=function(t){this.isAbstract=1===t[2],this.isFinal=2===t[2],this.isReadonly=1===t[3],"class"!==this.kind&&(-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.isStatic=1===t[1])};var qt=Jt,Zt=qt,te="class",ee=Zt.extends(te,(function(t,e,i,s,n,r,o){Zt.apply(this,[te,t,r,o]),this.isAnonymous=!t,this.extends=e,this.implements=i,this.body=s,this.attrGroups=[],this.parseFlags(n)})),ie=mt,se="constantstatement",ne=ie.extends(se,(function(t,e,i,s){ie.apply(this,[t||se,i,s]),this.constants=e})),re=ne,oe="classconstant",he=re.extends(oe,(function(t,e,i,s,n,r){re.apply(this,[t||oe,e,n,r]),this.parseFlags(i),this.attrGroups=s}));he.prototype.parseFlags=function(t){-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.final=2===t[2]};var ae=he,ce=K,ue="clone",le=ce.extends(ue,(function(t,e,i){ce.apply(this,[ue,e,i]),this.what=t})),_e=K,pe="closure",fe=_e.extends(pe,(function(t,e,i,s,n,r,o,h){_e.apply(this,[pe,o,h]),this.uses=i,this.arguments=t,this.byref=e,this.type=s,this.nullable=n,this.isStatic=r||!1,this.body=null,this.attrGroups=[]})),de=j,ke=de.extends("comment",(function(t,e,i,s){de.apply(this,[t,i,s]),this.value=e})),Te=ke,xe="commentblock",Ee=Te.extends(xe,(function(t,e,i){Te.apply(this,[xe,t,e,i])})),ye=ke,me="commentline",ve=ye.extends(me,(function(t,e,i){ye.apply(this,[me,t,e,i])})),Ae=j,ge="constant",be=Ae.extends(ge,(function(t,e,i,s){Ae.apply(this,[ge,i,s]),this.name=t,this.value=e})),Ne=mt,Le="continue",Ie=Ne.extends(Le,(function(t,e,i){Ne.apply(this,[Le,e,i]),this.level=t})),Se=gt,Ce="declare",Oe=Se.extends(Ce,(function(t,e,i,s,n){Se.apply(this,[Ce,e,s,n]),this.directives=t,this.mode=i}));Oe.MODE_SHORT="short",Oe.MODE_BLOCK="block",Oe.MODE_NONE="none";var Re=Oe,we=j,De="declaredirective",Ue=we.extends(De,(function(t,e,i,s){we.apply(this,[De,i,s]),this.key=t,this.value=e})),Pe=mt,Fe=Pe.extends("do",(function(t,e,i,s){Pe.apply(this,["do",i,s]),this.test=t,this.body=e})),Me=mt,Be="echo",Ge=Me.extends(Be,(function(t,e,i,s){Me.apply(this,[Be,i,s]),this.shortForm=e,this.expressions=t})),He=K,Ve="empty",Qe=He.extends(Ve,(function(t,e,i){He.apply(this,[Ve,e,i]),this.expression=t})),Ye=Lt,We="encapsed",je=Ye.extends(We,(function(t,e,i,s,n){Ye.apply(this,[We,t,e,s,n]),this.type=i}));je.TYPE_STRING="string",je.TYPE_SHELL="shell",je.TYPE_HEREDOC="heredoc",je.TYPE_OFFSET="offset";var $e=je,ze=K,Ke="encapsedpart",Xe=ze.extends(Ke,(function(t,e,i,s,n){ze.apply(this,[Ke,s,n]),this.expression=t,this.syntax=e,this.curly=i})),Je=K,qe="entry",Ze=Je.extends(qe,(function(t,e,i,s,n,r){Je.apply(this,[qe,n,r]),this.key=t,this.value=e,this.byRef=i,this.unpack=s})),ti=qt,ei="enum",ii=ti.extends(ei,(function(t,e,i,s,n,r){ti.apply(this,[ei,t,n,r]),this.valueType=e,this.implements=i,this.body=s,this.attrGroups=[]})),si=j,ni="enumcase",ri=si.extends(ni,(function(t,e,i,s){si.apply(this,[ni,i,s]),this.name=t,this.value=e})),oi=j,hi="error",ai=oi.extends(hi,(function(t,e,i,s,n,r){oi.apply(this,[hi,n,r]),this.message=t,this.token=e,this.line=i,this.expected=s})),ci=K,ui="eval",li=ci.extends(ui,(function(t,e,i){ci.apply(this,[ui,e,i]),this.source=t})),_i=K,pi="exit",fi=_i.extends(pi,(function(t,e,i,s){_i.apply(this,[pi,i,s]),this.expression=t,this.useDie=e})),di=mt,ki="expressionstatement",Ti=di.extends(ki,(function(t,e,i){di.apply(this,[ki,e,i]),this.expression=t})),xi=mt,Ei=xi.extends("for",(function(t,e,i,s,n,r,o){xi.apply(this,["for",r,o]),this.init=t,this.test=e,this.increment=i,this.shortForm=n,this.body=s})),yi=mt,mi="foreach",vi=yi.extends(mi,(function(t,e,i,s,n,r,o){yi.apply(this,[mi,r,o]),this.source=t,this.key=e,this.value=i,this.shortForm=n,this.body=s})),Ai=qt,gi="function",bi=Ai.extends(gi,(function(t,e,i,s,n,r,o){Ai.apply(this,[gi,t,r,o]),this.arguments=e,this.byref=i,this.type=s,this.nullable=n,this.body=null,this.attrGroups=[]})),Ni=mt,Li="global",Ii=Ni.extends(Li,(function(t,e,i){Ni.apply(this,[Li,e,i]),this.items=t})),Si=mt,Ci="goto",Oi=Si.extends(Ci,(function(t,e,i){Si.apply(this,[Ci,e,i]),this.label=t})),Ri=mt,wi="halt",Di=Ri.extends(wi,(function(t,e,i){Ri.apply(this,[wi,e,i]),this.after=t})),Ui=j,Pi="identifier",Fi=Ui.extends(Pi,(function(t,e,i){Ui.apply(this,[Pi,e,i]),this.name=t})),Mi=Fi,Bi=mt,Gi=Bi.extends("if",(function(t,e,i,s,n,r){Bi.apply(this,["if",n,r]),this.test=t,this.body=e,this.alternate=i,this.shortForm=s})),Hi=K,Vi="include",Qi=Hi.extends(Vi,(function(t,e,i,s,n){Hi.apply(this,[Vi,s,n]),this.once=t,this.require=e,this.target=i})),Yi=Lt,Wi="inline",ji=Yi.extends(Wi,(function(t,e,i,s){Yi.apply(this,[Wi,t,e,i,s])})),$i=qt,zi="interface",Ki=$i.extends(zi,(function(t,e,i,s,n,r){$i.apply(this,[zi,t,n,r]),this.extends=e,this.body=i,this.attrGroups=s})),Xi=qt,Ji="intersectiontype",qi=Xi.extends(Ji,(function(t,e,i){Xi.apply(this,[Ji,null,e,i]),this.types=t})),Zi=K,ts="isset",es=Zi.extends(ts,(function(t,e,i){Zi.apply(this,[ts,e,i]),this.variables=t})),is=mt,ss="label",ns=is.extends(ss,(function(t,e,i){is.apply(this,[ss,e,i]),this.name=t})),rs=K,os="list",hs=rs.extends(os,(function(t,e,i,s){rs.apply(this,[os,i,s]),this.items=t,this.shortForm=e})),as=K,cs="lookup",us=as.extends(cs,(function(t,e,i,s,n){as.apply(this,[t||cs,s,n]),this.what=e,this.offset=i})),ls=Lt,_s="magic",ps=ls.extends(_s,(function(t,e,i,s){ls.apply(this,[_s,t,e,i,s])})),fs=K,ds="match",ks=fs.extends(ds,(function(t,e,i,s){fs.apply(this,[ds,i,s]),this.cond=t,this.arms=e})),Ts=K,xs="matcharm",Es=Ts.extends(xs,(function(t,e,i,s){Ts.apply(this,[xs,i,s]),this.conds=t,this.body=e})),ys=bi,ms="method",vs=ys.extends(ms,(function(){ys.apply(this,arguments),this.kind=ms})),As=j,gs="reference",bs=As.extends(gs,(function(t,e,i){As.apply(this,[t||gs,e,i])})),Ns=bs,Ls=Ns,Is="name",Ss=Ls.extends(Is,(function(t,e,i,s){Ls.apply(this,[Is,i,s]),this.name=t.replace(/\\$/,""),this.resolution=e}));Ss.UNQUALIFIED_NAME="uqn",Ss.QUALIFIED_NAME="qn",Ss.FULL_QUALIFIED_NAME="fqn",Ss.RELATIVE_NAME="rn";var Cs=Ss,Os=gt,Rs="namespace",ws=Os.extends(Rs,(function(t,e,i,s,n){Os.apply(this,[Rs,e,s,n]),this.name=t,this.withBrackets=i||!1})),Ds=K,Us="namedargument",Ps=Ds.extends(Us,(function(t,e,i,s){Ds.apply(this,[Us,i,s]),this.name=t,this.value=e})),Fs=K,Ms=Fs.extends("new",(function(t,e,i,s){Fs.apply(this,["new",i,s]),this.what=t,this.arguments=e})),Bs=j,Gs="noop",Hs=Bs.extends(Gs,(function(t,e){Bs.apply(this,[Gs,t,e])})),Vs=Lt,Qs="nowdoc",Ys=Vs.extends(Qs,(function(t,e,i,s,n){Vs.apply(this,[Qs,t,e,s,n]),this.label=i})),Ws=j,js="nullkeyword",$s=Ws.extends(js,(function(t,e,i){Ws.apply(this,[js,e,i]),this.raw=t})),zs=us,Ks="nullsafepropertylookup",Xs=zs.extends(Ks,(function(t,e,i,s){zs.apply(this,[Ks,t,e,i,s])})),Js=Lt,qs="number",Zs=Js.extends(qs,(function(t,e,i,s){Js.apply(this,[qs,t,e,i,s])})),tn=us,en="offsetlookup",sn=tn.extends(en,(function(t,e,i,s){tn.apply(this,[en,t,e,i,s])})),nn=qt,rn="parameter",on=nn.extends(rn,(function(t,e,i,s,n,r,o,h,a,c){nn.apply(this,[rn,t,a,c]),this.value=i,this.type=e,this.byref=s,this.variadic=n,this.readonly=r,this.nullable=o,this.flags=h||0,this.attrGroups=[]})),hn=Ns,an="parentreference",cn=hn.extends(an,(function(t,e,i){hn.apply(this,[an,e,i]),this.raw=t})),un=cn,ln=kt,_n="post",pn=ln.extends(_n,(function(t,e,i,s){ln.apply(this,[_n,i,s]),this.type=t,this.what=e})),fn=kt,dn=fn.extends("pre",(function(t,e,i,s){fn.apply(this,["pre",i,s]),this.type=t,this.what=e})),kn=K,Tn="print",xn=kn.extends(Tn,(function(t,e,i){kn.apply(this,[Tn,e,i]),this.expression=t})),En=gt,yn="program",mn=En.extends(yn,(function(t,e,i,s,n,r){En.apply(this,[yn,t,n,r]),this.errors=e,i&&(this.comments=i),s&&(this.tokens=s)})),vn=mt,An="property",gn=vn.extends(An,(function(t,e,i,s,n,r,o,h){vn.apply(this,[An,o,h]),this.name=t,this.value=e,this.readonly=i,this.nullable=s,this.type=n,this.attrGroups=r})),bn=us,Nn="propertylookup",Ln=bn.extends(Nn,(function(t,e,i,s){bn.apply(this,[Nn,t,e,i,s])})),In=mt,Sn="propertystatement",Cn=In.extends(Sn,(function(t,e,i,s,n){In.apply(this,[Sn,s,n]),this.properties=e,this.parseFlags(i)}));Cn.prototype.parseFlags=function(t){-1===t[0]?this.visibility="":null===t[0]?this.visibility=null:0===t[0]?this.visibility="public":1===t[0]?this.visibility="protected":2===t[0]&&(this.visibility="private"),this.isStatic=1===t[1]};var On=Cn,Rn=K,wn="retif",Dn=Rn.extends(wn,(function(t,e,i,s,n){Rn.apply(this,[wn,s,n]),this.test=t,this.trueExpr=e,this.falseExpr=i})),Un=mt,Pn="return",Fn=Un.extends(Pn,(function(t,e,i){Un.apply(this,[Pn,e,i]),this.expr=t})),Mn=Ns,Bn="selfreference",Gn=Mn.extends(Bn,(function(t,e,i){Mn.apply(this,[Bn,e,i]),this.raw=t})),Hn=Gn,Vn=K,Qn="silent",Yn=Vn.extends(Qn,(function(t,e,i){Vn.apply(this,[Qn,e,i]),this.expr=t})),Wn=mt,jn="static",$n=Wn.extends(jn,(function(t,e,i){Wn.apply(this,[jn,e,i]),this.variables=t})),zn=j,Kn="staticvariable",Xn=zn.extends(Kn,(function(t,e,i,s){zn.apply(this,[Kn,i,s]),this.variable=t,this.defaultValue=e})),Jn=us,qn="staticlookup",Zn=Jn.extends(qn,(function(t,e,i,s){Jn.apply(this,[qn,t,e,i,s])})),tr=Ns,er="staticreference",ir=tr.extends(er,(function(t,e,i){tr.apply(this,[er,e,i]),this.raw=t})),sr=ir,nr=Lt,rr="string",or=nr.extends(rr,(function(t,e,i,s,n,r){nr.apply(this,[rr,e,s,n,r]),this.unicode=i,this.isDoubleQuote=t})),hr=mt,ar="switch",cr=hr.extends(ar,(function(t,e,i,s,n){hr.apply(this,[ar,s,n]),this.test=t,this.body=e,this.shortForm=i})),ur=mt,lr="throw",_r=ur.extends(lr,(function(t,e,i){ur.apply(this,[lr,e,i]),this.what=t})),pr=qt,fr="trait",dr=pr.extends(fr,(function(t,e,i,s){pr.apply(this,[fr,t,i,s]),this.body=e})),kr=j,Tr="traitalias",xr=kr.extends(Tr,(function(t,e,i,s,n,r){kr.apply(this,[Tr,n,r]),this.trait=t,this.method=e,this.as=i,this.visibility="",s&&(0===s[0]?this.visibility="public":1===s[0]?this.visibility="protected":2===s[0]&&(this.visibility="private"))})),Er=j,yr="traitprecedence",mr=Er.extends(yr,(function(t,e,i,s,n){Er.apply(this,[yr,s,n]),this.trait=t,this.method=e,this.instead=i})),vr=j,Ar="traituse",gr=vr.extends(Ar,(function(t,e,i,s){vr.apply(this,[Ar,i,s]),this.traits=t,this.adaptations=e})),br=mt,Nr=br.extends("try",(function(t,e,i,s,n){br.apply(this,["try",s,n]),this.body=t,this.catches=e,this.always=i})),Lr=Ns,Ir="typereference",Sr=Lr.extends(Ir,(function(t,e,i,s){Lr.apply(this,[Ir,i,s]),this.name=t,this.raw=e}));Sr.types=["int","float","string","bool","object","array","callable","iterable","void","static"];var Cr=Sr,Or=kt,Rr="unary",wr=Or.extends(Rr,(function(t,e,i,s){Or.apply(this,[Rr,i,s]),this.type=t,this.what=e})),Dr=qt,Ur="uniontype",Pr=Dr.extends(Ur,(function(t,e,i){Dr.apply(this,[Ur,null,e,i]),this.types=t})),Fr=mt,Mr="unset",Br=Fr.extends(Mr,(function(t,e,i){Fr.apply(this,[Mr,e,i]),this.variables=t})),Gr=mt,Hr="usegroup",Vr=Gr.extends(Hr,(function(t,e,i,s,n){Gr.apply(this,[Hr,s,n]),this.name=t,this.type=e,this.items=i})),Qr=mt,Yr="useitem",Wr=Qr.extends(Yr,(function(t,e,i,s,n){Qr.apply(this,[Yr,s,n]),this.name=t,this.alias=e,this.type=i}));Wr.TYPE_CONST="const",Wr.TYPE_FUNCTION="function";var jr=Wr,$r=K,zr="variable",Kr=$r.extends(zr,(function(t,e,i,s){$r.apply(this,[zr,i,s]),this.name=t,this.curly=e||!1})),Xr=K,Jr="variadic",qr=Xr.extends(Jr,(function(t,e,i){Xr.apply(this,[Jr,e,i]),this.what=t})),Zr=j,to="variadicplaceholder",eo=Zr.extends(to,(function(t,e){Zr.apply(this,[to,t,e])})),io=mt,so="while",no=io.extends(so,(function(t,e,i,s,n){io.apply(this,[so,s,n]),this.test=t,this.body=e,this.shortForm=i})),ro=K,oo="yield",ho=ro.extends(oo,(function(t,e,i,s){ro.apply(this,[oo,i,s]),this.value=t,this.key=e})),ao=K,co="yieldfrom",uo=ao.extends(co,(function(t,e,i){ao.apply(this,[co,e,i]),this.value=t})),lo=Y,_o=I,po=function(t,e){this.withPositions=t,this.withSource=e};po.precedence={},[["or"],["xor"],["and"],["="],["?"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","!=","===","!==","<=>"],["<","<=",">",">="],["<<",">>"],["+","-","."],["*","/","%"],["!"],["instanceof"],["cast","silent"],["**"]].forEach((function(t,e){t.forEach((function(t){po.precedence[t]=e+1}))})),po.prototype.isRightAssociative=function(t){return"**"===t||"??"===t},po.prototype.swapLocations=function(t,e,i,s){this.withPositions&&(t.loc.start=e.loc.start,t.loc.end=i.loc.end,this.withSource&&(t.loc.source=s.lexer._input.substring(t.loc.start.offset,t.loc.end.offset)))},po.prototype.resolveLocations=function(t,e,i,s){this.withPositions&&(t.loc.start.offset>e.loc.start.offset&&(t.loc.start=e.loc.start),t.loc.end.offset<i.loc.end.offset&&(t.loc.end=i.loc.end),this.withSource&&(t.loc.source=s.lexer._input.substring(t.loc.start.offset,t.loc.end.offset)))},po.prototype.resolvePrecedence=function(t,e){var i,s,n;return"call"===t.kind?this.resolveLocations(t,t.what,t,e):"propertylookup"===t.kind||"staticlookup"===t.kind||"offsetlookup"===t.kind&&t.offset?this.resolveLocations(t,t.what,t.offset,e):"bin"===t.kind?t.right&&!t.right.parenthesizedExpression&&("bin"===t.right.kind?(s=po.precedence[t.type],n=po.precedence[t.right.type],s&&n&&n<=s&&(t.type!==t.right.type||!this.isRightAssociative(t.type))&&(i=t.right,t.right=t.right.left,this.swapLocations(t,t.left,t.right,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i)):"retif"===t.right.kind&&(s=po.precedence[t.type],n=po.precedence["?"],s&&n&&n<=s&&(i=t.right,t.right=t.right.test,this.swapLocations(t,t.left,t.right,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i))):"silent"!==t.kind&&"cast"!==t.kind||!t.expr||t.expr.parenthesizedExpression?"unary"===t.kind?t.what&&!t.what.parenthesizedExpression&&("bin"===t.what.kind?(i=t.what,t.what=t.what.left,this.swapLocations(t,t,t.what,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i):"retif"===t.what.kind&&(i=t.what,t.what=t.what.test,this.swapLocations(t,t,t.what,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i)):"retif"===t.kind?t.falseExpr&&"retif"===t.falseExpr.kind&&!t.falseExpr.parenthesizedExpression&&(i=t.falseExpr,t.falseExpr=i.test,this.swapLocations(t,t.test,t.falseExpr,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i):"assign"===t.kind?t.right&&"bin"===t.right.kind&&!t.right.parenthesizedExpression&&(s=po.precedence["="],n=po.precedence[t.right.type],s&&n&&n<s&&(i=t.right,t.right=t.right.left,i.left=t,this.swapLocations(i,i.left,t.right,e),t=i)):"expressionstatement"===t.kind&&this.swapLocations(t,t.expression,t,e):"bin"===t.expr.kind?(i=t.expr,t.expr=t.expr.left,this.swapLocations(t,t,t.expr,e),i.left=this.resolvePrecedence(t,e),this.swapLocations(i,i.left,i.right,e),t=i):"retif"===t.expr.kind&&(i=t.expr,t.expr=t.expr.test,this.swapLocations(t,t,t.expr,e),i.test=this.resolvePrecedence(t,e),this.swapLocations(i,i.test,i.falseExpr,e),t=i),t},po.prototype.prepare=function(t,e,i){var s=null;(this.withPositions||this.withSource)&&(s=i.position());var n=this,r=function r(){var o=null,h=Array.prototype.slice.call(arguments);if(h.push(e),n.withPositions||n.withSource){var a=null;n.withSource&&(a=i.lexer._input.substring(s.offset,i.prev[2])),o=new lo(a,s,new _o(i.prev[0],i.prev[1],i.prev[2])),h.push(o)}t||(t=h.shift());var c=n[t];if("function"!=typeof c)throw new Error('Undefined node "'+t+'"');var u=Object.create(c.prototype);return c.apply(u,h),r.instance=u,r.trailingComments&&(u.trailingComments=r.trailingComments),"function"==typeof r.postBuild&&r.postBuild(u),i.debug&&delete n.stack[r.stackUid],n.resolvePrecedence(u,i)};return i.debug&&(this.stack||(this.stack={},this.stackUid=1),this.stack[++this.stackUid]={position:s,stack:(new Error).stack.split("\n").slice(3,5)},r.stackUid=this.stackUid),r.setTrailingComments=function(t){r.instance?r.instance.setTrailingComments(t):r.trailingComments=t},r.destroy=function(t){e&&(t?t.leadingComments?t.leadingComments=e.concat(t.leadingComments):t.leadingComments=e:i._docIndex=i._docs.length-e.length),i.debug&&delete n.stack[r.stackUid]},r},po.prototype.checkNodes=function(){var t=[];for(var e in this.stack)Object.prototype.hasOwnProperty.call(this.stack,e)&&(this.stack[e].key=e,t.push(this.stack[e]));return this.stack={},t},[q,et,nt,ht,ut,pt,xt,gt,Ct,wt,Pt,Bt,Vt,Wt,zt,ee,ae,le,fe,ke,Ee,ve,be,ne,Ie,qt,Re,Ue,Fe,Ge,Qe,$e,Xe,Ze,ii,ri,ai,li,fi,K,Ti,Ei,vi,bi,Ii,Oi,Di,Mi,Gi,Qi,ji,Ki,qi,es,ns,hs,Lt,us,ps,ks,Es,vs,Cs,ws,Ps,Ms,j,Hs,Ys,$s,Xs,Zs,sn,kt,on,un,pn,dn,xn,mn,gn,Ln,On,Ns,Dn,Fn,Hn,Yn,mt,$n,Xn,Zn,sr,or,cr,_r,dr,xr,mr,gr,Nr,Cr,wr,Pr,Br,Vr,jr,Kr,qr,eo,no,ho,uo].forEach((function(t){po.prototype[t.kind]=t}));var fo=L,ko=G,To=Q,xo=po;function Eo(t,e){for(var i=Object.keys(t),s=i.length;s--;){var n=i[s],r=t[n];null===r?delete e[n]:"function"==typeof r?e[n]=r.bind(e):Array.isArray(r)?e[n]=Array.isArray(e[n])?e[n].concat(r):r:"object"===c(r)?e[n]="object"===c(e[n])?Eo(r,e[n]):r:e[n]=r}return e}var yo=function(t){if("function"==typeof this)return new this(t);if(this.tokens=To,this.lexer=new fo(this),this.ast=new xo,this.parser=new ko(this.lexer,this.ast),t&&"object"===c(t)){if(t.parser&&(t.lexer||(t.lexer={}),t.parser.version)){if("string"==typeof t.parser.version){var e=t.parser.version.split(".");if(e=100*parseInt(e[0])+parseInt(e[1]),isNaN(e))throw new Error("Bad version number : "+t.parser.version);t.parser.version=e}else if("number"!=typeof t.parser.version)throw new Error("Expecting a number for version");if(t.parser.version<500||t.parser.version>900)throw new Error("Can only handle versions between 5.x to 8.x")}Eo(t,this),this.lexer.version=this.parser.version}},mo=function(t){return"function"==typeof t.write?t.toString():t};yo.create=function(t){return new yo(t)},yo.parseEval=function(t,e){return new yo(e).parseEval(t)},yo.prototype.parseEval=function(t){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,t=mo(t),this.parser.parse(t,"eval")},yo.parseCode=function(t,e,i){return"object"!==c(e)||i||(i=e,e="unknown"),new yo(i).parseCode(t,e)},yo.prototype.parseCode=function(t,e){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,t=mo(t),this.parser.parse(t,e)},yo.tokenGetAll=function(t,e){return new yo(e).tokenGetAll(t)},yo.prototype.tokenGetAll=function(t){this.lexer.mode_eval=!1,this.lexer.all_tokens=!0,t=mo(t);var e=this.lexer.EOF,i=this.tokens.values;this.lexer.setInput(t);for(var s=this.lexer.lex()||e,n=[];s!=e;){var r=this.lexer.yytext;Object.prototype.hasOwnProperty.call(i,s)&&(r=[i[s],r,this.lexer.yylloc.first_line]),n.push(r),s=this.lexer.lex()||e}return n},k.exports=yo,k.exports.tokens=To,k.exports.lexer=fo,k.exports.AST=xo,k.exports.parser=ko,k.exports.combine=Eo,k.exports.Engine=yo,k.exports.default=yo;var vo=s(k.exports);function Ao(t,e){var i=e&&"markdown"===e.parentParser;if(!t&&i)return"";t=t.replace(/\?>\n<\?/g,"?>\n___PSEUDO_INLINE_PLACEHOLDER___<?");var s,n=new vo({parser:{extractDoc:!0},ast:{withPositions:!0,withSource:!0}}),r=-1!==t.indexOf("<?php"),o=i&&!r;try{s=o?n.parseEval(t):n.parseCode(t)}catch(t){throw t instanceof SyntaxError&&"lineNumber"in t&&(t.loc={start:{line:t.lineNumber,column:t.columnNumber}},delete t.lineNumber,delete t.columnNumber),t}return s.extra={parseAsEval:o},s.comments.forEach((function(t){"\n"===t.value[t.value.length-1]&&(t.value=t.value.slice(0,-1),t.loc.end.offset=t.loc.end.offset-1)})),s}var go=e.util.hasNewline,bo=e.util.skipEverythingButNewLine,No=e.util.skipNewline,Lo=e.util.isNextLineEmpty,Io=e.util.isPreviousLineEmpty,So=e.util.getNextNonSpaceNonCommentCharacterIndex;function Co(t,i){return parseInt(e.version[0])>1?t[i]:t}function Oo(t,e,i){return Io(t,e,Co(i,"locStart"))}function Ro(t,e,i){return Lo(t,e,Co(i,"locEnd"))}function wo(t,e,i){return So(t,e,Co(i,"locEnd"))}function Do(t){return t.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/,"$1$2$3").replace(/^([+-]?[\d.]+)e[+-]?0+$/,"$1").replace(/^([+-])?\./,"$10.").replace(/(\.\d+?)0+(?=e|$)/,"$1").replace(/\.(?=e)/,"")}var Uo={};function Po(t){return Uo[t]}[["or"],["xor"],["and"],["=","+=","-=","*=","**=","/=",".=","%=","&=","|=","^=","<<=",">>="],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!==","<>","<=>"],["<",">","<=",">="],[">>","<<"],["+","-","."],["*","/","%"],["!"],["instanceof"],["++","--","~"],["**"]].forEach((function(t,e){t.forEach((function(t){Uo[t]=e}))}));var Fo=["==","!=","===","!==","<>","<=>"],Mo=["*","/","%"],Bo=[">>","<<"];function Go(t,e){return Po(e)===Po(t)&&("**"!==t&&((!Fo.includes(t)||!Fo.includes(e))&&(!("%"===e&&Mo.includes(t)||"%"===t&&Mo.includes(e))&&((e===t||!Mo.includes(e)||!Mo.includes(t))&&(!Bo.includes(t)||!Bo.includes(e))))))}function Ho(t){var e=t.children||t.body||t.adaptations;return Array.isArray(e)?e:null}function Vo(t){return t.length>0?t[t.length-1]:null}function Qo(t){var e=function(t){var e=t.parent;return e?Ho(e):null}(t);if(!e)return!0;var i=t.node;return e[e.length-1]===i}function Yo(t){var e=t.node;if("program"===e.kind){var i=Ho(e);return!(!i||0===i.length)&&"inline"===i[0].kind}if("switch"===e.kind){if(!e.body)return!1;var s=Ho(e.body);if(0===s.length)return!1;var n=l(s,1)[0];if(!n.body)return!1;var r=Ho(n.body);return 0!==r.length&&"inline"===r[0].kind}var o,h=(o=e.body)?("block"===o.kind&&(o=o.children),o[0]):null;return!!h&&"inline"===h.kind}function Wo(t){return"nowdoc"===t.kind||"encapsed"===t.kind&&"heredoc"===t.type}function jo(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=t.getNode(e),s=t.getNode(e+1),n=t.getNode(e+2);if(!s)return!1;if(n&&["call","new","echo"].includes(n.kind)&&!["call","array"].includes(s.kind)||"parameter"===s.kind){var r=n.arguments.length-1,o=n.arguments.indexOf(s);return o!==r}if(n&&"for"===n.kind){var h=n.init.indexOf(s);if(-1!==h)return h!==n.init.length-1;var a=n.test.indexOf(s);if(-1!==a)return a!==n.test.length-1;var c=n.increment.indexOf(s);if(-1!==c)return c!==n.increment.length-1}if("bin"===s.kind)return s.left===i||jo(t,e+1);if("case"===s.kind&&s.test===i)return!0;if("staticvariable"===s.kind){var u=n.variables.length-1,l=n.variables.indexOf(s);return l!==u}if("entry"===s.kind){if(s.key===i)return!0;var _=n.items.length-1,p=n.items.indexOf(s);return p!==_}if(["call","new"].includes(s.kind)){var f=s.arguments.length-1,d=s.arguments.indexOf(i);return d!==f}if("echo"===s.kind){var k=s.expressions.length-1,T=s.expressions.indexOf(i);return T!==k}if("array"===s.kind){var x=s.items.length-1,E=s.items.indexOf(i);return E!==x}return"retif"===s.kind&&jo(t,e+1)}function $o(t){var e=t.replace(/^\\/,"");return-1!==e.indexOf("\\")?e:t}function zo(t){return t.comments&&t.comments.some((function(t){return!t.leading&&!t.trailing}))}function Ko(t){return"propertylookup"===t.kind||"nullsafepropertylookup"===t.kind||"staticlookup"===t.kind||"offsetlookup"===t.kind}function Xo(t){var e=t.node;return!["try","catch"].includes(e.kind)&&Yo(t)}function Jo(t){var e=t.node;if(["try","catch"].includes(e.kind))return!0;if("switch"===e.kind){var i=Ho(e.body);if(0===i.length)return!0;var s=Vo(i);if(!s.body)return!0;var n=Ho(s.body);return 0===n.length||"inline"!==n[0].kind}return!Yo(t)}function qo(t){var e=t.split("\n").pop();return e.length-e.trimLeft().length+1}function Zo(t){return["program","declare","namespace"].includes(t.kind)}function th(t){return["name","parentreference","selfreference","staticreference"].includes(t.kind)}function eh(t){return"bin"===t.kind&&["||","&&"].includes(t.type)?"logical":t.kind}function ih(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body",i=t.node;return i[e]&&i[e].children&&0===i[e].children.length&&(!i[e].comments||0===i[e].comments.length)}function sh(t,e,i){var s=i(e);return s=bo(t,s),s=No(t,s),go(t,s)}function nh(t){return"nowdoc"===t.kind||"encapsed"===t.kind&&"heredoc"===t.type||"entry"===t.kind&&("nowdoc"===t.value.kind||"encapsed"===t.value.kind&&"heredoc"===t.value.type)}function rh(t,e){var i=function(t,e){for(var i,s=[].concat(e),n=-1;i=t.getParentNode(++n);)if(-1!==s.indexOf(i.kind))return n;return-1}(t,e);return-1===i?null:t.getParentNode(i)}var oh=["__construct","__destruct","__call","__callStatic","__get","__set","__isset","__unset","__sleep","__wakeup","__toString","__invoke","__set_state","__clone","__debugInfo"].reduce((function(t,e){return t[e.toLowerCase()]=e,t}),{});function hh(t){var e=t.toLowerCase();return oh[e]?oh[e]:t}var ah=e.util.addLeadingComment,ch=e.util.addDanglingComment,uh=e.util.addTrailingComment,lh=e.util.skipNewline,_h=e.util.hasNewline,ph=e.util.hasNewlineInRange,fh=e.doc.builders,dh=fh.join,kh=fh.indent,Th=fh.hardline,xh=fh.cursor,Eh=fh.lineSuffix,yh=fh.breakParent;function mh(t,e){var i=t.children;0===i.length?ch(t,e):ah(i[0],e)}function vh(t,e){"block"===t.kind?mh(t,e):ah(t,e)}function Ah(t,e,i,s,n,r){var o=wo(t,n,r),h=t.charAt(o);return e&&"identifier"===e.kind&&i&&("function"===i.kind||"method"===i.kind)&&")"===h?(uh(i,n),!0):!(!i||"function"!==i.kind&&"method"!==i.kind||!s||"block"!==s.kind)&&(mh(s,n),!0)}function gh(t,e,i,s,n,r){if(!i||"if"!==i.kind||!s)return!1;var o=wo(t,n,r);return")"===t.charAt(o)?(uh(e,n),!0):e===i.body&&s===i.alternate?(ch(i,n),!0):"if"===s.kind?(vh(s.body,n),!0):i.body===s&&(ah(s,n),!0)}function bh(t,e,i){if(t&&["class","interface","trait"].includes(t.kind)){var s;if(null!==(s=t.__parent_new_arguments)&&void 0!==s&&s.includes(e))return!1;if(e&&t.extends)if(Array.isArray(t.extends)){if(t.extends.some((function(t){if(e&&e===t)return ch(e,i),!0})))return!0}else if(e===t.extends)return ch(e,i),!0;if(e&&t.implements&&t.implements.some((function(t){if(e&&e===t)return ch(e,i),!0})))return!0;if(!(t.body&&t.body.length>0))return ch(t,i),!0}return!!(e&&"class"===e.kind&&e.isAnonymous&&e.leadingComments&&"commentblock"===i.kind)}function Nh(t,e,i,s,n){if(e&&("function"===e.kind||"method"===e.kind)){for(var r=0,o=0;o<e.arguments.length;o++)r=n.locEnd(e.arguments[o])>r?n.locEnd(e.arguments[o]):r;var h=e.body&&n.locStart(s)>r&&n.locEnd(s)<n.locStart(e.body),a=wo(t,s,n);if(e.type&&h&&")"!==t.charAt(a))return n.locEnd(s)<n.locStart(e.type)?(ch(e.type,s),!0):(uh(e.type,s),!0)}return!1}function Lh(t,e,i,s,n){return!(!i||!["function","method","parameter"].includes(i.kind))&&("typereference"===e.kind&&"identifier"===s.kind&&(uh(e,n),!0))}function Ih(t,e){return!(!t||!["label","goto"].includes(t.kind))&&(uh(t,e),!0)}function Sh(t,e,i,s){return i&&"inline"===i.kind?(i.leadingComments||(i.leadingComments=[]),i.leadingComments.includes(s)||i.leadingComments.push(s),!0):!(t||i||!e||"inline"!==e.kind)&&(ch(e,s),!0)}function Ch(t,e,i){return!(!t||"try"!==t.kind||!e)&&("block"===e.kind?(mh(e,i),!0):"try"===e.kind?(vh(e.always,i),!0):"catch"===e.kind&&(vh(e.body,i),!0))}function Oh(t,e,i,s){return i||e||!t||"namespace"!==t.kind||t.withBrackets?!(e||!t||"namespace"!==t.kind||t.withBrackets)&&(ch(t,s),!0):(uh(t,s),!0)}function Rh(t,e,i,s){return!(!t||"declare"!==t.kind)&&((!e||"noop"!==e.kind)&&(i&&t.directives[0]!==i?!(!i||!e)&&(ah(i,s),!0):("none"===t.mode?uh(t,s):ch(t,s),!0)))}function wh(t,e,i,s,n,r){if(!i||"while"!==i.kind||!s)return!1;var o=wo(t,n,r);return")"===t.charAt(o)?(uh(e,n),!0):"block"===s.kind&&(mh(s,n),!0)}function Dh(t,e){return t.node.printed=!0,e.printer.printComment(t,e)}function Uh(t,e,i,s){var n=[],r=t.getValue();return r&&r.comments?(t.each((function(){var i=t.node;!i||i.leading||i.trailing||s&&!s(i)||n.push(Dh(t,e))}),"comments"),0===n.length?"":i?dh(Th,n):kh([Th,dh(Th,n)])):""}function Ph(t){return t.comments&&t.comments.some((function(t){return t.leading}))}function Fh(t){return t.comments&&t.comments.some((function(t){return t.trailing}))}function Mh(t,e){var i=[];return t.forEach((function(t,s,n){t.printed=!0;var r=n.length===s+1;i.push(t.value),r||i.push(Th),Ro(e.originalText,t,e)&&!r&&i.push(Th)})),i}function Bh(t){return"commentblock"===t.kind}function Gh(t,e,i){var s=t.node;return s&&s===e.cursorNode?[xh,i,xh]:i}function Hh(t,e,i,s){var n=t.node,r=e(t),o=n&&n.comments;if(!o||0===o.length)return Gh(t,i,r);var h=[],a=[s?";":"",r];return t.each((function(e){var s=e.node,n=s.leading,r=s.trailing;if(n){var o=function(t,e,i){var s=Dh(t,i);if(!s)return"";var n=t.node;return i.printer.isBlockComment&&i.printer.isBlockComment(n)?[s,_h(i.originalText,i.locEnd(n))?Th:" "]:[s,Th]}(t,0,i);if(!o)return;h.push(o);var c=i.originalText;_h(c,lh(c,i.locEnd(s)))&&h.push(Th)}else r&&a.push(function(t,e,i){var s=Dh(t,i);if(!s)return"";var n=t.node,r=i.printer.isBlockComment&&i.printer.isBlockComment(n);if(_h(i.originalText,i.locStart(n),{backwards:!0})){var o=Oo(i.originalText,n,i);return Eh([Th,o?Th:"",s])}return r?[" ",s]:[Eh([" ",s]),r?"":yh]}(t,0,i))}),"comments"),Gh(t,i,h.concat(a))}var Vh=new Proxy((function(){}),{get:function(){return Vh}});function Qh(t){var e=t.parent;if(!e)return!1;var i,s=t.key,n=t.node;if(["program","expressionstatement","namespace","declare","block","include","print","return","echo"].includes(e.kind))return!1;switch(n.kind){case"pre":case"post":if("unary"===e.kind)return"pre"===n.kind&&("+"===n.type&&"+"===e.type||"-"===n.type&&"-"===e.type);case"unary":switch(e.kind){case"unary":return n.type===e.type&&("+"===n.type||"-"===n.type);case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===s;case"bin":return"**"===e.type&&"left"===s;default:return!1}case"bin":switch(e.kind){case"assign":case"retif":return["and","xor","or"].includes(n.type);case"silent":case"cast":return n.parenthesizedExpression;case"pre":case"post":case"unary":return!0;case"call":case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":return"what"===s;case"bin":var r=e.type,o=Po(r),h=n.type,a=Po(h);return o>a||("||"===r&&"&&"===h||(o===a&&"right"===s?(Vh.strictEqual(e.right,n),!0):o===a&&!Go(r,h)||(o<a&&"%"===h?"+"===r||"-"===r:!(!Bo[i=r]&&"|"!==i&&"^"!==i&&"&"!==i))));default:return!1}case"propertylookup":case"nullsafepropertylookup":case"staticlookup":return"call"===e.kind&&("what"===s&&n.parenthesizedExpression);case"clone":case"new":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===s;default:return!1}case"yield":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===s;case"retif":return"test"===s;default:return!(!n.key&&!n.value)}case"assign":return("for"!==e.kind||!e.init.includes(n)&&!e.increment.includes(n))&&("assign"!==e.kind&&("static"!==e.kind&&(!["if","do","while","foreach","switch"].includes(e.kind)&&("silent"!==e.kind&&"call"!==e.kind))));case"retif":switch(e.kind){case"cast":return!0;case"unary":case"bin":case"retif":return!("test"===s&&!e.trueExpr);case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return"what"===s;default:return!1}case"closure":switch(e.kind){case"call":return"what"===s;case"propertylookup":case"nullsafepropertylookup":return!0;default:return!1}case"silence":case"cast":return n.parenthesizedExpression;case"string":case"array":switch(e.kind){case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":case"call":return(!["string","array"].includes(n.kind)||"offsetlookup"!==e.kind)&&"what"===s;default:return!1}case"print":case"include":return"bin"===e.kind}return!1}var Yh=e.doc.builders,Wh=Yh.breakParent,jh=Yh.join,$h=Yh.line,zh=Yh.lineSuffix,Kh=Yh.group,Xh=Yh.conditionalGroup,Jh=Yh.indent,qh=Yh.dedent,Zh=Yh.ifBreak,ta=Yh.hardline,ea=Yh.softline,ia=Yh.literalline,sa=Yh.align,na=Yh.dedentToRoot,ra=e.doc.utils.willBreak,oa=e.util.isNextLineEmptyAfterIndex,ha=e.util.hasNewline,aa=e.util.hasNewlineInRange;function ca(t,e){return parseFloat(t)>=parseFloat(e)}function ua(t,e){return!!t.trailingCommaPHP&&ca(t.phpVersion,e)}function la(t){return"1tbs"!==t.braceStyle}function _a(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return[s?"?":"","->",i("offset")]}function pa(t,e,i){return _a(t,e,i,!0)}function fa(t,e,i){var s=t.node,n=!["variable","identifier"].includes(s.offset.kind);return["::",n?"{":"",i("offset"),n?"}":""]}function da(t,e,i){var s=t.node,n=s.offset&&"number"===s.offset.kind||rh(t,"encapsed");return["[",s.offset?Kh([Jh([n?"":ea,i("offset")]),n?"":ea]):"","]"]}function ka(t){return"array"===t.kind&&(t.items.length>0||t.comments)||"function"===t.kind||"method"===t.kind||"closure"===t.kind}function Ta(t){var e,i=Vo(t),s=(e=t).length>1?e[e.length-2]:null;return!Ph(i)&&!Fh(i)&&ka(i)&&(!s||s.kind!==i.kind)}function xa(t){if(2!==t.length)return!1;var e=l(t,2),i=e[0],s=e[1];return!(i.comments&&i.comments.length||"function"!==i.kind&&"method"!==i.kind&&"closure"!==i.kind||"retif"===s.kind||ka(s))}function Ea(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"arguments",n=t.node[s];if(0===n.length)return["(",Uh(t,e,!0),")"];var r=!1,o=!1,h=t.map((function(t){var s=t.node,n=t.isLast,h=t.isFirst,a=[i()];return n||(Ro(e.originalText,s,e)?(h&&(o=!0),r=!0,a.push(",",ta,ta)):a.push(",",$h)),a}),s),a=t.node,c=Vo(n),u=ua(e,"7.3")&&["call","new","unset","isset"].includes(a.kind)||ua(e,"8.0")&&["function","closure","method","arrowfunc","attribute"].includes(a.kind)?Jh([c&&nh(c)?ta:"",","]):"";function l(){return Kh(["(",Jh([$h].concat(_(h))),u,$h,")"],{shouldBreak:!0})}var p=xa(n),f=Ta(n);if(p||f){var d,k=(p?h.slice(1).some(ra):h.slice(0,-1).some(ra))||r;t.each((function(t){var e=t.isLast,s=t.isFirst;p&&s&&(d=[i([],{expandFirstArg:!0}),h.length>1?",":"",o?ta:$h,o?ta:"",h.slice(1)]),f&&e&&(d=[].concat(_(h.slice(0,-1)),[i([],{expandLastArg:!0})]))}),s);var T=h.some(ra),x=["("].concat(_(d),[")"]);return[T?Wh:"",Xh([T?Zh(l(),x):x,p?["(",Kh(d[0],{shouldBreak:!0})].concat(_(d.slice(1)),[")"]):["("].concat(_(h.slice(0,-1)),[Kh(Vo(d),{shouldBreak:!0}),")"]),Kh(["(",Jh([$h].concat(_(h))),Zh(u),$h,")"],{shouldBreak:!0})],{shouldBreak:k})]}return Kh(["(",Jh([ea].concat(_(h))),Zh(u),ea,")"],{shouldBreak:h.some(ra)||r})}function ya(t){return"array"===t.kind&&0!==t.items.length}function ma(t){return"array"===t.right.kind&&0!==t.right.items.length}function va(t,e,i,s,n){var r=[],o=t.node;if("bin"===o.kind){Go(o.type,o.left.type)?r=r.concat(t.call((function(){return va(t,e,i,!0,n)}),"left")):r.push(e("left"));var h=ma(o)?[o.type," ",e("right")]:[o.type,$h,e("right")],a=t.parent,c=!(n&&["||","&&"].includes(o.type))&&eh(a)!==eh(o)&&eh(o.left)!==eh(o)&&eh(o.right)!==eh(o),u=Wo(o.left)||"bin"===o.left.kind&&Wo(o.left.right);r.push(u?"":" ",c?Kh(h):h),s&&o.comments&&(r=Hh(t,(function(){return r}),i))}else r.push(e());return r}function Aa(t,e,i){var s=t.node;switch(s.kind){case"propertylookup":return _a(t,e,i);case"nullsafepropertylookup":return pa(t,e,i);case"staticlookup":return fa(t,0,i);case"offsetlookup":return da(t,0,i);default:return"Have not implemented lookup kind ".concat(s.kind," yet.")}}function ga(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.opening,s=void 0===i||i;if("heredoc"===t.type)return s?"<<<".concat(t.label):t.label;var n={string:'"',shell:"`"};return n[t.type]?n[t.type]:"Unimplemented encapsed type ".concat(t.type)}function ba(t,e,i){var s=[],n=[];return t.each((function(t){var r=t.node;s.push(n),s.push(Kh(i())),n=[",",$h],r&&Ro(e.originalText,r,e)&&n.push(ea)}),"items"),s}function Na(t,e){if(0===e.length)return t;var i=0;return e.reduce((function(e,s){var n=s.start,r=s.end,o=s.alignment,h=s.before,a=s.after,c=[h||""].concat(_(t.slice(n,r)),[a||""]),u=e.concat(t.slice(i,n),o?na(Kh(sa(new Array(o).join(" "),c))):Kh(c),r===t.length-1?t.slice(r):"");return i=r,u}),[])}function La(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"children",n=t.node,r=t.parent,o=-1,h=[],a=[];t.map((function(){var s=t.node,c=t.next,u=t.isFirst,l=t.isLast,_=t.index,p="inline"===s.kind,f=i(),d=!Qo(t)&&!p&&(c&&"case"===c.kind?!Yo(t):c&&"inline"!==c.kind),k=[f,d?ta:"",d&&Ro(e.originalText,s,e)?ta:""],T="block"===n.kind&&r&&["function","closure","method","try","catch"].includes(r.kind),x=T&&u?"":" ";if(p||!p&&l&&o>=0){var E=o;if(p&&(o=_),p&&!u||!p&&l){var y=(p?E:o)+1,m=l&&!p?_+1:_,v=t.siblings[p?E:o],A=v?qo(v.raw):"",g=m-y>1,b=g?T&&!v||Zo(n)&&0===y?"":ta:"",N=g&&"halt"!==s.kind?T&&l?"":ta:"";g&&(x=""),a.push({start:y,end:m,alignment:A,before:b,after:N})}}if(p){var L=c&&"echo"===c.kind&&c.shortForm?"<?=":"<?php",I=s.leadingComments&&s.leadingComments.length?[u&&"namespace"!==n.kind&&!T?"<?php":"","namespace"!==n.kind&&T?"":ta,Mh(s.leadingComments,e),ta,"?>"]:Zo(n)&&u&&"namespace"!==n.kind?"":[x,"?>"],S=t.getNode(_+1),C=S&&S.children&&S.children.length;k=[I,k,s.comments&&s.comments.length?[L,ta,C?Mh(s.comments,e):"",ta]:Zo(n)&&l?"":[L," "]]}h.push(k)}),s);var c=Na(h,a);if("program"===n.kind&&!n.extra.parseAsEval){var u=[],_=l(n.children,1),p=_[0],f=!p||"inline"!==p.kind;if(f){var d=e.originalText.trim().match(/^<\?(php|=)(\s+)?\S/),k=[d&&d[2]&&d[2].includes("\n")?[ta,d[2].split("\n").length>2?ta:""]:" ",n.comments?Mh(n.comments,e):""],T=p&&"echo"===p.kind&&p.shortForm;u.push([T?"<?=":"<?php",k])}u.push(c);var x=/\?>\n?$/.test(e.originalText);if(x){var E=Vo(n.children),y=E?[aa(e.originalText.trimEnd(),e.locEnd(E),e.locEnd(n))?"inline"===E.kind&&E.comments&&E.comments.length?"":ta:" ",Ro(e.originalText,E,e)?ta:""]:n.comments?ta:"";u.push(zh([y,"?>"]))}return u}return c}function Ia(t,e,i,s){return t.map((function(){var s=[];return s.push(i()),Qo(t)||(s.push(ta),Ro(e.originalText,t.node,e)&&s.push(ta)),s}),s)}function Sa(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"extends",n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:" ",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:" ",o=t.node[s],h=zo(o)?[ta,t.call((function(){return Uh(t,e,!0)}),s),ta]:n,a=Array.isArray(o)?Kh(jh(",",t.map((function(s){var n=s.node,o=i();return zo(n)?[ta,Uh(t,e,!0),ta,o]:[r,o]}),s))):[r,i(s)];return Jh([h,s,ra(h)?Jh(a):a])}function Ca(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=s.inline,r=void 0!==n&&n,o=[];return t.node.attrGroups?(t.each((function(){var s=["#["];!r&&o.length>0&&o.push(ta),s.push(ea),t.each((function(){var n=t.node;s.length>2&&s.push(",",$h);var r=[n.name];n.args.length>0&&r.push(Ea(t,e,i,"args")),s.push(Kh(r))}),"attrs"),o.push(Kh([Jh(s),Zh(ua(e,"8.0")?",":""),ea,"]",r?Zh(ea," "):""]))}),"attrGroups"),0===o.length?[]:[].concat(o,[r?"":ta])):[]}function Oa(t,e,i){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"body",n=t.node;if(!n[s])return";";var r=i(s);return[n.shortForm?":":" {",Jh("block"!==n[s].kind||n[s].children&&n[s].children.length>0||n[s].comments&&n[s].comments.length>0?[Xo(t)?"switch"===n.kind?" ":"":ta,r]:""),"if"===n.kind&&"body"===s?"":[Jo(t)?ta:"",n.shortForm?["end",n.kind,";"]:"}"]]}function Ra(t,e,i,s,n,r,o){if(!s)return e;var h=Da(t,s,n,r,o);return Kh([e,i,h])}function wa(t){return!!Ko(t)&&(!("variable"!==t.what.kind&&!th(t.what))||wa(t.what))}function Da(t,e,i,s,n){var r=s?"&":"";if(function(t,e,i){return e.comments&&e.comments.some((function(e){return e.leading&&_h(t,i.locEnd(e))}))}(n.originalText,e,n))return Jh([ta,r,i]);var o="cast"===e.kind?e.expr:e;return"bin"===o.kind&&!ma(o)||"retif"===o.kind&&(!o.trueExpr&&!ya(o.falseExpr)||"bin"===o.test.kind&&!ma(o.test))||("variable"===t.kind||"string"===t.kind||Ko(t))&&("string"===o.kind&&!Ua(o)||wa(o))?Kh(Jh([$h,r,i])):[" ",r,i]}function Ua(t){return t.raw.includes("\n")}function Pa(t,e,i){return("string"===t.kind||"encapsed"===t.kind&&("string"===t.type||"shell"===t.type))&&Ua(t)&&!ha(e,i.locStart(t),{backwards:!0})}function Fa(t,e,i){return Kh(t.map((function(t){return t.isFirst?[e()]:[i,e()]}),"types"))}var Ma=new Set(["loc","range","raw","comments","leadingComments","trailingComments","parenthesizedExpression","parent","prev","start","end","tokens","errors","extra"]);function Ba(t,e){if("string"===t.kind&&delete e.isDoubleQuote,["array","list"].includes(t.kind)&&delete e.shortForm,"inline"===t.kind){if(t.value.includes("___PSEUDO_INLINE_PLACEHOLDER___"))return null;e.value=e.value.replace(/\n/g,"")}if(("continue"===t.kind||"break"===t.kind)&&t.level){var i=e.level;"number"===i.kind&&(e.level="1"===i.value?null:i)}if("block"===t.kind&&1===t.children.length&&"block"===t.children[0].kind)for(;"block"===e.children[0].kind;)e.children=e.children[0].children;"number"===t.kind&&(e.value=Do(t.value));if(["foreach","for","if","while","do"].includes(t.kind)&&(t.body&&"block"!==t.body.kind?e.body={kind:"block",children:[e.body]}:e.body=e.body?e.body:null,t.alternate&&"block"!==t.alternate.kind?e.alternate={kind:"block",children:[e.alternate]}:e.alternate=e.alternate?e.alternate:null),"usegroup"===t.kind&&"string"==typeof t.name&&(e.name=e.name.replace(/^\\/,"")),"useitem"===t.kind&&(e.name=e.name.replace(/^\\/,"")),"method"===t.kind&&"identifier"===t.name.kind&&(e.name.name=hh(e.name.name)),"noop"===t.kind)return null}Ba.ignoredProperties=Ma;var Ga="PHP",Ha={phpVersion:{since:"0.13.0",category:Ga,type:"choice",default:"7.0",description:"Minimum target PHP version.",choices:[{value:"5.0"},{value:"5.1"},{value:"5.2"},{value:"5.3"},{value:"5.4"},{value:"5.5"},{value:"5.6"},{value:"7.0"},{value:"7.1"},{value:"7.2"},{value:"7.3"},{value:"7.4"},{value:"8.0"},{value:"8.1"},{value:"8.2"}]},trailingCommaPHP:{since:"0.0.0",category:Ga,type:"boolean",default:!0,description:"Print trailing commas wherever possible when multi-line."},braceStyle:{since:"0.10.0",category:Ga,type:"choice",default:"per-cs",description:"Print one space or newline for code blocks (classes and functions).",choices:[{value:"psr-2",description:"(deprecated) Use per-cs"},{value:"per-cs",description:"Use the PER Coding Style brace style."},{value:"1tbs",description:"Use 1tbs brace style."}]}},Va=function(t,e,i,s){if("length"!==i&&"prototype"!==i&&"arguments"!==i&&"caller"!==i){var n=Object.getOwnPropertyDescriptor(t,i),r=Object.getOwnPropertyDescriptor(e,i);!Qa(n,r)&&s||Object.defineProperty(t,i,r)}},Qa=function(t,e){return void 0===t||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},Ya=function(t,e){var i=Object.getPrototypeOf(e);i!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,i)},Wa=function(t,e){return"/* Wrapped ".concat(t,"*/\n").concat(e)},ja=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),$a=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),za=function(t,e,i){var s=""===i?"":"with ".concat(i.trim(),"() "),n=Wa.bind(null,s,e.toString());Object.defineProperty(n,"name",$a),Object.defineProperty(t,"toString",h(h({},ja),{},{value:n}))};function Ka(t,e){var i,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=s.ignoreNonConfigurable,r=void 0!==n&&n,o=t.name,h=d(Reflect.ownKeys(e));try{for(h.s();!(i=h.n()).done;){var a=i.value;Va(t,e,a,r)}}catch(t){h.e(t)}finally{h.f()}return Ya(t,e),za(t,e,o),t}var Xa={exports:{}},Ja=function(){var t={};return t.promise=new Promise((function(e,i){t.resolve=e,t.reject=i})),t};!function(t,e){var s=i&&i.__awaiter||function(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{a(s.next(t))}catch(t){r(t)}}function h(t){try{a(s.throw(t))}catch(t){r(t)}}function a(t){t.done?n(t.value):new i((function(e){e(t.value)})).then(o,h)}a((s=s.apply(t,e||[])).next())}))},n=i&&i.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var r=n(Ja);function o(t){var e,i,n,o=this,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"maxAge",c=function(){return s(o,void 0,void 0,a().mark((function o(){var c,u,l,_,p=this;return a().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(void 0===e){o.next=2;break}return o.abrupt("return");case 2:c=function(o){return s(p,void 0,void 0,a().mark((function s(){var c;return a().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:if(n=r.default(),!((c=o[1][h]-Date.now())<=0)){s.next=6;break}return t.delete(o[0]),n.resolve(),s.abrupt("return");case 6:return e=o[0],"function"==typeof(i=setTimeout((function(){t.delete(o[0]),n&&n.resolve()}),c)).unref&&i.unref(),s.abrupt("return",n.promise);case 10:case"end":return s.stop()}}),s)})))},o.prev=3,u=d(t),o.prev=5,u.s();case 7:if((l=u.n()).done){o.next=13;break}return _=l.value,o.next=11,c(_);case 11:o.next=7;break;case 13:o.next=18;break;case 15:o.prev=15,o.t0=o.catch(5),u.e(o.t0);case 18:return o.prev=18,u.f(),o.finish(18);case 21:o.next=25;break;case 23:o.prev=23,o.t1=o.catch(3);case 25:e=void 0;case 26:case"end":return o.stop()}}),o,null,[[3,23],[5,15,18,21]])})))},u=function(){e=void 0,void 0!==i&&(clearTimeout(i),i=void 0),void 0!==n&&(n.reject(void 0),n=void 0)},l=t.set.bind(t);return t.set=function(i,s){t.has(i)&&t.delete(i);var n=l(i,s);return e&&e===i&&u(),c(),n},c(),t}e.default=o,t.exports=o,t.exports.default=o}(Xa,Xa.exports);var qa=s(Xa.exports),Za=new WeakMap;var tc=/@prettier|@format/,ec=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.cacheKey,s=e.cache,n=void 0===s?new Map:s,r=e.maxAge;"number"==typeof r&&qa(n);var o=function(){for(var e=arguments.length,s=new Array(e),o=0;o<e;o++)s[o]=arguments[o];var h=i?i(s):s[0],a=n.get(h);if(a)return a.data;var c=t.apply(this,s);return n.set(h,{data:c,maxAge:r?Date.now()+r:Number.POSITIVE_INFINITY}),c};return Ka(o,t,{ignoreNonConfigurable:!0}),Za.set(o,n),o}((function(t){var e=Ao(t),i=l(e.children,1)[0],s=l(e.comments.filter((function(t){return"commentblock"===t.kind})),1)[0];if(i&&s&&s.loc.start.line<i.loc.start.line)return s}));var ic=e.doc.builders,sc=ic.join,nc=ic.hardline;function rc(t,e){var i=e.extend,s=e.override,n={};for(var r in t){n["languageId"===r?"linguistLanguageId":r]=t[r]}if(i)for(var o in i)n[o]=(n[o]||[]).concat(i[o]);for(var h in s)n[h]=s[h];return n}var oc=[rc(n,{override:{parsers:["php"],vscodeLanguageIds:["php"]}}),rc(r,{override:{parsers:["php"],vscodeLanguageIds:["php"]}})],hc=function(t){return function(e){return e.loc&&e.loc[t]&&e.loc[t].offset}},ac={php:{parse:Ao,astFormat:"php",locStart:hc("start"),locEnd:hc("end"),hasPragma:function(t){if(!tc.test(t))return!1;var e=ec(t);if(e){var i=e.value;return tc.test(i)}return!1}}},cc=new Set(["kind","loc","errors","extra","comments","leadingComments","enclosingNode","precedingNode","followingNode"]);var uc={php:{print:function(t,e,i){var s=t.node;if("string"==typeof s)return s;var n=function(t,e,i){var s=t.node;switch(s.kind){case"program":return Kh([La(t,e,i),Uh(t,e,!0,(function(t){return!t.printed}))]);case"expressionstatement":return i("expression");case"block":return[La(t,e,i),Uh(t,e,!0)];case"declare":var n=function(t){return jh(", ",t.map(i,"directives"))};if(["block","short"].includes(s.mode))return["declare(",n(t),")","block"===s.mode?" {":":",s.children.length>0?Jh([ta,La(t,e,i)]):"",Uh(t,e),ta,"block"===s.mode?"}":"enddeclare;"];var r=function(t,e){var i=t.parent,s=Ho(i);if(!s)return null;var n=s.indexOf(e);return-1===n?null:i.children[n+1]}(t,s);return["declare(",n(t),")",r&&"inline"===r.kind?"":";"];case"declaredirective":return[i("key"),"=",i("value")];case"namespace":return["namespace ",s.name&&"string"==typeof s.name?[s.name,s.withBrackets?" ":""]:"",s.withBrackets?"{":";",zo(s)?[" ",Uh(t,e,!0)]:"",s.children.length>0?s.withBrackets?Jh([ta,La(t,e,i)]):["inline"===s.children[0].kind?"":[ta,sh(e.originalText,s,e.locStart)?ta:""],La(t,e,i)]:"",s.withBrackets?[ta,"}"]:""];case"usegroup":return Kh(["use ",s.type?[s.type," "]:"",Jh([s.name?[$o(s.name),"\\{",ea]:"",jh([",",$h],t.map(i,"items"))]),s.name?[Zh(ua(e,"7.2")?",":""),ea,"}"]:""]);case"useitem":return[s.type?[s.type," "]:"",$o(s.name),zo(s)?[" ",Uh(t,e,!0)]:"",s.alias?[" as ",i("alias")]:""];case"class":case"enum":case"interface":case"trait":return function(t,e,i){var s=t.node,n="class"===s.kind&&s.isAnonymous,r=Ca(t,e,i,{inline:n}),o=n?[]:_(r);s.isReadonly&&o.push("readonly ");s.isFinal&&o.push("final ");s.isAbstract&&o.push("abstract ");o.push(n?"":s.kind),s.name&&o.push(" ",i("name"));"enum"===s.kind&&s.valueType&&o.push(": ",i("valueType"));s.extends&&s.implements?o.push(Xh([[Sa(t,e,i,"extends"),Sa(t,e,i,"implements")],[Sa(t,e,i,"extends"),Sa(t,e,i,"implements"," ",ta)],[Sa(t,e,i,"extends",ta," "),Sa(t,e,i,"implements",ta,s.implements.length>1?ta:" ")]],{shouldBreak:zo(s.extends)})):(s.extends&&o.push(Xh([Sa(t,e,i,"extends"),Sa(t,e,i,"extends"," ",ta),Sa(t,e,i,"extends",ta,s.extends.length>1?ta:" ")])),s.implements&&o.push(Xh([Sa(t,e,i,"implements"),Sa(t,e,i,"implements"," ",ta),Sa(t,e,i,"implements",ta,s.implements.length>1?ta:" ")])));var h=Kh([Kh(o),la(e)?n?$h:ta:" "]),a=s.body&&0===s.body.length&&!zo(s),c=["{",Jh([a?"":ta,Ia(t,e,i,"body")]),Uh(t,e,!0),n&&a?ea:ta,"}"];return[h,c]}(t,e,i);case"traitprecedence":return[i("trait"),"::",i("method")," insteadof ",jh(", ",t.map(i,"instead"))];case"traitalias":return[s.trait?[i("trait"),"::"]:"",s.method?i("method"):""," as ",jh(" ",[].concat(_(s.visibility?[s.visibility]:[]),_(s.as?[i("as")]:[])))];case"traituse":return Kh(["use ",Jh(Kh(jh([",",$h],t.map(i,"traits")))),s.adaptations?[" {",s.adaptations.length>0?[Jh([ta,Ia(t,e,i,"adaptations")]),ta]:zo(s)?[$h,Uh(t,e,!0),$h]:"","}"]:""]);case"function":case"closure":case"method":return function(t,e,i){var s=t.node,n=Ca(t,e,i,{inline:"closure"===s.kind}),r=[];s.isFinal&&r.push("final ");s.isAbstract&&r.push("abstract ");s.visibility&&r.push(s.visibility," ");s.isStatic&&r.push("static ");r.push("function "),s.byref&&r.push("&");s.name&&r.push(i("name"));r.push(Ea(t,e,i)),s.uses&&s.uses.length>0&&r.push(Kh([" use ",Ea(t,e,i,"uses")]));s.type&&r.push([": ",zo(s.type)?[t.call((function(){return Uh(t,e,!0)}),"type")," "]:"",s.nullable?"?":"",i("type")]);var o=r;if(!s.body)return[].concat(_(n),[o]);var h="closure"===s.kind,a=["{",Jh([ih(t)?"":ta,i("body")]),h&&ih(t)?"":ta,"}"];if(h)return[].concat(_(n),[o," ",a]);if(0===s.arguments.length)return[].concat(_(n),[o,la(e)?ta:" ",a]);if(r.some(ra))return[o," ",a];return[].concat(_(n),[Xh([[o,la(e)?ta:" ",a],[o," ",a]])])}(t,e,i);case"arrowfunc":return[s.parenthesizedExpression?"(":""].concat(_(Ca(t,e,i,{inline:!0})),[s.isStatic?"static ":"","fn",Ea(t,e,i),s.type?[": ",s.nullable?"?":"",i("type")]:""," => ",i("body"),s.parenthesizedExpression?")":""]);case"parameter":var o="";1===s.flags?o="public ":2===s.flags?o="protected ":4===s.flags&&(o="private ");var h=[].concat(_(Ca(t,e,i,{inline:!0})),[o,s.readonly?"readonly ":"",s.nullable?"?":"",s.type?[i("type")," "]:"",s.byref?"&":"",s.variadic?"...":"","$",i("name")]);return s.value?Kh([h,zo(s)?" ":"",Uh(t,e,!0)," =",Da(s.name,s.value,i("value"),!1,e)]):h;case"variadic":return["...",i("what")];case"property":return Kh([s.readonly?"readonly ":"",s.type?[s.nullable?"?":"",i("type")," "]:"","$",i("name"),s.value?[" =",Da(s.name,s.value,i("value"),!1,e)]:""]);case"propertystatement":var a=[];t.each((function(){a.push.apply(a,_(Ca(t,e,i)))}),"properties");var c,u=t.map(i,"properties"),p=s.properties.some((function(t){return t.value}));if(1!==u.length||s.properties[0].comments)u.length>0&&(c=Jh(u[0]));else c=l(u,1)[0];var f=s.visibility||null===s.visibility;return Kh([].concat(a,[f?[null===s.visibility?"var":s.visibility,""]:"",s.isStatic?[f?" ":"","static"]:"",c?[" ",c]:"",Jh(u.slice(1).map((function(t){return[",",p?ta:$h,t]})))]));case"if":var d=[],k=Oa(t,e,i,"body"),T=Kh(["if (",Kh([Jh([ea,i("test")]),ea]),")",k]);if(d.push(T,Yo(t)||!s.body?"":ta),s.alternate){d.push(s.shortForm?"":"} ");var x=Fh(s.body)&&s.body.comments.some((function(t){return t.trailing&&!Bh(t)}))||function(t){if(!t.comments)return!1;var e=Vo(t.comments.filter((function(t){return!t.leading&&!t.trailing})));return e&&!Bh(e)}(s),E=!x;d.push(E?"":ta),zo(s)&&d.push(Ro(e.originalText,s.body,e)?ta:"",Uh(t,e,!0),x?ta:" "),d.push("else",Kh("if"===s.alternate.kind?i("alternate"):Oa(t,e,i,"alternate")))}else d.push(s.body?s.shortForm?"endif;":"}":"");return d;case"do":return["do",Oa(t,e,i,"body")," while (",Kh([Jh([ea,i("test")]),ea]),")"];case"while":case"switch":return Kh([s.kind," (",Kh([Jh([ea,i("test")]),ea]),")",Oa(t,e,i,"body")]);case"for":var y=Oa(t,e,i,"body"),m=Uh(t,e,!0),v=m?[m,ea]:"";return s.init.length||s.test.length||s.increment.length?[v,Kh(["for (",Kh([Jh([ea,Kh(jh([",",$h],t.map(i,"init"))),";",$h,Kh(jh([",",$h],t.map(i,"test"))),";",$h,Kh(jh([",",$h],t.map(i,"increment")))]),ea]),")",y])]:[v,Kh(["for (;;)",y])];case"foreach":var A=Oa(t,e,i,"body"),g=Uh(t,e,!0);return[g?[g,ea]:"",Kh(["foreach (",Kh([Jh([ea,i("source"),$h,"as ",Kh(s.key?Jh(jh([" =>",$h],[i("key"),i("value")])):i("value"))]),ea]),")",A])];case"try":var b=[];return b.push("try",Oa(t,e,i,"body")),s.catches&&b.push(t.map(i,"catches")),s.always&&b.push(" finally",Oa(t,e,i,"always")),b;case"catch":return[" catch",s.what?[" (",jh(" | ",t.map(i,"what")),s.variable?[" ",i("variable")]:"",")"]:"",Oa(t,e,i,"body")];case"case":return[s.test?["case ",s.test.comments?Jh(i("test")):i("test"),":"]:"default:",s.body&&s.body.children&&s.body.children.length?Jh([Yo(t)?"":ta,i("body")]):""];case"break":case"continue":return s.level&&("number"===s.level.kind&&"1"!==s.level.value)?["".concat(s.kind," "),i("level")]:s.kind;case"call":return 1===s.arguments.length&&Pa(s.arguments[0],e.originalText,e)?[i("what"),"(",jh(", ",t.map(i,"arguments")),")"]:Ko(s.what)?function(t,e,i){var s=[];function n(t){var i=e.originalText,s=wo(i,t,e);return")"===i.charAt(s)?oa(i,s+1,e):Ro(i,t,e)}function r(t){var o=t.node;if("call"!==o.kind||!Ko(o.what)&&"call"!==o.what.kind)if(Ko(o)){var h=null;h="propertylookup"===o.kind?_a(t,e,i):"nullsafepropertylookup"===o.kind?pa(t,e,i):"staticlookup"===o.kind?fa(t,e,i):da(t,e,i),s.unshift({node:o,needsParens:Qh(t),printed:Hh(t,(function(){return h}),e)}),t.call((function(t){return r(t)}),"what")}else s.unshift({node:o,printed:i()});else s.unshift({node:o,printed:[Hh(t,(function(){return Ea(t,e,i)}),e),n(o)?ta:""]}),t.call((function(t){return r(t)}),"what")}var o=t.node;s.unshift({node:o,printed:Ea(t,e,i)}),t.call((function(t){return r(t)}),"what");for(var h=0;h<s.length;++h)"call"===s[h].node.kind&&s[h-1]&&["propertylookup","nullsafepropertylookup","staticlookup"].includes(s[h-1].node.kind)&&s[h-1].needsParens&&(s[0].printed=["(",s[0].printed],s[h-1].printed=[s[h-1].printed,")"]);for(var a=[],c=[s[0]],u=1;u<s.length&&("call"===s[u].node.kind||Ko(s[u].node)&&s[u].node.offset&&"number"===s[u].node.offset.kind);++u)c.push(s[u]);if("call"!==s[0].node.kind)for(;u+1<s.length&&(Ko(s[u].node)&&Ko(s[u+1].node));++u)c.push(s[u]);a.push(c),c=[];for(var l=!1;u<s.length;++u){if(l&&Ko(s[u].node)){if("offsetlookup"===s[u].node.kind&&s[u].node.offset&&"number"===s[u].node.offset.kind){c.push(s[u]);continue}a.push(c),c=[],l=!1}"call"===s[u].node.kind&&(l=!0),c.push(s[u]),s[u].node.comments&&Fh(s[u].node)&&(a.push(c),c=[],l=!1)}c.length>0&&a.push(c);function _(t){var i=t[1].length&&"offsetlookup"===t[1][0].node.kind;if(1===t[0].length){var s=t[0][0].node;return"variable"===s.kind&&("this"===s.name||p&&n(s.name))||th(s)}function n(t){return t.length<e.tabWidth}var r=Vo(t[0]).node;return Ko(r)&&("identifier"===r.offset.kind||"variable"===r.offset.kind)&&i}var p="expressionstatement"===t.parent.kind,f=a.length>=2&&!a[1][0].node.comments&&_(a);function d(t){for(var e=[],i=0;i<t.length;i++)t[i+1]&&t[i+1].needsParens?(e.push("(",t[i].printed,t[i+1].printed,")"),i++):e.push(t[i].printed);return e}function k(t){return 0===t.length?"":Jh(Kh([ta,jh(ta,t.map(d))]))}var T=a.map(d),x=T,E=f?3:2,y=a.slice(0,E).flat(),m=y.slice(1,-1).some((function(t){return Ph(t.node)}))||y.slice(0,-1).some((function(t){return Fh(t.node)}))||a[E]&&Ph(a[E][0].node),v=rh(t,"encapsed");if(a.length<=E&&!m||v)return Kh(x);var A=Vo(f?a.slice(1,2)[0]:a[0]).node,g="call"!==A.kind&&n(A),b=[d(a[0]),f?a.slice(1,2).map(d):"",g?ta:"",k(a.slice(f?2:1))],N=s.filter((function(t){return"call"===t.node.kind})).length;if(m||N>=3||T.slice(0,-1).some(ra))return Kh(b);return[ra(x)||g?Wh:"",Xh([x,b])]}(t,e,i):[i("what"),Ea(t,e,i)];case"new":var N=s.what&&"class"===s.what.kind&&s.what.isAnonymous;if(!N&&1===s.arguments.length&&Pa(s.arguments[0],e.originalText,e))return["new "].concat(_(t.call(Ca,"what")),[i("what"),"(",jh(", ",t.map(i,"arguments")),")"]);var L=[];if(L.push("new "),N)L.push.apply(L,[s.what.leadingComments&&"commentblock"===s.what.leadingComments[0].kind?[Mh(s.what.leadingComments,e)," "]:""].concat(_(t.call((function(){return Ca(t,e,i,{inline:!0})}),"what")),["class",s.arguments.length>0?[" ",Ea(t,e,i)]:"",Kh(i("what"))]));else{var I=["call","offsetlookup"].includes(s.what.kind),S=[I?"(":"",i("what"),I?")":"",Ea(t,e,i)];L.push(Ph(s.what)?Jh(S):S)}return L;case"clone":return["clone ",s.what.comments?Jh(i("what")):i("what")];case"propertylookup":case"nullsafepropertylookup":case"staticlookup":case"offsetlookup":var C,O=t.parent,R=0;do{C=t.getParentNode(R),R++}while(C&&Ko(C));var w=rh(t,"encapsed")||C&&("new"===C.kind||"assign"===C.kind&&"variable"!==C.left.kind)||"offsetlookup"===s.kind||(th(s.what)||"variable"===s.what.kind)&&["identifier","variable","encapsedpart"].includes(s.offset.kind)&&O&&!Ko(O);return[i("what"),w?Aa(t,e,i):Kh(Jh([ea,Aa(t,e,i)]))];case"exit":return Kh([s.useDie?"die":"exit","(",s.expression?Pa(s.expression,e.originalText,e)?i("expression"):[Jh([ea,i("expression")]),ea]:Uh(t,e),")"]);case"global":return Kh(["global ",Jh(jh([",",$h],t.map(i,"items")))]);case"include":return[s.require?"require":"include",s.once?"_once":""," ",s.target.comments?Jh(i("target")):i("target")];case"label":return[i("name"),":"];case"goto":return["goto ",i("label")];case"throw":return["throw ",s.what.comments?Jh(i("what")):i("what")];case"silent":return["@",i("expr")];case"halt":return[zo(s)?[Uh(t,e,!0),ta]:"","__halt_compiler();",s.after];case"eval":return Kh(["eval(",Pa(s.source,e.originalText,e)?i("source"):[Jh([ea,i("source")]),ea],")"]);case"echo":var D,U=t.map(i,"expressions");if(1!==U.length||s.expressions[0].comments)U.length>0&&(D=Wo(s.expressions[0])||s.expressions[0].comments?Jh(U[0]):qh(U[0]));else D=l(U,1)[0];return Kh([s.shortForm?"":"echo ",D||"",Jh(U.slice(1).map((function(t){return[",",$h,t]})))]);case"print":return["print ",s.expression.comments?Jh(i("expression")):i("expression")];case"return":var P=[];if(P.push("return"),s.expr){var F=i("expr");P.push(" ",s.expr.comments?Jh(F):F)}return zo(s)&&P.push(" ",Uh(t,e,!0)),P;case"isset":case"unset":return Kh([s.kind,Ea(t,e,i,"variables")]);case"empty":return Kh(["empty(",Jh([ea,i("expression")]),ea,")"]);case"variable":var M=t.parent,B=t.grandparent,G="assign"===M.kind?"":s.byref?"&":"",H="encapsedpart"===M.kind&&"simple"===M.syntax&&M.curly||B&&"offsetlookup"===M.kind&&"encapsedpart"===B.kind&&"simple"===B.syntax&&B.curly?"":"$",V=s.curly?"{":"",Q=s.curly?"}":"";return[G,H,V,i("name"),Q];case"constantstatement":case"classconstant":var Y,W=Ca(t,e,i),j=t.map(i,"constants");if(1!==j.length||s.constants[0].comments)j.length>0&&(Y=Jh(j[0]));else Y=l(j,1)[0];return Kh([].concat(_(W),[s.final?"final ":"",s.visibility?[s.visibility," "]:"","const",Y?[" ",Y]:"",Jh(j.slice(1).map((function(t){return[",",ta,t]})))]));case"constant":return Ra(s.name,i("name")," =",s.value,i("value"),!1,e);case"static":var $,z=t.map(i,"variables"),K=s.variables.some((function(t){return t.defaultValue}));if(1!==z.length||s.variables[0].comments)z.length>0&&($=Jh(z[0]));else $=l(z,1)[0];return Kh(["static",$?[" ",$]:"",Jh(z.slice(1).map((function(t){return[",",K?ta:$h,t]})))]);case"staticvariable":return Ra(s.variable,i("variable")," =",s.defaultValue,i("defaultValue"),!1,e);case"list":case"array":var X="array"===s.kind&&ca(e.phpVersion,"5.4")||"list"===s.kind&&(s.shortForm||ca(e.phpVersion,"7.1")),J=X?"[":[s.kind,"("],q=X?"]":")";if(0===s.items.length)return zo(s)?Kh([J,Uh(t,e),ea,q]):[J,q];var Z=Vo(s.items),tt=Z&&"noop"===Z.kind,et=l(s.items.filter((function(t){return"noop"!==t.kind})).sort((function(t,i){return e.locStart(t)-e.locStart(i)})),1)[0],it=!(!et||!et.key)&&et&&aa(e.originalText,e.locStart(s),e.locStart(et));return Kh([J,Jh([ea,ba(t,e,i)]),tt?",":"",Zh(!tt&&ua(e,"5.0")?[Z&&nh(Z)?ta:"",","]:""),Uh(t,e,!0),ea,q],{shouldBreak:it});case"entry":var st=s.byRef?"&":"",nt=s.unpack?"...":"";return s.key?Ra(s.key,i("key")," =>",s.value,i("value"),st,e):[st,nt,i("value")];case"yield":var rt=[s.key?[i("key")," => "]:"",i("value")];return["yield",s.key||s.value?" ":"",s.value&&s.value.comments?Jh(rt):rt];case"yieldfrom":return["yield from ",s.value.comments?Jh(i("value")):i("value")];case"unary":return[s.type,i("what")];case"pre":return[s.type+s.type,i("what")];case"post":return[i("what"),s.type+s.type];case"cast":return["(",s.type,") ",s.expr.comments?Jh(i("expr")):i("expr")];case"assignref":case"assign":var ot="assignref"===s.kind;return Ra(s.left,i("left"),[" ",ot?"=":s.operator],s.right,i("right"),ot,e);case"bin":var ht=t.parent,at=t.grandparent,ct=s!==ht.body&&("if"===ht.kind||"while"===ht.kind||"switch"===ht.kind||"do"===ht.kind),ut=va(t,i,e,!1,ct);if(ct)return ut;if("unary"===ht.kind||Ko(ht)&&"offsetlookup"!==ht.kind)return Kh([Jh([ea].concat(_(ut))),ea]);var lt=s!==ht.body&&"for"===ht.kind||"retif"===ht.kind&&at&&"return"!==at.kind,_t=["assign","property","constant","staticvariable","entry"].includes(ht.kind),pt="bin"===s.left.kind&&Go(s.type,s.left.type);if(lt||ma(s)&&!pt||!ma(s)&&_t)return Kh(ut);var ft=ut.slice(1);return Kh([ut.length>0?ut[0]:"",Jh(ft)]);case"retif":var dt,kt=[],Tt=t.parent,xt=0;do{dt=t.getParentNode(xt),xt++}while(dt&&"retif"===dt.kind);var Et=dt||Tt,yt="bin"===s.falseExpr.kind?Jh(i("falseExpr")):i("falseExpr"),mt=[s.trueExpr?$h:" ","?",s.trueExpr?[" ","bin"===s.trueExpr.kind?Jh(i("trueExpr")):i("trueExpr"),$h]:"",":",s.trueExpr?[" ",yt]:[ya(s.falseExpr)?" ":$h,yt]];kt.push(mt);var vt=function(t){return Tt===Et?Kh(t):t},At=t.grandparent,gt="cast"===Tt.kind&&At?At:Tt,bt=["propertylookup","nullsafepropertylookup","staticlookup"].includes(gt.kind),Nt=i("test");if(!s.trueExpr){var Lt=[Nt,"bin"===gt.kind||["print","echo","return","include"].includes(Et.kind)?Jh(kt):kt];return"call"===gt.kind&>.what===s||"unary"===gt.kind||Ko(gt)&&"offsetlookup"!==gt.kind?Kh([Jh([ea,Lt]),ea]):vt(Lt)}return vt(["retif"===s.test.kind?Jh(Nt):Nt,Jh(kt),bt?ea:""]);case"boolean":return s.value?"true":"false";case"number":return Do(s.value);case"string":if("encapsedpart"===t.parent.kind){var It=t.grandparent,St=0,Ct=ca(e.phpVersion,"7.3"),Ot=ia;if("heredoc"===It.type){Ot=Ct?ta:ia;var Rt=It.raw.split("\n");-1===(St=Rt[Rt.length-1].search(/\S/))&&(St=Rt[Rt.length-2].search(/\S/))}return jh(Ot,s.raw.split("\n").map((function(t,e){return e>0||0===s.loc.start.column?t.substring(St):t})))}var wt=function(t,e){if(t.isDoubleQuote===e.singleQuote){var i=t.raw.slice("b"===t.raw[0]?2:1,-1).match(/\\([$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u{([0-9a-fA-F]+)})|\r?\n|'|"|\$/);return t.isDoubleQuote?i:!i}return t.isDoubleQuote}(s,e)?'"':"'",Dt=s.raw;return"b"===s.raw[0]&&(Dt=Dt.slice(1)),['"',"'"].includes(Dt[0])&&(Dt=Dt.substr(1)),['"',"'"].includes(Dt[Dt.length-1])&&(Dt=Dt.substr(0,Dt.length-1)),["b"===s.raw[0]?"b":"",wt,jh(ia,Dt.split("\n")),wt];case"intersectiontype":return Fa(t,i,"&");case"uniontype":return Fa(t,i,"|");case"encapsedpart":var Ut="simple"===s.syntax&&s.curly||"complex"===s.syntax?[s.curly?"$":"","{"]:"",Pt="simple"===s.syntax&&s.curly||"complex"===s.syntax?"}":"";return[Ut,i("expression"),Pt];case"encapsed":switch(s.type){case"string":case"shell":case"heredoc":var Ft=ca(e.phpVersion,"7.3")?ta:ia;return[ga(s),"heredoc"===s.type?Ft:""].concat(_(t.map(i,"value")),[ga(s,{opening:!1}),"heredoc"===s.type&&jo(t)?ta:""]);default:return"Have not implemented kind ".concat(s.type," yet.")}case"inline":return jh(ia,s.raw.replace("___PSEUDO_INLINE_PLACEHOLDER___","").split("\n"));case"magic":return s.value;case"nowdoc":var Mt=ca(e.phpVersion,"7.3")?ta:ia;return["<<<'",s.label,"'",Mt,jh(Mt,s.value.split("\n")),Mt,s.label,jo(t)?ta:""];case"name":return["rn"===s.resolution?"namespace\\":"",s.name];case"literal":return i("value");case"parentreference":return"parent";case"selfreference":return"self";case"staticreference":return"static";case"typereference":return s.name;case"nullkeyword":return"null";case"identifier":return"method"===t.parent.kind&&(s.name=hh(s.name)),i("name");case"match":var Bt=t.map((function(){var s=t.node,n=Ph(s)?[Mh(s.leadingComments,e),ta]:[],r=!t.isLast||e.trailingCommaPHP?",":"",o=Fh(s)?[" ",Mh(s.comments.filter((function(t){return t.trailing})),e)]:[],h=null===s.conds?"default":t.map((function(t){var e=t.isFirst;return[",",$h,i()].slice(e?2:0)}),"conds"),a=i("body"),c=!t.isFirst&&Oo(e.originalText,s,e)?ta:"";return["",ta,c].concat(n,[Kh([Kh([h,Jh($h)]),"=> ",a,r].concat(o))]).slice(t.isFirst?1:0)}),"arms");return Kh(["match (",Kh([ea,Jh(i("cond")),ea]),") {",Kh(Jh(_(Bt)))," ",ea,"}"]);case"noop":return s.comments?Mh(s.comments,e):"";case"namedargument":return[s.name,": ",i("value")];case"enumcase":return Kh(["case ",i("name"),s.value?[" =",Da(s.name,s.value,i("value"),!1,e)]:""]);case"variadicplaceholder":return"...";default:return"Have not implemented kind ".concat(s.kind," yet.")}}(t,e,i),r=[],o=Qh(t);return o&&r.unshift("("),r.push(n),o&&r.push(")"),function(t){var e=t.node,i=t.parent;if(!i)return!1;if(["for","foreach","while","do","if","switch"].includes(i.kind)&&"block"!==e.kind&&"if"!==e.kind&&(i.body===e||i.alternate===e))return!0;if(!function(t){return["block","program","namespace","class","enum","interface","trait","traituse","declare"].includes(t.kind)}(i))return!1;if("echo"===e.kind&&e.shortForm)return!1;if("traituse"===e.kind)return!e.adaptations;if("method"===e.kind&&e.isAbstract)return!0;if("method"===e.kind){var s=t.parent;if(s&&"interface"===s.kind)return!0}return["expressionstatement","do","usegroup","classconstant","propertystatement","traitprecedence","traitalias","goto","constantstatement","enumcase","global","static","echo","unset","return","break","continue","throw"].includes(e.kind)}(t)&&r.push(";"),function(t){var e=t.node,i="program"===e.kind,s=e.children&&Vo(e.children);if(!i)return!1;if(s&&["halt","inline"].includes(s.kind))return!1;if(s&&("declare"===s.kind||"namespace"===s.kind)){var n=s.children.length>0&&Vo(s.children);if(n&&["halt","inline"].includes(n.kind))return!1}return!0}(t)&&r.push(ta),r},getVisitorKeys:function(t,e){return Object.keys(t).filter((function(t){return!e.has(t)&&!cc.has(t)}))},insertPragma:function(t){var e=ec(t);if(e){var i=e.loc,s=i.start.offset,n=i.end.offset,r=t.substring(0,s),o=t.substring(n);return"".concat(r).concat(function(t){var e=t.split("\n");if(1===e.length){var i=l(/\/*\*\*(.*)\*\//.exec(e[0]),2)[1];e=["/**"," * ".concat(i.trim())," */"]}var s=e.findIndex((function(t){return/@\S/.test(t)}))||1;return e.splice(s,0," * @format"),e.join("\n")}(e.value)).concat(o)}var h="<?php";if(!t.startsWith(h))return t;var a=h.length,c=t.substring(0,a),u=t.substring(a);return"".concat(c,"\n/** \n * @format \n */\n").concat(u)},massageAstNode:Ba,getCommentChildNodes:function(t){if("new"===t.kind&&"class"===t.what.kind)return t.what.__parent_new_arguments=_(t.arguments),[t.what]},canAttachComment:function(t){return t.kind&&"commentblock"!==t.kind&&"commentline"!==t.kind},isBlockComment:Bh,handleComments:{ownLine:function(t,e,i){var s=t.precedingNode,n=t.enclosingNode,r=t.followingNode;return Ah(e,s,n,r,t,i)||function(t,e,i){if(t&&Ko(t)&&e&&["identifier","variable","encapsed"].includes(e.kind))return ah(t,i),!0;return!1}(n,r,t)||gh(e,s,n,r,t,i)||wh(e,s,n,r,t,i)||Ch(n,r,t)||bh(n,r,t)||Lh(e,s,n,r,t)||Nh(e,n,r,t,i)||function(t,e,i,s){if(!i&&t&&("for"===t.kind||"foreach"===t.kind))return t.body&&"block"!==t.body.kind?ah(i,s):ah(t,s),!0;return!1}(n,0,r,t)||Sh(n,s,r,t)||Rh(n,s,r,t)},endOfLine:function(t,e,i){var s=t.precedingNode,n=t.enclosingNode,r=t.followingNode;return function(t,e,i,s,n){if(!e&&!s&&i&&"array"===i.kind)return uh(i,n),!0;return!1}(0,s,n,r,t)||function(t,e,i,s,n){if(i&&"return"===i.kind&&!i.expr)return uh(i,n),!0;return!1}(0,0,n,0,t)||Ah(e,s,n,r,t,i)||function(t,e,i,s,n,r){var o=e&&!ph(n,r.locEnd(e),r.locStart(s));if((!e||!o)&&t&&"retif"===t.kind&&i)return ah(i,s),!0;return!1}(n,s,r,t,e,i)||gh(e,s,n,r,t,i)||wh(e,s,n,r,t,i)||Ch(n,r,t)||bh(n,r,t)||Lh(e,s,n,r,t)||Nh(e,n,r,t,i)||function(t,e){if(t&&"entry"===t.kind)return ah(t,e),!0;return!1}(n,t)||function(t,e,i){if(e&&"call"===e.kind&&t&&e.what===t&&e.arguments.length>0)return ah(e.arguments[0],i),!0;return!1}(s,n,t)||function(t,e,i){if(t&&"assign"===t.kind&&e){var s=t.loc.start.offset+t.loc.source.indexOf("=");if(i.loc.start.offset>s)return ah(e,i),!0}return!1}(n,r,t)||Sh(n,s,r,t)||Oh(n,s,r,t)||Rh(n,s,r,t)||Ih(n,t)},remaining:function(t,e,i){var s=t.precedingNode,n=t.enclosingNode,r=t.followingNode;return gh(e,s,n,r,t,i)||wh(e,s,n,r,t,i)||function(t,e,i,s){var n=wo(t,i,s);if(")"!==t.charAt(n))return!1;if(e&&("function"===e.kind||"closure"===e.kind||"method"===e.kind||"call"===e.kind||"new"===e.kind)&&0===e.arguments.length)return ch(e,i),!0;return!1}(e,n,t,i)||bh(n,r,t)||function(t,e,i){if(t&&"traituse"===t.kind&&t.adaptations&&!t.adaptations.length)return ch(t,i),!0;return!1}(n,0,t)||Lh(e,s,n,r,t)||Nh(e,n,r,t,i)||Ih(n,t)||function(t,e,i,s){if(e&&"halt"===e.kind)return ch(e,s),!0;if(t&&"halt"===t.kind)return ch(t,s),!0;return!1}(s,n,0,t)||function(t,e){if(t&&("continue"===t.kind||"break"===t.kind)&&!t.label)return uh(t,e),!0;return!1}(n,t)||Sh(n,s,r,t)||Oh(n,s,r,t)}},willPrintOwnComments:function(t){var e=t.node;return e&&"noop"===e.kind},printComment:function(t){var e=t.node;switch(e.kind){case"commentblock":if(!e.value.includes("\n"))return e.value;var i=e.value.split("\n");return i.slice(1,i.length-1).every((function(t){return"*"===t.trim()[0]}))?sc(nc,i.map((function(t,e){return(e>0?" ":"")+(e<i.length-1?t.trim():t.trimLeft())}))):e.value;case"commentline":return e.value.trimRight();default:throw new Error("Not a comment: ".concat(JSON.stringify(e)))}},hasPrettierIgnore:function(t){var e=function(t){return t.value.includes("prettier-ignore")&&!t.value.includes("prettier-ignore-start")&&!t.value.includes("prettier-ignore-end")},i=t.node,s=t.parent;return i&&"classconstant"!==i.kind&&i.comments&&i.comments.length>0&&i.comments.some(e)||i&&"constant"===i.kind&&s&&"classconstant"===s.kind&&s.comments&&s.comments.length>0&&s.comments.some(e)}}};t.defaultOptions={tabWidth:4},t.languages=oc,t.options=Ha,t.parsers=ac,t.printers=uc,Object.defineProperty(t,"__esModule",{value:!0})}));
|