From 1a8ad83a17cc82755ebf7326a466279902b2ac43 Mon Sep 17 00:00:00 2001 From: Ioan CHIRIAC Date: Tue, 27 Dec 2016 09:58:58 +0100 Subject: [PATCH] release 0.1.5 --- RELEASE.md | 10 ++ dist/php-parser.js | 260 ++++++++++++++++--------------------- dist/php-parser.min.js | 78 +++++------ dist/php-parser.min.js.map | 2 +- package.json | 11 +- 5 files changed, 165 insertions(+), 196 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 43cb13898..d5640771b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,15 @@ # Releases +## 0.1.5 : (2016-12-27) + +> The 0.1.x version starts to be deprecated + +- Fix closure use token +- Improve silent errors handler +- Pass PHP7 tests +- Update class, traits, interface declarations +- Many syntax fixes + ## 0.1.4 : (2016-12-12) - Move from static instances to instanciated objects in order to fully handle diff --git a/dist/php-parser.js b/dist/php-parser.js index 2aacbbb68..eb5502a8e 100644 --- a/dist/php-parser.js +++ b/dist/php-parser.js @@ -1,4 +1,4 @@ -/*! php-parser - BSD3 License - 2016-12-20 */ +/*! php-parser - BSD3 License - 2016-12-27 */ require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o */ ,read_class_body: function() { - var result = { - 'constants': [] - ,'properties': [] - ,'methods': [] - ,'use': { - // list of traits - traits: [], - // list of alias - adaptations: [] - } - }, startAt = null, node = null, comment = false; - - + var result = []; while(this.token !== this.EOF && this.token !== '}') { if (this.token === this.tok.T_COMMENT) { - comment = this.read_comment(); + result.push(this.read_comment()); continue; } if (this.token === this.tok.T_DOC_COMMENT) { - comment = this.read_doc_comment(); + result.push(this.read_doc_comment()); continue; } // check T_USE trait if (this.token === this.tok.T_USE) { - comment = false; // flush comments - this.next().read_trait_use_statement(result['use']); + result = result.concat( + this.next().read_trait_use_statement() + ); continue; } - // prepare here position (to avoid bad position on locations) - if (this.locations) { - startAt = [ - this.lexer.yylloc.first_line, - this.lexer.yylloc.first_column, - this.length - this.lexer._input.length - this.lexer.yytext.length - ]; - } + // read member flags var flags = this.read_member_flags(false); @@ -2445,12 +2427,7 @@ module.exports = { for(var i = 0; i < constants.length; i++) { var constant = constants[i]; (this.locations ? constant[3] : constant).push(flags); - if (comment) { - var buffer = comment.slice(0); - (this.locations ? buffer[3] : buffer).push(constant); - constant = buffer; - } - result.constants.push(constant); + result.push(constant); } continue; } @@ -2458,46 +2435,38 @@ module.exports = { // jump over T_VAR then land on T_VARIABLE if (this.token === this.tok.T_VAR) { this.next().expect(this.tok.T_VARIABLE); + flags[0] = flags[1] = 0; // public & non static var } - // reads a variable if (this.token === this.tok.T_VARIABLE) { + + // reads a variable var variables = this.read_variable_list(flags); this.expect(';').nextWithComments(); + for(var i = 0; i < variables.length; i++) { var variable = variables[i]; (this.locations ? variable[3] : variable).push(flags); - if (comment) { - var buffer = comment.slice(0); - (this.locations ? buffer[3] : buffer).push(variable); - variable = buffer; - } - result.properties.push(variable); + result.push(variable); } - comment = false; + } else if (this.token === this.tok.T_FUNCTION) { + // reads a function - var method = this.read_function(false, flags[2] === 1); - if (this.locations) { - method[1] = startAt; - method[3].push(flags); - } else { - method.push(flags); - } - if (comment) { - (this.locations ? comment[3] : comment).push(method); - method = comment; - comment = false; - } - result.methods.push(method); + result.push(this.read_function(false, flags)); + } else { + // raise an error - this.error([ - this.tok.T_CONST, - this.tok.T_VARIABLE, - this.tok.T_FUNCTION - ]); + result.push( + this.error([ + this.tok.T_CONST, + this.tok.T_VARIABLE, + this.tok.T_FUNCTION + ]) + ); this.next(); // ignore token + } } this.expect('}').nextWithComments(); @@ -2522,16 +2491,17 @@ module.exports = { * */ ,read_variable_declaration: function() { - var varName = this.node(this.text()); - this.expect(this.tok.T_VARIABLE).next(); + var result = this.node('var'); + var name = this.expect(this.tok.T_VARIABLE).text(); + this.next(); if (this.token === ';' || this.token === ',') { - return varName(null); + return result(name, null); } else if(this.token === '=') { // https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L815 - return varName(this.next().read_expr()); + return result(name, this.next().read_expr()); } else { this.expect([',', ';', '=']); - return varName(null); + return result(name, null); } } /** @@ -2555,14 +2525,10 @@ module.exports = { * */ ,read_constant_declaration: function() { - var name = this.node(this.text()); - var value = this.expect(this.tok.T_STRING) - .next() - .expect('=') - .next() - .read_expr() - ; - return name(value); + var result = this.node('const'); + var name = this.expect(this.tok.T_STRING).text(); + var value = this.next().expect('=').next().read_expr(); + return result(name, value); } /** * Read member flags @@ -2643,10 +2609,8 @@ module.exports = { * */ ,read_interface_body: function() { - var result = { - 'constants': [] - ,'methods': [] - }, startAt = null, comment = false; + var result = []; + while(this.token !== this.EOF && this.token !== '}') { if (this.token === this.tok.T_COMMENT) { @@ -2659,16 +2623,6 @@ module.exports = { continue; } - - // prepare here position (to avoid bad position on locations) - if (this.locations) { - startAt = [ - this.lexer.yylloc.first_line, - this.lexer.yylloc.first_column, - this.length - this.lexer._input.length - this.lexer.yytext.length - ]; - } - // read member flags var flags = this.read_member_flags(true); @@ -2680,38 +2634,25 @@ module.exports = { for(var i = 0; i < constants.length; i++) { var constant = constants[i]; (this.locations ? constant[3] : constant).push(flags); - if (comment) { - var buffer = comment.slice(0); - (this.locations ? buffer[3] : buffer).push(constant); - constant = buffer; - } - result.constants.push(constant); + result.push(constant); } } // reads a function else if (this.token === this.tok.T_FUNCTION) { - // reads a function - var method = this.read_function_declaration().concat( - [flags] - ); - if (this.locations) { - method[1] = startAt; - } - if (comment) { - (this.locations ? comment[3] : comment).push(method); - method = comment; - comment = false; - } - result.methods.push(method); + var method = this.read_function_declaration(2); + (this.locations ? method[3] : method).push(flags); + result.push(method); this.expect(';').nextWithComments(); } else { // raise an error - this.error([ - this.tok.T_CONST, - this.tok.T_FUNCTION - ]); + result.push( + this.error([ + this.tok.T_CONST, + this.tok.T_FUNCTION + ]) + ); this.next(); } } @@ -2755,23 +2696,28 @@ module.exports = { * trait_use_statement ::= namespace_name (',' namespace_name)* ('{' trait_use_alias '}')? * */ - ,read_trait_use_statement: function(result) { - result.traits.push(this.read_namespace_name()); + ,read_trait_use_statement: function() { + // defines use statements + var node = this.node('use'); + var name = this.read_namespace_name(); + var result = [node(name)]; while(this.token === ',') { - result.traits.push( - this.next().read_namespace_name() - ); + node = this.node('use'); + name = this.next().read_namespace_name(); + result.push(node(name)); } if (this.token === '{') { + // defines alias statements while(this.next()) { if (this.token === '}') break; - result.adaptations.push(this.read_trait_use_alias()); + result.push(this.read_trait_use_alias()); this.expect(';'); } this.expect('}').nextWithComments(); } else { this.expect(';').nextWithComments(); } + return result; } /** * Reading trait alias @@ -2780,35 +2726,36 @@ module.exports = { * */ ,read_trait_use_alias: function() { - var result = { - origin: this.read_namespace_name(), - act: false, - target: false - }; + var node = this.node('alias'); + var origin = this.read_namespace_name(); + var act = false; + var target = false; + var flags = false; + if (this.token === this.tok.T_DOUBLE_COLON) { - result.origin = [ - result.origin, + origin = [ + 'static', + 'get', + origin, this.next().expect(this.tok.T_STRING).text() ]; this.next(); } if (this.token === this.tok.T_INSTEADOF) { - result.act = 'instead'; - result.target = this.next().read_namespace_name(); + act = 'insteadof'; + target = this.next().read_namespace_name(); } else if (this.token === this.tok.T_AS) { - result.act = 'as'; + act = 'as'; if (this.next().is('T_MEMBER_FLAGS')) { - result.flags = this.read_member_flags(); - } else { - result.flags = null; + flags = this.read_member_flags(); } if (this.token === this.tok.T_STRING) { - result.target = this.text(); + target = this.text(); this.next(); - } else if (result.flags === null) { + } else if (flags === false) { // no visibility flags and no name => too bad - this.expect(this.tok.T_STRING) + this.expect(this.tok.T_STRING); } } else { this.expect([ @@ -2816,7 +2763,7 @@ module.exports = { this.tok.T_INSTEADOF ]); } - return result; + return node(origin, act, target, flags); } }; @@ -3096,7 +3043,7 @@ module.exports = { // T_YIELD_FROM expr case this.tok.T_YIELD_FROM: - return ['yield-from', this.next().read_expr()]; + return ['yieldfrom', this.next().read_expr()]; case this.tok.T_FUNCTION: // @fixme later - removed static lambda function declarations (colides with static keyword usage) @@ -3301,17 +3248,20 @@ module.exports = { * function ::= function_declaration code_block * */ - ,read_function: function(annonymous, isAbstract) { + ,read_function: function(closure, flag) { var result = this.node( - this.read_function_declaration(annonymous) + this.read_function_declaration(closure ? 1 : flag ? 2 : 0) ); - if (isAbstract) { - result = result(); + if (flag && flag[2] == 1) { + result = result(flag); this.expect(';').nextWithComments(); } else { - result = result( - this.expect('{').read_code_block(false) - ); + var body = this.expect('{').read_code_block(false); + if (flag) { + result = result(body, flag); + } else { + result = result(body); + } } return result; } @@ -3321,26 +3271,35 @@ module.exports = { * function_declaration ::= T_FUNCTION '&'? T_STRING '(' parameter_list ')' * */ - ,read_function_declaration: function(annonymous) { - var result = this.node('function'); + ,read_function_declaration: function(type) { + var nodeName = 'function'; + if (type === 1) { + nodeName = 'closure'; + } else if (type === 2) { + nodeName = 'method'; + } + var result = this.node(nodeName); this.expect(this.tok.T_FUNCTION); var isRef = this.next().is_reference(); var name = false, use = [], returnType = false; - if (!annonymous) { + if (type !== 1) { name = this.expect(this.tok.T_STRING).text(); this.next(); } this.expect('(').next(); var params = this.read_parameter_list(); this.expect(')').next(); - if (this.token === this.tok.T_USE) { + if (type === 1 && this.token === this.tok.T_USE) { use = this.next().expect('(').next().read_list(this.read_lexical_var, ','); this.expect(')').next(); } if (this.token === ':') { returnType = this.next().read_type(); } - return result(name, params, isRef, use, returnType); + if (type === 1) { + return result(params, isRef, use, returnType); + } + return result(name, params, isRef, returnType); } /** * @@ -3391,15 +3350,16 @@ module.exports = { * @see https://github.com/php/php-src/blob/493524454d66adde84e00d249d607ecd540de99f/Zend/zend_language_parser.y#L640 */ ,read_parameter: function() { + var node = this.node('param'); var type = this.read_type(); var isRef = this.is_reference(); var isVariadic = this.is_variadic(); var name = this.expect(this.tok.T_VARIABLE).text(); - var value = []; + var value = null; if (this.next().token == '=') { value = this.next().read_expr(); } - return [name, type, value, isRef, isVariadic]; + return node(name, type, value, isRef, isVariadic); } /** * @@ -3427,7 +3387,7 @@ module.exports = { */ ,read_argument_list: function() { if (this.token === this.tok.T_ELLIPSIS ) { - return this.node('...')(this.next().read_expr()); + return this.node('variadic')(this.next().read_expr()); } return this.read_expr(); } @@ -3441,15 +3401,15 @@ module.exports = { switch(this.token) { case this.tok.T_ARRAY: this.next(); - return 'array'; + return ['array']; case this.tok.T_NS_SEPARATOR: case this.tok.T_STRING: return this.read_namespace_name(); case this.tok.T_CALLABLE: this.next(); - return 'callable'; + return ['callable']; default: - return 'mixed'; + return null; } } }; diff --git a/dist/php-parser.min.js b/dist/php-parser.min.js index 5ade474c9..f225049d4 100644 --- a/dist/php-parser.min.js +++ b/dist/php-parser.min.js @@ -30,43 +30,43 @@ b.length>10&&(b=b.substring(0,7)+"..."),token="'"+b+"' ("+token+")"}var c="";if( this};var f=["parser.next","parser.nextWithComments"];e.prototype.showlog=function(){for(var a,b=(new Error).stack.split("\n"),c=2;c"+this.lexer.yytext+"< @-->"+a),this},e.prototype.expect=function(a){return Array.isArray(a)?a.indexOf(this.token)===-1&&this.error(a):this.token!=a&&this.error(a),this},e.prototype.text=function(){return this.lexer.yytext},e.prototype.next=function(){for(this.lastDoc=null,this.nextWithComments(),this.debug&&this.showlog();this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT;)this.nextWithComments();return this},e.prototype.ignoreComments=function(){for(this.lastDoc=null,this.debug&&this.showlog();this.token===this.tok.T_COMMENT||this.token===this.tok.T_DOC_COMMENT;)this.nextWithComments();return this},e.prototype.nextWithComments=function(){return this.prev=[this.lexer.yylloc.first_line,this.lexer.yylloc.first_column,this.lexer.offset], this.token=this.lexer.lex()||this.EOF,this.token===this.tok.T_DOC_COMMENT&&(this.lastDoc=["doc",this.text()]),this.debug&&this.showlog(),this},e.prototype.is=function(a){return Array.isArray(a)?a.indexOf(this.token)!==-1:this.entries[a].indexOf(this.token)!=-1},e.prototype.read_token=function(){var a=this.token;return d(a)&&(a=[a,this.text(),this.lexer.yylloc.first_line]),this.next(),a},e.prototype.read_list=function(a,b,c,d){var e=[];if(this.token==b&&(c&&e.push(""),this.next()),"function"==typeof a){do{var f=d&&this.lastDoc?this.lastDoc:null,g=a.apply(this,[]);if(f&&(g=f.concat(g)),e.push(g),this.token!=b)break}while(this.next().token!=this.EOF)}else for(e.push(this.expect(a).text());this.next().token!=this.EOF&&this.token==b&&this.next().token==a;)e.push(this.text());return e},[a("./parser/array.js"),a("./parser/class.js"),a("./parser/expr.js"),a("./parser/function.js"),a("./parser/if.js"),a("./parser/loops.js"),a("./parser/main.js"),a("./parser/namespace.js"),a("./parser/scalar.js"),a("./parser/statement.js"),a("./parser/switch.js"),a("./parser/try.js"),a("./parser/comment.js"),a("./parser/variable.js")].forEach(function(a){ for(var b in a)e.prototype[b]=a[b]}),b.exports=e},{"./parser/array.js":12,"./parser/class.js":13,"./parser/comment.js":14,"./parser/expr.js":15,"./parser/function.js":16,"./parser/if.js":17,"./parser/loops.js":18,"./parser/main.js":19,"./parser/namespace.js":20,"./parser/scalar.js":21,"./parser/statement.js":22,"./parser/switch.js":23,"./parser/try.js":24,"./parser/variable.js":25}],12:[function(a,b,c){b.exports={read_array:function(){var a=null,b=[],c=this.node("array");if(this.expect([this.tok.T_ARRAY,"["]).token==this.tok.T_ARRAY?(this.next().expect("("),a=")"):a="]",this.next().token!=a)for(;this.token!=this.EOF&&(b.push(this.read_array_pair_list()),","==this.token)&&(this.next(),this.token!==a););return this.expect(a).next(),c(b)},read_array_pair_list:function(){if("&"===this.token)return{key:!1,value:["ref",this.next().read_variable(!0)]};var a=this.read_expr();return this.token===this.tok.T_DOUBLE_ARROW?"&"===this.next().token?{key:a,value:["ref",this.next().read_variable(!0)]}:{key:a,value:this.read_expr() -}:{key:!1,value:a}},read_dim_offset:function(){return"]"!=this.token&&this.read_expr()}}},{}],13:[function(a,b,c){b.exports={read_class:function(a){var b=this.node("class");this.expect(this.tok.T_CLASS).next().expect(this.tok.T_STRING);var c=this.text(),d=!1,e=!1;return this.next().token==this.tok.T_EXTENDS&&(d=this.next().read_namespace_name()),this.token==this.tok.T_IMPLEMENTS&&(e=this.next().read_list(this.read_namespace_name,",")),b(c,a,d,e,this.expect("{").nextWithComments().read_class_body())},read_class_scope:function(){var a=this.token;return a==this.tok.T_FINAL?(this.next(),-1):a==this.tok.T_ABSTRACT?(this.next(),1):0},read_class_body:function(){for(var a={constants:[],properties:[],methods:[],use:{traits:[],adaptations:[]}},b=null,c=!1;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){this.locations&&(b=[this.lexer.yylloc.first_line,this.lexer.yylloc.first_column,this.length-this.lexer._input.length-this.lexer.yytext.length]); -var d=this.read_member_flags(!1);if(this.token!==this.tok.T_CONST)if(this.token===this.tok.T_VAR&&this.next().expect(this.tok.T_VARIABLE),this.token===this.tok.T_VARIABLE){var e=this.read_variable_list(d);this.expect(";").nextWithComments();for(var f=0;f>",a,this.next().read_expr()];case this.tok.T_BOOLEAN_OR:case this.tok.T_LOGICAL_OR:return["bool","|",a,this.next().read_expr()];case this.tok.T_BOOLEAN_AND:case this.tok.T_LOGICAL_AND:return["bool","&",a,this.next().read_expr()];case this.tok.T_LOGICAL_XOR:return["bool","^",a,this.next().read_expr()];case this.tok.T_IS_IDENTICAL:return["bool","=",a,this.next().read_expr()]; -case this.tok.T_IS_NOT_IDENTICAL:return["bool","!=",a,this.next().read_expr()];case this.tok.T_IS_EQUAL:return["bool","~",a,this.next().read_expr()];case this.tok.T_IS_NOT_EQUAL:return["bool","!~",a,this.next().read_expr()];case"<":return["bool","<",a,this.next().read_expr()];case">":return["bool",">",a,this.next().read_expr()];case this.tok.T_IS_SMALLER_OR_EQUAL:return["bool","<=",a,this.next().read_expr()];case this.tok.T_IS_GREATER_OR_EQUAL:return["bool",">=",a,this.next().read_expr()];case this.tok.T_SPACESHIP:return["bool","<=>",a,this.next().read_expr()];case this.tok.T_INSTANCEOF:return["bool","?",a,this.next().read_expr()];case this.tok.T_COALESCE:return["retif",["sys","isset",a],a,this.next().read_expr()];case"?":var b=null;return":"!==this.next().token&&(b=this.read_expr()),this.expect(":").next(),["retif",a,b,this.read_expr()]}return a},read_expr_item:function(){switch(this.token){case"@":return["silent",this.next().read_expr()];case"-":case"+":case"!":case"~":return this.node("unary")(this.token,this.next().read_expr()); -case"(":var a=this.next().read_expr();return this.expect(")").next(),this.token===this.tok.T_OBJECT_OPERATOR?this.recursive_variable_chain_scan(a,!1):this.token===this.tok.T_CURLY_OPEN||"["===this.token?this.read_dereferencable(a):"("===this.token?this.node("call")(a,this.read_function_argument_list()):a;case"`":var b=this.node("sys"),a=this.next().read_encapsed_string("`");return b("shell",a);case this.tok.T_LIST:var b=this.node("list");this.next().expect("(").next();var c=this.innerList;this.innerList||(this.innerList=!0);for(var d=this.read_assignment_list(),e=!1,f=0;f>",a,this.next().read_expr()]]; -case this.tok.T_INC:return this.next(),["post","+",a];case this.tok.T_DEC:return this.next(),["post","-",a]}else if(this.is("SCALAR"))for(a=this.read_scalar();this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR)a=this.recursive_variable_chain_scan(a,!1);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)a=this.read_dereferencable(a);else{if("("!==this.token)return a;a=this.node("call")(a,this.read_function_argument_list())}else a=this.error("EXPR"),this.next();return a},read_new_expr:function(){var a=this.node("new");if(this.token===this.tok.T_CLASS){var b=!1,c=!1;return this.next().token==this.tok.T_EXTENDS&&(b=this.next().read_namespace_name()),this.token==this.tok.T_IMPLEMENTS&&(c=this.next().read_list(this.read_namespace_name,",")),a(!1,b,c,this.expect("{").next().read_class_body())}var d=this.read_class_name_reference(),e=[];return"("===this.token&&(e=this.read_function_argument_list()),a(d,e)},read_class_name_reference:function(){if("\\"===this.token||this.token===this.tok.T_STRING){ -var a=this.read_namespace_name();return a=this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(a):["ns",a]}return this.is("VARIABLE")?this.read_variable(!0):void this.expect([this.tok.T_STRING,"VARIABLE"])},read_assignment_list:function(){return this.read_list(this.read_assignment_list_element,",")},read_assignment_list_element:function(){if(","===this.token||")"===this.token)return null;var a=this.read_expr_item();return this.token===this.tok.T_DOUBLE_ARROW&&(a=["key",a,this.next().read_expr_item()]),a}}},{}],16:[function(a,b,c){b.exports={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(a,b){var c=this.node(this.read_function_declaration(a));return b?(c=c(),this.expect(";").nextWithComments()):c=c(this.expect("{").read_code_block(!1)),c},read_function_declaration:function(a){var b=this.node("function");this.expect(this.tok.T_FUNCTION);var c=this.next().is_reference(),d=!1,e=[],f=!1; -a||(d=this.expect(this.tok.T_STRING).text(),this.next()),this.expect("(").next();var g=this.read_parameter_list();return this.expect(")").next(),this.token===this.tok.T_USE&&(e=this.next().expect("(").next().read_list(this.read_lexical_var,","),this.expect(")").next()),":"===this.token&&(f=this.next().read_type()),b(d,g,c,e,f)},read_lexical_var:function(){var a=[!1,null];return"&"===this.token&&(a[0]=!0,this.next()),this.token===this.tok.T_VARIABLE?(a[1]=this.text(),this.next()):this.expect(["&",this.tok.T_VARIABLE]),a},read_parameter_list:function(){var a=[];if(")"!=this.token)for(;this.token!=this.EOF;){if(a.push(this.read_parameter()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}this.next()}return a},read_parameter:function(){var a=this.read_type(),b=this.is_reference(),c=this.is_variadic(),d=this.expect(this.tok.T_VARIABLE).text(),e=[];return"="==this.next().token&&(e=this.next().read_expr()),[d,a,e,b,c]},read_function_argument_list:function(){var a=[];if(this.expect("(").next(),")"!==this.token)for(;this.token!=this.EOF&&(a.push(this.read_argument_list()), -","===this.token);)this.next();return this.expect(")").next(),a},read_argument_list:function(){return this.token===this.tok.T_ELLIPSIS?this.node("...")(this.next().read_expr()):this.read_expr()},read_type:function(){switch(this.token){case this.tok.T_ARRAY:return this.next(),"array";case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:return this.read_namespace_name();case this.tok.T_CALLABLE:return this.next(),"callable";default:return"mixed"}}}},{}],17:[function(a,b,c){b.exports={read_if:function(){var a=this.node("if"),b=this.read_if_expr(),c=null,d=!1;if(":"===this.token){for(this.next(),c=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.ignoreComments(),this.token===this.tok.T_ELSEIF){d=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){d=this.next().read_else_short();break}c.push(this.read_inner_statement())}this.ignoreComments().expect(this.tok.T_ENDIF).next().expectEndOfStatement()}else c=this.read_statement(),this.ignoreComments(),this.token===this.tok.T_ELSEIF?d=this.next().read_if():this.token===this.tok.T_ELSE&&(d=this.next().read_statement()); -return a(b,c,d)},read_if_expr:function(){this.expect("(").next();var a=this.read_expr();return this.expect(")").next(),a},read_elseif_short:function(){var a=this.node("if"),b=this.read_if_expr();this.expect(":").next();for(var c=[],d=!1;this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){d=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){d=this.next().read_else_short();break}c.push(this.read_inner_statement())}return a(b,c,d)},read_else_short:function(){this.expect(":").next();for(var a=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)a.push(this.read_inner_statement());return a}}},{}],18:[function(a,b,c){b.exports={read_short_form:function(a){var b=[];for(this.expect(":").next();this.token!=this.EOF&&this.token!==a;)b.push(this.read_inner_statement());return this.expect(a).next().expectEndOfStatement(),b},read_while:function(){var a=this.node("while");this.expect("(").next();var b=this.read_expr();this.expect(")").next();var c=[];return c=":"===this.token?this.read_short_form(this.tok.T_ENDWHILE):this.read_statement(), -a(b,c)},read_do:function(){var a=this.node("do"),b=this.read_statement();this.expect(this.tok.T_WHILE).next().expect("(").next();var c=this.read_expr();return this.expect(")").next().expect(";").next(),a(c,b)},read_for:function(){var a=this.node("for");this.expect("(").next();var b=null,c=null,d=null;";"!==this.token?(b=this.read_list(this.read_expr,","),this.expect(";").next()):this.next(),";"!==this.token?(c=this.read_list(this.read_expr,","),this.expect(";").next()):this.next(),")"!==this.token?(d=this.read_list(this.read_expr,","),this.expect(")").next()):this.next();var e=null;return e=":"===this.token?this.read_short_form(this.tok.T_ENDFOR):this.read_statement(),a(b,c,d,e)},read_foreach:function(){var a=this.node("foreach");this.expect("(").next();var b=this.read_expr();this.expect(this.tok.T_AS).next();var c=this.read_foreach_variable(),d=!1;this.token===this.tok.T_DOUBLE_ARROW&&(d=c,c=this.next().read_foreach_variable()),this.expect(")").next();var e=[];return e=":"===this.token?this.read_short_form(this.tok.T_ENDFOREACH):this.read_statement(), -a(b,d,c,e)},read_foreach_variable:function(){if("&"===this.token)return["byref",this.next().read_variable()];if(this.token===this.tok.T_LIST){var a=this.node("list");this.next().expect("(").next();var b=this.read_assignment_list();return this.expect(")").next(),a(b,!1)}return this.read_variable()}}},{}],19:[function(a,b,c){b.exports={read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}}},{}],20:[function(a,b,c){b.exports={read_namespace:function(){this.expect(this.tok.T_NAMESPACE).next();var a=this.node("namespace");if("{"==this.token)return this.currentNamespace=[""],a([""],this.read_code_block(!0));this.token===this.tok.T_NAMESPACE&&(this.error(["{",this.tok.T_STRING]),this.next());var b=this.read_namespace_name();if(";"==this.token){this.currentNamespace=b;var c=this.nextWithComments().read_top_statements();return this.expect(this.EOF),a(b,c)}if("{"==this.token)return this.currentNamespace=b,a(b,this.read_code_block(!0));if("("===this.token)return this.node("call")(["ns",b.slice(1)],this.read_function_argument_list()); -this.error(["{",";"]),this.currentNamespace=b;var c=this.read_top_statements();return this.expect(this.EOF),a(b,c)},read_namespace_name:function(){return this.token===this.tok.T_NAMESPACE&&this.next().expect(this.tok.T_NS_SEPARATOR).next(),this.read_list(this.tok.T_STRING,this.tok.T_NS_SEPARATOR,!0)},read_use_statements:function(){for(var a=[];this.token!==this.EOF&&(this.expect(this.tok.T_USE).next(),this.read_list(this.read_use_statement_mixed,",").forEach(function(b){"string"==typeof b[0]?a.push(b):b.forEach(function(b){a.push(b)})}),this.token===this.tok.T_USE););return a},read_inline_use_declaration:function(a){for(var b=[];this.token!==this.EOF;){var c=this.node("use"),d=this.read_use_statement(a[3]!==!1);if(this.token===this.tok.T_AS&&(this.next().expect(this.tok.T_STRING),d[1]=this.text(),this.next()),d[0]=a[0].concat(d[0]),a[2]!==!1&&(d[2]=a[2]),b.push(c.apply(this,d)),","!==this.token)break;this.next()}return b},read_use_statement_mixed:function(){var a=this.node("use"),b=this.read_use_statement();if(this.token===this.tok.T_AS)this.next().expect(this.tok.T_STRING), -b[1]=this.text(),this.next();else if("{"===this.token)return b=this.next().read_inline_use_declaration(b),this.expect("}").next(),b;return a.apply(this,b)},read_use_statement:function(a){var b=!1;a||this.token!==this.tok.T_FUNCTION&&this.token!==this.tok.T_CONST||(b=this.token===this.tok.T_FUNCTION?"function":"constant",this.next());var c=this.read_namespace_name();return[c,c[c.length-1],b]}}},{}],21:[function(a,b,c){var d={"\\r":"\r","\\n":"\n","\\t":"\t","\\v":String.fromCharCode(11),"\\e":String.fromCharCode(27),"\\f":String.fromCharCode(12),"\\\\":"\\","\\$":"$",'\\"':'"',"\\'":"'"};b.exports={read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:var a=this.text(),b="b"===a[0]||"B"===a[0];return a=b?a.substring(2,a.length-1):a.substring(1,a.length-1),a=["string",a.replace(/\\[rntvef"'\\\$]/g,function(a){return d[a]})],b&&(a=["cast","binary",a]),this.next(),this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(a):a; -case this.tok.T_START_HEREDOC:return this.next().read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.next().read_encapsed_string('"');case'b"':case'B"':return["cast","binary",this.next().read_encapsed_string('"')];case"-":case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:var c=this.node("number"),a=this.text();return"-"===this.token&&(this.next().expect([this.tok.T_LNUMBER,this.tok.T_DNUMBER]),a+=this.text()),this.next(),c(a);case this.tok.T_NAMESPACE:case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:var a=this.read_namespace_name(),c=["constant",a];for(this.token==this.tok.T_DOUBLE_COLON&&(this.next().expect([this.tok.T_STRING,this.tok.T_CLASS]),c[1]=[a,this.text()],this.next());"["===this.token;)c=["offset",c,this.next().read_expr()],this.expect("]").next();return c;case this.tok.T_ARRAY:case"[":return this.read_array();default:var e=this.error("SCALAR");return this.next(),e}},read_dereferencable:function(a){var b;return"["===this.token?(b=["offset",a,this.next().read_expr()],this.expect("]").next()):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES&&(b=["offset",a,this.read_encapsed_string_item()]), -b},read_encapsed_string_item:function(){var a=null;return this.token===this.tok.T_ENCAPSED_AND_WHITESPACE?(a=["string",this.text()],this.next()):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES?(this.next().token===this.tok.T_STRING_VARNAME?(a=["var",this.text()],"["===this.next().token&&(a=["offset",a,this.next().read_expr()],this.expect("]").next())):a=this.read_expr(),this.expect("}").next()):this.token===this.tok.T_CURLY_OPEN?(a=this.next().read_variable(!1,!1),this.expect("}").next()):"["===this.token?(a=["offset",a,this.next().read_expr()],this.expect("]").next()):this.token===this.tok.T_VARIABLE?a=this.read_variable(!1,!0):this.expect([this.tok.T_VARIABLE,this.tok.T_CURLY_OPEN,this.tok.T_DOLLAR_OPEN_CURLY_BRACES,this.tok.T_ENCAPSED_AND_WHITESPACE]),a},read_encapsed_string:function(a){if(this.token===a)return this.next(),null;var b=this.read_encapsed_string_item();if(this.token===a)return this.next(),b;for(var c=["bin",".",b,this.read_encapsed_string_item()];this.token!==a;)c[3]=["bin",".",c[3],this.read_encapsed_string_item()]; -return this.expect(a).next(),c},get_magic_constant:function(){var a=this.node("magic"),b=this.text();return this.next(),a(b)}}},{}],22:[function(a,b,c){b.exports={read_top_statements:function(){for(var a=[];this.token!==this.EOF&&"}"!==this.token;){var b=this.read_top_statement();b&&("string"==typeof b[0]?a.push(b):a=a.concat(b))}return a},read_top_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function();case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var a=this.read_class_scope();switch(this.token){case this.tok.T_CLASS:return this.read_class(a);case this.tok.T_INTERFACE:return this.read_interface(a);default:var b=this.error([this.tok.T_CLASS,this.tok.T_INTERFACE]);return this.next(),b}case this.tok.T_CLASS:return this.read_class(0);case this.tok.T_INTERFACE:return this.read_interface(0);case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_USE:var c=this.read_use_statements();return this.expect(";").nextWithComments(),c;case this.tok.T_CONST:return this.next().read_const_list(); -case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:var d=this.node("halt");return this.next().expect("(").next().expect(")").next().expect(";"),this.lexer.done=!0,d(this.lexer._input.substring(this.lexer.offset));default:return this.read_statement()}},read_inner_statements:function(){for(var a=[];this.token!=this.EOF&&"}"!==this.token;){var b=this.read_inner_statement();b&&("string"==typeof b[0]?a.push(b):a=a.concat(b))}return a},read_const_list:function(){var a=this.read_list(function(){this.expect(this.tok.T_STRING);var a=this.node(this.text());return this.next().expect("=").next(),a(this.read_expr())},",",!1,!0);return this.expectEndOfStatement(),["const",a]},read_declare_list:function(){return this.read_list(function(){this.expect(this.tok.T_STRING);var a=this.text();return this.next().expect("=").next(),[a,this.read_expr()]},",")},read_inner_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function();case this.tok.T_ABSTRACT:case this.tok.T_FINAL: -var a=this.read_class_scope();switch(this.token){case this.tok.T_CLASS:return this.read_class(a);case this.tok.T_INTERFACE:return this.read_interface(a);default:var b=this.error([this.tok.T_CLASS,this.tok.T_INTERFACE]);return this.next(),b}case this.tok.T_CLASS:return this.read_class(0);case this.tok.T_INTERFACE:return this.read_interface(0);case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_HALT_COMPILER:this.next().expect("(").next().expect(")").next().expect(";").next(),this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");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.next().read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.next().read_for();case this.tok.T_FOREACH:return this.next().read_foreach();case this.tok.T_WHILE:return this.next().read_while();case this.tok.T_DO:return this.next().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:case this.tok.T_BREAK:case this.tok.T_CONTINUE:var a;switch(this.token){case this.tok.T_RETURN:a="return";break;case this.tok.T_BREAK:a="break";break;case this.tok.T_CONTINUE:a="continue"}var b=null;return this.next().is("EOS")||(b=this.read_expr()),this.expectEndOfStatement(),[a,b];case this.tok.T_GLOBAL:var c=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),["global",c];case this.tok.T_STATIC:var d=[this.token,this.lexer.getState()],e=this.node("static");if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(d);var b=this.next().read_expr();return this.expect(";").nextWithComments(),b}var c=this.read_list(function(){var a=this.expect(this.tok.T_VARIABLE).text(),b=null;return"="===this.next().token&&(b=this.next().read_expr()),[a,b]},",");return this.expectEndOfStatement(),e("declare",c);case this.tok.T_ECHO:var c=this.next().read_list(this.read_expr,",");return this.expectEndOfStatement(), -["sys","echo",c];case this.tok.T_INLINE_HTML:var f=["string",this.text()];return this.next(),["sys","echo",f];case this.tok.T_UNSET:this.next().expect("(").next();var c=this.read_list(this.read_variable,",");return this.expect(")").next().expect(";").nextWithComments(),["sys","unset",c];case this.tok.T_DECLARE:var g,h,e=this.node("declare");if(this.next().expect("(").next(),g=this.read_declare_list(),this.expect(")").nextWithComments(),":"===this.token){for(h=[],this.next();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)h.push(this.read_statement());this.ignoreComments().expect(this.tok.T_ENDDECLARE).next().expectEndOfStatement()}else h=this.read_statement();return e(g,h);case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:var e=this.node("throw"),b=this.next().read_expr();return this.expectEndOfStatement(),e(b);case";":case this.tok.T_CLOSE_TAG:return this.next(),null;case this.tok.T_STRING:var d=[this.token,this.lexer.getState()],i=this.text();if(":"===this.next().token){var e=this.node("label"); -return this.next(),e(i)}this.lexer.tokens.push(d);var b=this.next().read_expr();return this.expect([";",this.tok.T_CLOSE_TAG]).nextWithComments(),b;case this.tok.T_GOTO:var e=this.node("goto"),i=this.next().expect(this.tok.T_STRING).text();return this.next().expectEndOfStatement(),e(i);default:var b=this.read_expr();return this.expectEndOfStatement(),b}},read_code_block:function(a){this.expect("{").nextWithComments();var b=a?this.read_top_statements():this.read_inner_statements();return this.expect("}").nextWithComments(),b}}},{}],23:[function(a,b,c){b.exports={read_switch:function(){this.expect(this.tok.T_SWITCH).next();var a=this.node("switch");this.expect("(").next();var b=this.read_expr();this.expect(")").next();var c=this.read_switch_case_list();return a(b,c)},read_switch_case_list:function(){var a=null,b=[];for("{"===this.token?a="}":":"===this.token?a=this.tok.T_ENDSWITCH:this.expect(["{",":"]),this.next(),";"===this.token&&this.next(),this.token===this.tok.T_CLOSE_TAG&&this.next();this.token!==this.EOF&&this.token!==a;)b.push(this.read_case_list(a)); -return this.expect(a).next(),a===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),b},read_case_list:function(a){var b={condition:!1,body:[]};for(this.token===this.tok.T_CASE?b.condition=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]),this.expect([":",";"]).next();this.token!=this.EOF&&this.token!==a&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)b.body.push(this.read_inner_statement());return b}}},{}],24:[function(a,b,c){b.exports={read_try:function(){this.expect(this.tok.T_TRY);var a=this.node("try"),b=this.nextWithComments().read_statement(),c=!1,d=[];for(this.ignoreComments();this.token===this.tok.T_CATCH;){this.next().expect("(").next();var e=this.read_namespace_name(),f=this.read_variable(!0);this.expect(")").nextWithComments(),d.push({exception:e,as:f,body:this.read_statement()}),this.ignoreComments()}return this.token===this.tok.T_FINALLY&&(c=this.nextWithComments().read_statement()),a(b,d,c)}}},{}],25:[function(a,b,c){ -b.exports={read_variable:function(a,b){var c;return this.is([this.tok.T_VARIABLE,"$"])?c=this.read_reference_variable(b):this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING])?(c=this.read_namespace_name(),c=this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token?["constant",1==c.length?c[0]:c]:["ns",c]):this.token===this.tok.T_STATIC?(this.next(),c=["ns",["static"]]):this.expect("VARIABLE"),this.token===this.tok.T_DOUBLE_COLON&&(c=this.read_static_getter(c,b)),this.recursive_variable_chain_scan(c,a,b)},read_static_getter:function(a,b){var c=null;return this.next().is([this.tok.T_VARIABLE,"$"])?c=this.read_reference_variable(b):this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS?(c=this.text(),this.next()):(c=this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),this.next()),"ns"!=a[0]&&(a=["lookup","class",a]),["static","get",a,c]},recursive_variable_chain_scan:function(a,b,c){a:for(;this.token!=this.EOF;)switch(this.token){case"(":if(b)return a;a=["call",a,this.read_function_argument_list()];break;case"[": -this.next();var d=!1;c?(d=this.read_encaps_var_offset(),this.expect("]").next()):"]"!==this.token?(d=this.read_expr(),this.expect("]").next()):this.next(),a=["offset",a,d];break;case this.tok.T_OBJECT_OPERATOR:var e;switch(this.next().token){case this.tok.T_STRING:e=["string",this.text()];var f=this.next().token;f===this.tok.T_VARIABLE?e=["bin",".",e,["var",this.text()]]:"{"===f&&(e=["bin",".",e,this.next().read_expr()],this.expect("}").next());break;case this.tok.T_VARIABLE:e=["var",this.text()],this.next();break;case"$":this.next().expect(["{",this.tok.T_VARIABLE]),"{"===this.token?(e=this.next().read_expr(),this.expect("}").next()):e=this.read_expr();break;case"{":e=this.next().read_expr(),this.expect("}").next();break;default:e=this.error([this.tok.T_STRING,this.tok.T_VARIABLE]),this.next()}a=["prop",a,e];break;default:break a}return a},read_encaps_var_offset:function(){var a=!1;return this.token===this.tok.T_STRING?a=["string",this.text()]:this.token===this.tok.T_NUM_STRING?a=["number",this.text()]:this.token===this.tok.T_VARIABLE?a=["var",this.text()]:this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,this.tok.T_VARIABLE]), -this.next(),a},read_reference_variable:function(a){for(var b=this.read_simple_variable();this.token!=this.EOF;)if("["==this.token){if(a)b=this.next().read_encaps_var_offset();else{var c="]"===this.next().token?null:this.read_dim_offset();b=["offset",b,c]}this.expect("]").next()}else{if("{"!=this.token||a)break;b=["offset",b,this.next().read_expr()],this.expect("}").next()}return b},read_simple_variable:function(){var a;if(this.expect([this.tok.T_VARIABLE,"$"]).token===this.tok.T_VARIABLE)a=["var",this.text()],this.next();else{switch(this.next().token){case"{":a=this.next().read_expr(),this.expect("}").next();break;case"$":a=["lookup","var",this.read_simple_variable()];break;case this.tok.T_VARIABLE:a=["var",this.text()],this.next();break;default:a=this.error(["{","$",this.tok.T_VARIABLE]),this.next()}a=["lookup","var",a]}return a}}},{}],26:[function(a,b,c){b.exports={values:{101:"T_HALT_COMPILER",102:"T_USE",103:"T_ENCAPSED_AND_WHITESPACE",104:"T_OBJECT_OPERATOR",105:"T_STRING",106:"T_DOLLAR_OPEN_CURLY_BRACES", -107:"T_STRING_VARNAME",108:"T_CURLY_OPEN",109:"T_NUM_STRING",110:"T_ISSET",111:"T_EMPTY",112:"T_INCLUDE",113:"T_INCLUDE_ONCE",114:"T_EVAL",115:"T_REQUIRE",116:"T_REQUIRE_ONCE",117:"T_NAMESPACE",118:"T_NS_SEPARATOR",119:"T_AS",120:"T_IF",121:"T_ENDIF",122:"T_WHILE",123:"T_DO",124:"T_FOR",125:"T_SWITCH",126:"T_BREAK",127:"T_CONTINUE",128:"T_RETURN",129:"T_GLOBAL",130:"T_STATIC",131:"T_ECHO",132:"T_INLINE_HTML",133:"T_UNSET",134:"T_FOREACH",135:"T_DECLARE",136:"T_TRY",137:"T_THROW",138:"T_GOTO",139:"T_FINALLY",140:"T_CATCH",141:"T_ENDDECLARE",142:"T_LIST",143:"T_CLONE",144:"T_PLUS_EQUAL",145:"T_MINUS_EQUAL",146:"T_MUL_EQUAL",147:"T_DIV_EQUAL",148:"T_CONCAT_EQUAL",149:"T_MOD_EQUAL",150:"T_AND_EQUAL",151:"T_OR_EQUAL",152:"T_XOR_EQUAL",153:"T_SL_EQUAL",154:"T_SR_EQUAL",155:"T_INC",156:"T_DEC",157:"T_BOOLEAN_OR",158:"T_BOOLEAN_AND",159:"T_LOGICAL_OR",160:"T_LOGICAL_AND",161:"T_LOGICAL_XOR",162:"T_SL",163:"T_SR",164:"T_IS_IDENTICAL",165:"T_IS_NOT_IDENTICAL",166:"T_IS_EQUAL",167:"T_IS_NOT_EQUAL",168:"T_IS_SMALLER_OR_EQUAL", -169:"T_IS_GREATER_OR_EQUAL",170:"T_INSTANCEOF",171:"T_INT_CAST",172:"T_DOUBLE_CAST",173:"T_STRING_CAST",174:"T_ARRAY_CAST",175:"T_OBJECT_CAST",176:"T_BOOL_CAST",177:"T_UNSET_CAST",178:"T_EXIT",179:"T_PRINT",180:"T_YIELD",181:"T_YIELD_FROM",182:"T_FUNCTION",183:"T_DOUBLE_ARROW",184:"T_DOUBLE_COLON",185:"T_ARRAY",186:"T_CALLABLE",187:"T_CLASS",188:"T_ABSTRACT",189:"T_TRAIT",190:"T_FINAL",191:"T_EXTENDS",192:"T_INTERFACE",193:"T_IMPLEMENTS",194:"T_VAR",195:"T_PUBLIC",196:"T_PROTECTED",197:"T_PRIVATE",198:"T_CONST",199:"T_NEW",200:"T_INSTEADOF",201:"T_ELSEIF",202:"T_ELSE",203:"T_ENDSWITCH",204:"T_CASE",205:"T_DEFAULT",206:"T_ENDFOR",207:"T_ENDFOREACH",208:"T_ENDWHILE",209:"T_CONSTANT_ENCAPSED_STRING",210:"T_LNUMBER",211:"T_DNUMBER",212:"T_LINE",213:"T_FILE",214:"T_DIR",215:"T_TRAIT_C",216:"T_METHOD_C",217:"T_FUNC_C",218:"T_NS_C",219:"T_START_HEREDOC",220:"T_END_HEREDOC",221:"T_CLASS_C",222:"T_VARIABLE",223:"T_OPEN_TAG",224:"T_OPEN_TAG_WITH_ECHO",225:"T_CLOSE_TAG",226:"T_WHITESPACE",227:"T_COMMENT",228:"T_DOC_COMMENT", -229:"T_ELLIPSIS",230:"T_COALESCE",231:"T_POW",232:"T_POW_EQUAL",233:"T_SPACESHIP"},names:{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}}},{}],"php-parser":[function(a,b,c){function d(a,b){for(var c=Object.keys(a),e=c.length;e--;){var f=c[e],g=a[f];null===g?delete b[f]:"function"==typeof g?b[f]=g.bind(b):Array.isArray(g)?b[f]=Array.isArray(b[f])?b[f].concat(g):g:"object"==typeof g?b[f]="object"==typeof b[f]?d(g,b[f]):g:b[f]=g}return b}var e=a("./src/lexer"),f=a("./src/parser"),g=a("./src/tokens"),h=function(a){return"function"==typeof this?new this(a):(this.tokens=g,this.lexer=new e(this),this.parser=new f(this.lexer),void(a&&"object"==typeof a&&d(a,this)))};h.create=function(a){return new h(a)},h.parseEval=function(a,b){var c=new h(b);return c.parseEval(a)},h.prototype.parseEval=function(a){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,this.parser.parse(a)},h.parseCode=function(a,b){var c=new h(b);return c.parseCode(a)},h.prototype.parseCode=function(a){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,this.parser.parse(a)},h.tokenGetAll=function(a,b){var c=new h(b);return c.tokenGetAll(a)},h.prototype.tokenGetAll=function(a){ -this.lexer.mode_eval=!1,this.lexer.all_tokens=!0;var b=this.lexer.EOF,c=this.tokens.values;this.lexer.setInput(a);for(var d=this.lexer.lex()||b,e=[];d!=b;){var f=this.lexer.yytext;c.hasOwnProperty(d)&&(f=[c[d],f,this.lexer.yylloc.first_line]),e.push(f),d=this.lexer.lex()||b}return e},b.exports=h},{"./src/lexer":2,"./src/parser":11,"./src/tokens":26}]},{},["php-parser"]); +}:{key:!1,value:a}},read_dim_offset:function(){return"]"!=this.token&&this.read_expr()}}},{}],13:[function(a,b,c){b.exports={read_class:function(a){var b=this.node("class");this.expect(this.tok.T_CLASS).next().expect(this.tok.T_STRING);var c=this.text(),d=!1,e=!1;return this.next().token==this.tok.T_EXTENDS&&(d=this.next().read_namespace_name()),this.token==this.tok.T_IMPLEMENTS&&(e=this.next().read_list(this.read_namespace_name,",")),b(c,a,d,e,this.expect("{").nextWithComments().read_class_body())},read_class_scope:function(){var a=this.token;return a==this.tok.T_FINAL?(this.next(),-1):a==this.tok.T_ABSTRACT?(this.next(),1):0},read_class_body:function(){for(var a=[];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){var b=this.read_member_flags(!1);if(this.token!==this.tok.T_CONST)if(this.token===this.tok.T_VAR&&(this.next().expect(this.tok.T_VARIABLE),b[0]=b[1]=0),this.token===this.tok.T_VARIABLE){var c=this.read_variable_list(b); +this.expect(";").nextWithComments();for(var d=0;d>",a,this.next().read_expr()]; +case this.tok.T_BOOLEAN_OR:case this.tok.T_LOGICAL_OR:return["bool","|",a,this.next().read_expr()];case this.tok.T_BOOLEAN_AND:case this.tok.T_LOGICAL_AND:return["bool","&",a,this.next().read_expr()];case this.tok.T_LOGICAL_XOR:return["bool","^",a,this.next().read_expr()];case this.tok.T_IS_IDENTICAL:return["bool","=",a,this.next().read_expr()];case this.tok.T_IS_NOT_IDENTICAL:return["bool","!=",a,this.next().read_expr()];case this.tok.T_IS_EQUAL:return["bool","~",a,this.next().read_expr()];case this.tok.T_IS_NOT_EQUAL:return["bool","!~",a,this.next().read_expr()];case"<":return["bool","<",a,this.next().read_expr()];case">":return["bool",">",a,this.next().read_expr()];case this.tok.T_IS_SMALLER_OR_EQUAL:return["bool","<=",a,this.next().read_expr()];case this.tok.T_IS_GREATER_OR_EQUAL:return["bool",">=",a,this.next().read_expr()];case this.tok.T_SPACESHIP:return["bool","<=>",a,this.next().read_expr()];case this.tok.T_INSTANCEOF:return["bool","?",a,this.next().read_expr()];case this.tok.T_COALESCE:return["retif",["sys","isset",a],a,this.next().read_expr()]; +case"?":var b=null;return":"!==this.next().token&&(b=this.read_expr()),this.expect(":").next(),["retif",a,b,this.read_expr()]}return a},read_expr_item:function(){switch(this.token){case"@":return["silent",this.next().read_expr()];case"-":case"+":case"!":case"~":return this.node("unary")(this.token,this.next().read_expr());case"(":var a=this.next().read_expr();return this.expect(")").next(),this.token===this.tok.T_OBJECT_OPERATOR?this.recursive_variable_chain_scan(a,!1):this.token===this.tok.T_CURLY_OPEN||"["===this.token?this.read_dereferencable(a):"("===this.token?this.node("call")(a,this.read_function_argument_list()):a;case"`":var b=this.node("sys"),a=this.next().read_encapsed_string("`");return b("shell",a);case this.tok.T_LIST:var b=this.node("list");this.next().expect("(").next();var c=this.innerList;this.innerList||(this.innerList=!0);for(var d=this.read_assignment_list(),e=!1,f=0;f>",a,this.next().read_expr()]];case this.tok.T_INC:return this.next(),["post","+",a];case this.tok.T_DEC:return this.next(),["post","-",a]}else if(this.is("SCALAR"))for(a=this.read_scalar();this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR)a=this.recursive_variable_chain_scan(a,!1);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)a=this.read_dereferencable(a);else{if("("!==this.token)return a;a=this.node("call")(a,this.read_function_argument_list())}else a=this.error("EXPR"),this.next();return a},read_new_expr:function(){var a=this.node("new");if(this.token===this.tok.T_CLASS){var b=!1,c=!1;return this.next().token==this.tok.T_EXTENDS&&(b=this.next().read_namespace_name()), +this.token==this.tok.T_IMPLEMENTS&&(c=this.next().read_list(this.read_namespace_name,",")),a(!1,b,c,this.expect("{").next().read_class_body())}var d=this.read_class_name_reference(),e=[];return"("===this.token&&(e=this.read_function_argument_list()),a(d,e)},read_class_name_reference:function(){if("\\"===this.token||this.token===this.tok.T_STRING){var a=this.read_namespace_name();return a=this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(a):["ns",a]}return this.is("VARIABLE")?this.read_variable(!0):void this.expect([this.tok.T_STRING,"VARIABLE"])},read_assignment_list:function(){return this.read_list(this.read_assignment_list_element,",")},read_assignment_list_element:function(){if(","===this.token||")"===this.token)return null;var a=this.read_expr_item();return this.token===this.tok.T_DOUBLE_ARROW&&(a=["key",a,this.next().read_expr_item()]),a}}},{}],16:[function(a,b,c){b.exports={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(a,b){var c=this.node(this.read_function_declaration(a?1:b?2:0));if(b&&1==b[2])c=c(b),this.expect(";").nextWithComments();else{var d=this.expect("{").read_code_block(!1);c=b?c(d,b):c(d)}return c},read_function_declaration:function(a){var b="function";1===a?b="closure":2===a&&(b="method");var c=this.node(b);this.expect(this.tok.T_FUNCTION);var d=this.next().is_reference(),e=!1,f=[],g=!1;1!==a&&(e=this.expect(this.tok.T_STRING).text(),this.next()),this.expect("(").next();var h=this.read_parameter_list();return this.expect(")").next(),1===a&&this.token===this.tok.T_USE&&(f=this.next().expect("(").next().read_list(this.read_lexical_var,","),this.expect(")").next()),":"===this.token&&(g=this.next().read_type()),1===a?c(h,d,f,g):c(e,h,d,g)},read_lexical_var:function(){var a=[!1,null];return"&"===this.token&&(a[0]=!0,this.next()),this.token===this.tok.T_VARIABLE?(a[1]=this.text(),this.next()):this.expect(["&",this.tok.T_VARIABLE]),a},read_parameter_list:function(){var a=[];if(")"!=this.token)for(;this.token!=this.EOF;){ +if(a.push(this.read_parameter()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}this.next()}return a},read_parameter:function(){var a=this.node("param"),b=this.read_type(),c=this.is_reference(),d=this.is_variadic(),e=this.expect(this.tok.T_VARIABLE).text(),f=null;return"="==this.next().token&&(f=this.next().read_expr()),a(e,b,f,c,d)},read_function_argument_list:function(){var a=[];if(this.expect("(").next(),")"!==this.token)for(;this.token!=this.EOF&&(a.push(this.read_argument_list()),","===this.token);)this.next();return this.expect(")").next(),a},read_argument_list:function(){return this.token===this.tok.T_ELLIPSIS?this.node("variadic")(this.next().read_expr()):this.read_expr()},read_type:function(){switch(this.token){case this.tok.T_ARRAY:return this.next(),["array"];case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:return this.read_namespace_name();case this.tok.T_CALLABLE:return this.next(),["callable"];default:return null}}}},{}],17:[function(a,b,c){b.exports={read_if:function(){ +var a=this.node("if"),b=this.read_if_expr(),c=null,d=!1;if(":"===this.token){for(this.next(),c=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.ignoreComments(),this.token===this.tok.T_ELSEIF){d=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){d=this.next().read_else_short();break}c.push(this.read_inner_statement())}this.ignoreComments().expect(this.tok.T_ENDIF).next().expectEndOfStatement()}else c=this.read_statement(),this.ignoreComments(),this.token===this.tok.T_ELSEIF?d=this.next().read_if():this.token===this.tok.T_ELSE&&(d=this.next().read_statement());return a(b,c,d)},read_if_expr:function(){this.expect("(").next();var a=this.read_expr();return this.expect(")").next(),a},read_elseif_short:function(){var a=this.node("if"),b=this.read_if_expr();this.expect(":").next();for(var c=[],d=!1;this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){d=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){d=this.next().read_else_short(); +break}c.push(this.read_inner_statement())}return a(b,c,d)},read_else_short:function(){this.expect(":").next();for(var a=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)a.push(this.read_inner_statement());return a}}},{}],18:[function(a,b,c){b.exports={read_short_form:function(a){var b=[];for(this.expect(":").next();this.token!=this.EOF&&this.token!==a;)b.push(this.read_inner_statement());return this.expect(a).next().expectEndOfStatement(),b},read_while:function(){var a=this.node("while");this.expect("(").next();var b=this.read_expr();this.expect(")").next();var c=[];return c=":"===this.token?this.read_short_form(this.tok.T_ENDWHILE):this.read_statement(),a(b,c)},read_do:function(){var a=this.node("do"),b=this.read_statement();this.expect(this.tok.T_WHILE).next().expect("(").next();var c=this.read_expr();return this.expect(")").next().expect(";").next(),a(c,b)},read_for:function(){var a=this.node("for");this.expect("(").next();var b=null,c=null,d=null;";"!==this.token?(b=this.read_list(this.read_expr,","), +this.expect(";").next()):this.next(),";"!==this.token?(c=this.read_list(this.read_expr,","),this.expect(";").next()):this.next(),")"!==this.token?(d=this.read_list(this.read_expr,","),this.expect(")").next()):this.next();var e=null;return e=":"===this.token?this.read_short_form(this.tok.T_ENDFOR):this.read_statement(),a(b,c,d,e)},read_foreach:function(){var a=this.node("foreach");this.expect("(").next();var b=this.read_expr();this.expect(this.tok.T_AS).next();var c=this.read_foreach_variable(),d=!1;this.token===this.tok.T_DOUBLE_ARROW&&(d=c,c=this.next().read_foreach_variable()),this.expect(")").next();var e=[];return e=":"===this.token?this.read_short_form(this.tok.T_ENDFOREACH):this.read_statement(),a(b,d,c,e)},read_foreach_variable:function(){if("&"===this.token)return["byref",this.next().read_variable()];if(this.token===this.tok.T_LIST){var a=this.node("list");this.next().expect("(").next();var b=this.read_assignment_list();return this.expect(")").next(),a(b,!1)}return this.read_variable()}}},{}],19:[function(a,b,c){ +b.exports={read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}}},{}],20:[function(a,b,c){b.exports={read_namespace:function(){this.expect(this.tok.T_NAMESPACE).next();var a=this.node("namespace");if("{"==this.token)return this.currentNamespace=[""],a([""],this.read_code_block(!0));this.token===this.tok.T_NAMESPACE&&(this.error(["{",this.tok.T_STRING]),this.next());var b=this.read_namespace_name();if(";"==this.token){this.currentNamespace=b;var c=this.nextWithComments().read_top_statements();return this.expect(this.EOF),a(b,c)}if("{"==this.token)return this.currentNamespace=b,a(b,this.read_code_block(!0));if("("===this.token)return this.node("call")(["ns",b.slice(1)],this.read_function_argument_list());this.error(["{",";"]),this.currentNamespace=b;var c=this.read_top_statements();return this.expect(this.EOF),a(b,c)},read_namespace_name:function(){return this.token===this.tok.T_NAMESPACE&&this.next().expect(this.tok.T_NS_SEPARATOR).next(),this.read_list(this.tok.T_STRING,this.tok.T_NS_SEPARATOR,!0); +},read_use_statements:function(){for(var a=[];this.token!==this.EOF&&(this.expect(this.tok.T_USE).next(),this.read_list(this.read_use_statement_mixed,",").forEach(function(b){"string"==typeof b[0]?a.push(b):b.forEach(function(b){a.push(b)})}),this.token===this.tok.T_USE););return a},read_inline_use_declaration:function(a){for(var b=[];this.token!==this.EOF;){var c=this.node("use"),d=this.read_use_statement(a[3]!==!1);if(this.token===this.tok.T_AS&&(this.next().expect(this.tok.T_STRING),d[1]=this.text(),this.next()),d[0]=a[0].concat(d[0]),a[2]!==!1&&(d[2]=a[2]),b.push(c.apply(this,d)),","!==this.token)break;this.next()}return b},read_use_statement_mixed:function(){var a=this.node("use"),b=this.read_use_statement();if(this.token===this.tok.T_AS)this.next().expect(this.tok.T_STRING),b[1]=this.text(),this.next();else if("{"===this.token)return b=this.next().read_inline_use_declaration(b),this.expect("}").next(),b;return a.apply(this,b)},read_use_statement:function(a){var b=!1;a||this.token!==this.tok.T_FUNCTION&&this.token!==this.tok.T_CONST||(b=this.token===this.tok.T_FUNCTION?"function":"constant", +this.next());var c=this.read_namespace_name();return[c,c[c.length-1],b]}}},{}],21:[function(a,b,c){var d={"\\r":"\r","\\n":"\n","\\t":"\t","\\v":String.fromCharCode(11),"\\e":String.fromCharCode(27),"\\f":String.fromCharCode(12),"\\\\":"\\","\\$":"$",'\\"':'"',"\\'":"'"};b.exports={read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:var a=this.text(),b="b"===a[0]||"B"===a[0];return a=b?a.substring(2,a.length-1):a.substring(1,a.length-1),a=["string",a.replace(/\\[rntvef"'\\\$]/g,function(a){return d[a]})],b&&(a=["cast","binary",a]),this.next(),this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(a):a;case this.tok.T_START_HEREDOC:return this.next().read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.next().read_encapsed_string('"');case'b"':case'B"':return["cast","binary",this.next().read_encapsed_string('"')];case"-":case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:var c=this.node("number"),a=this.text(); +return"-"===this.token&&(this.next().expect([this.tok.T_LNUMBER,this.tok.T_DNUMBER]),a+=this.text()),this.next(),c(a);case this.tok.T_NAMESPACE:case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:var a=this.read_namespace_name(),c=["constant",a];for(this.token==this.tok.T_DOUBLE_COLON&&(this.next().expect([this.tok.T_STRING,this.tok.T_CLASS]),c[1]=[a,this.text()],this.next());"["===this.token;)c=["offset",c,this.next().read_expr()],this.expect("]").next();return c;case this.tok.T_ARRAY:case"[":return this.read_array();default:var e=this.error("SCALAR");return this.next(),e}},read_dereferencable:function(a){var b;return"["===this.token?(b=["offset",a,this.next().read_expr()],this.expect("]").next()):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES&&(b=["offset",a,this.read_encapsed_string_item()]),b},read_encapsed_string_item:function(){var a=null;return this.token===this.tok.T_ENCAPSED_AND_WHITESPACE?(a=["string",this.text()],this.next()):this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES?(this.next().token===this.tok.T_STRING_VARNAME?(a=["var",this.text()], +"["===this.next().token&&(a=["offset",a,this.next().read_expr()],this.expect("]").next())):a=this.read_expr(),this.expect("}").next()):this.token===this.tok.T_CURLY_OPEN?(a=this.next().read_variable(!1,!1),this.expect("}").next()):"["===this.token?(a=["offset",a,this.next().read_expr()],this.expect("]").next()):this.token===this.tok.T_VARIABLE?a=this.read_variable(!1,!0):this.expect([this.tok.T_VARIABLE,this.tok.T_CURLY_OPEN,this.tok.T_DOLLAR_OPEN_CURLY_BRACES,this.tok.T_ENCAPSED_AND_WHITESPACE]),a},read_encapsed_string:function(a){if(this.token===a)return this.next(),null;var b=this.read_encapsed_string_item();if(this.token===a)return this.next(),b;for(var c=["bin",".",b,this.read_encapsed_string_item()];this.token!==a;)c[3]=["bin",".",c[3],this.read_encapsed_string_item()];return this.expect(a).next(),c},get_magic_constant:function(){var a=this.node("magic"),b=this.text();return this.next(),a(b)}}},{}],22:[function(a,b,c){b.exports={read_top_statements:function(){for(var a=[];this.token!==this.EOF&&"}"!==this.token;){ +var b=this.read_top_statement();b&&("string"==typeof b[0]?a.push(b):a=a.concat(b))}return a},read_top_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function();case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var a=this.read_class_scope();switch(this.token){case this.tok.T_CLASS:return this.read_class(a);case this.tok.T_INTERFACE:return this.read_interface(a);default:var b=this.error([this.tok.T_CLASS,this.tok.T_INTERFACE]);return this.next(),b}case this.tok.T_CLASS:return this.read_class(0);case this.tok.T_INTERFACE:return this.read_interface(0);case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_USE:var c=this.read_use_statements();return this.expect(";").nextWithComments(),c;case this.tok.T_CONST:return this.next().read_const_list();case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:var d=this.node("halt");return this.next().expect("(").next().expect(")").next().expect(";"),this.lexer.done=!0,d(this.lexer._input.substring(this.lexer.offset)); +default:return this.read_statement()}},read_inner_statements:function(){for(var a=[];this.token!=this.EOF&&"}"!==this.token;){var b=this.read_inner_statement();b&&("string"==typeof b[0]?a.push(b):a=a.concat(b))}return a},read_const_list:function(){var a=this.read_list(function(){this.expect(this.tok.T_STRING);var a=this.node(this.text());return this.next().expect("=").next(),a(this.read_expr())},",",!1,!0);return this.expectEndOfStatement(),["const",a]},read_declare_list:function(){return this.read_list(function(){this.expect(this.tok.T_STRING);var a=this.text();return this.next().expect("=").next(),[a,this.read_expr()]},",")},read_inner_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function();case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var a=this.read_class_scope();switch(this.token){case this.tok.T_CLASS:return this.read_class(a);case this.tok.T_INTERFACE:return this.read_interface(a);default:var b=this.error([this.tok.T_CLASS,this.tok.T_INTERFACE]);return this.next(),b; +}case this.tok.T_CLASS:return this.read_class(0);case this.tok.T_INTERFACE:return this.read_interface(0);case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_HALT_COMPILER:this.next().expect("(").next().expect(")").next().expect(";").next(),this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");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.next().read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.next().read_for();case this.tok.T_FOREACH:return this.next().read_foreach();case this.tok.T_WHILE:return this.next().read_while();case this.tok.T_DO:return this.next().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:case this.tok.T_BREAK:case this.tok.T_CONTINUE:var a;switch(this.token){case this.tok.T_RETURN:a="return";break;case this.tok.T_BREAK: +a="break";break;case this.tok.T_CONTINUE:a="continue"}var b=null;return this.next().is("EOS")||(b=this.read_expr()),this.expectEndOfStatement(),[a,b];case this.tok.T_GLOBAL:var c=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),["global",c];case this.tok.T_STATIC:var d=[this.token,this.lexer.getState()],e=this.node("static");if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(d);var b=this.next().read_expr();return this.expect(";").nextWithComments(),b}var c=this.read_list(function(){var a=this.expect(this.tok.T_VARIABLE).text(),b=null;return"="===this.next().token&&(b=this.next().read_expr()),[a,b]},",");return this.expectEndOfStatement(),e("declare",c);case this.tok.T_ECHO:var c=this.next().read_list(this.read_expr,",");return this.expectEndOfStatement(),["sys","echo",c];case this.tok.T_INLINE_HTML:var f=["string",this.text()];return this.next(),["sys","echo",f];case this.tok.T_UNSET:this.next().expect("(").next();var c=this.read_list(this.read_variable,","); +return this.expect(")").next().expect(";").nextWithComments(),["sys","unset",c];case this.tok.T_DECLARE:var g,h,e=this.node("declare");if(this.next().expect("(").next(),g=this.read_declare_list(),this.expect(")").nextWithComments(),":"===this.token){for(h=[],this.next();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)h.push(this.read_statement());this.ignoreComments().expect(this.tok.T_ENDDECLARE).next().expectEndOfStatement()}else h=this.read_statement();return e(g,h);case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:var e=this.node("throw"),b=this.next().read_expr();return this.expectEndOfStatement(),e(b);case";":case this.tok.T_CLOSE_TAG:return this.next(),null;case this.tok.T_STRING:var d=[this.token,this.lexer.getState()],i=this.text();if(":"===this.next().token){var e=this.node("label");return this.next(),e(i)}this.lexer.tokens.push(d);var b=this.next().read_expr();return this.expect([";",this.tok.T_CLOSE_TAG]).nextWithComments(),b;case this.tok.T_GOTO:var e=this.node("goto"),i=this.next().expect(this.tok.T_STRING).text(); +return this.next().expectEndOfStatement(),e(i);default:var b=this.read_expr();return this.expectEndOfStatement(),b}},read_code_block:function(a){this.expect("{").nextWithComments();var b=a?this.read_top_statements():this.read_inner_statements();return this.expect("}").nextWithComments(),b}}},{}],23:[function(a,b,c){b.exports={read_switch:function(){this.expect(this.tok.T_SWITCH).next();var a=this.node("switch");this.expect("(").next();var b=this.read_expr();this.expect(")").next();var c=this.read_switch_case_list();return a(b,c)},read_switch_case_list:function(){var a=null,b=[];for("{"===this.token?a="}":":"===this.token?a=this.tok.T_ENDSWITCH:this.expect(["{",":"]),this.next(),";"===this.token&&this.next(),this.token===this.tok.T_CLOSE_TAG&&this.next();this.token!==this.EOF&&this.token!==a;)b.push(this.read_case_list(a));return this.expect(a).next(),a===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),b},read_case_list:function(a){var b={condition:!1,body:[]};for(this.token===this.tok.T_CASE?b.condition=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]), +this.expect([":",";"]).next();this.token!=this.EOF&&this.token!==a&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)b.body.push(this.read_inner_statement());return b}}},{}],24:[function(a,b,c){b.exports={read_try:function(){this.expect(this.tok.T_TRY);var a=this.node("try"),b=this.nextWithComments().read_statement(),c=!1,d=[];for(this.ignoreComments();this.token===this.tok.T_CATCH;){this.next().expect("(").next();var e=this.read_namespace_name(),f=this.read_variable(!0);this.expect(")").nextWithComments(),d.push({exception:e,as:f,body:this.read_statement()}),this.ignoreComments()}return this.token===this.tok.T_FINALLY&&(c=this.nextWithComments().read_statement()),a(b,d,c)}}},{}],25:[function(a,b,c){b.exports={read_variable:function(a,b){var c;return this.is([this.tok.T_VARIABLE,"$"])?c=this.read_reference_variable(b):this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING])?(c=this.read_namespace_name(),c=this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token?["constant",1==c.length?c[0]:c]:["ns",c]):this.token===this.tok.T_STATIC?(this.next(), +c=["ns",["static"]]):this.expect("VARIABLE"),this.token===this.tok.T_DOUBLE_COLON&&(c=this.read_static_getter(c,b)),this.recursive_variable_chain_scan(c,a,b)},read_static_getter:function(a,b){var c=null;return this.next().is([this.tok.T_VARIABLE,"$"])?c=this.read_reference_variable(b):this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS?(c=this.text(),this.next()):(c=this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),this.next()),"ns"!=a[0]&&(a=["lookup","class",a]),["static","get",a,c]},recursive_variable_chain_scan:function(a,b,c){a:for(;this.token!=this.EOF;)switch(this.token){case"(":if(b)return a;a=["call",a,this.read_function_argument_list()];break;case"[":this.next();var d=!1;c?(d=this.read_encaps_var_offset(),this.expect("]").next()):"]"!==this.token?(d=this.read_expr(),this.expect("]").next()):this.next(),a=["offset",a,d];break;case this.tok.T_OBJECT_OPERATOR:var e;switch(this.next().token){case this.tok.T_STRING:e=["string",this.text()];var f=this.next().token;f===this.tok.T_VARIABLE?e=["bin",".",e,["var",this.text()]]:"{"===f&&(e=["bin",".",e,this.next().read_expr()], +this.expect("}").next());break;case this.tok.T_VARIABLE:e=["var",this.text()],this.next();break;case"$":this.next().expect(["{",this.tok.T_VARIABLE]),"{"===this.token?(e=this.next().read_expr(),this.expect("}").next()):e=this.read_expr();break;case"{":e=this.next().read_expr(),this.expect("}").next();break;default:e=this.error([this.tok.T_STRING,this.tok.T_VARIABLE]),this.next()}a=["prop",a,e];break;default:break a}return a},read_encaps_var_offset:function(){var a=!1;return this.token===this.tok.T_STRING?a=["string",this.text()]:this.token===this.tok.T_NUM_STRING?a=["number",this.text()]:this.token===this.tok.T_VARIABLE?a=["var",this.text()]:this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,this.tok.T_VARIABLE]),this.next(),a},read_reference_variable:function(a){for(var b=this.read_simple_variable();this.token!=this.EOF;)if("["==this.token){if(a)b=this.next().read_encaps_var_offset();else{var c="]"===this.next().token?null:this.read_dim_offset();b=["offset",b,c]}this.expect("]").next()}else{if("{"!=this.token||a)break; +b=["offset",b,this.next().read_expr()],this.expect("}").next()}return b},read_simple_variable:function(){var a;if(this.expect([this.tok.T_VARIABLE,"$"]).token===this.tok.T_VARIABLE)a=["var",this.text()],this.next();else{switch(this.next().token){case"{":a=this.next().read_expr(),this.expect("}").next();break;case"$":a=["lookup","var",this.read_simple_variable()];break;case this.tok.T_VARIABLE:a=["var",this.text()],this.next();break;default:a=this.error(["{","$",this.tok.T_VARIABLE]),this.next()}a=["lookup","var",a]}return a}}},{}],26:[function(a,b,c){b.exports={values:{101:"T_HALT_COMPILER",102:"T_USE",103:"T_ENCAPSED_AND_WHITESPACE",104:"T_OBJECT_OPERATOR",105:"T_STRING",106:"T_DOLLAR_OPEN_CURLY_BRACES",107:"T_STRING_VARNAME",108:"T_CURLY_OPEN",109:"T_NUM_STRING",110:"T_ISSET",111:"T_EMPTY",112:"T_INCLUDE",113:"T_INCLUDE_ONCE",114:"T_EVAL",115:"T_REQUIRE",116:"T_REQUIRE_ONCE",117:"T_NAMESPACE",118:"T_NS_SEPARATOR",119:"T_AS",120:"T_IF",121:"T_ENDIF",122:"T_WHILE",123:"T_DO",124:"T_FOR",125:"T_SWITCH",126:"T_BREAK", +127:"T_CONTINUE",128:"T_RETURN",129:"T_GLOBAL",130:"T_STATIC",131:"T_ECHO",132:"T_INLINE_HTML",133:"T_UNSET",134:"T_FOREACH",135:"T_DECLARE",136:"T_TRY",137:"T_THROW",138:"T_GOTO",139:"T_FINALLY",140:"T_CATCH",141:"T_ENDDECLARE",142:"T_LIST",143:"T_CLONE",144:"T_PLUS_EQUAL",145:"T_MINUS_EQUAL",146:"T_MUL_EQUAL",147:"T_DIV_EQUAL",148:"T_CONCAT_EQUAL",149:"T_MOD_EQUAL",150:"T_AND_EQUAL",151:"T_OR_EQUAL",152:"T_XOR_EQUAL",153:"T_SL_EQUAL",154:"T_SR_EQUAL",155:"T_INC",156:"T_DEC",157:"T_BOOLEAN_OR",158:"T_BOOLEAN_AND",159:"T_LOGICAL_OR",160:"T_LOGICAL_AND",161:"T_LOGICAL_XOR",162:"T_SL",163:"T_SR",164:"T_IS_IDENTICAL",165:"T_IS_NOT_IDENTICAL",166:"T_IS_EQUAL",167:"T_IS_NOT_EQUAL",168:"T_IS_SMALLER_OR_EQUAL",169:"T_IS_GREATER_OR_EQUAL",170:"T_INSTANCEOF",171:"T_INT_CAST",172:"T_DOUBLE_CAST",173:"T_STRING_CAST",174:"T_ARRAY_CAST",175:"T_OBJECT_CAST",176:"T_BOOL_CAST",177:"T_UNSET_CAST",178:"T_EXIT",179:"T_PRINT",180:"T_YIELD",181:"T_YIELD_FROM",182:"T_FUNCTION",183:"T_DOUBLE_ARROW",184:"T_DOUBLE_COLON",185:"T_ARRAY", +186:"T_CALLABLE",187:"T_CLASS",188:"T_ABSTRACT",189:"T_TRAIT",190:"T_FINAL",191:"T_EXTENDS",192:"T_INTERFACE",193:"T_IMPLEMENTS",194:"T_VAR",195:"T_PUBLIC",196:"T_PROTECTED",197:"T_PRIVATE",198:"T_CONST",199:"T_NEW",200:"T_INSTEADOF",201:"T_ELSEIF",202:"T_ELSE",203:"T_ENDSWITCH",204:"T_CASE",205:"T_DEFAULT",206:"T_ENDFOR",207:"T_ENDFOREACH",208:"T_ENDWHILE",209:"T_CONSTANT_ENCAPSED_STRING",210:"T_LNUMBER",211:"T_DNUMBER",212:"T_LINE",213:"T_FILE",214:"T_DIR",215:"T_TRAIT_C",216:"T_METHOD_C",217:"T_FUNC_C",218:"T_NS_C",219:"T_START_HEREDOC",220:"T_END_HEREDOC",221:"T_CLASS_C",222:"T_VARIABLE",223:"T_OPEN_TAG",224:"T_OPEN_TAG_WITH_ECHO",225:"T_CLOSE_TAG",226:"T_WHITESPACE",227:"T_COMMENT",228:"T_DOC_COMMENT",229:"T_ELLIPSIS",230:"T_COALESCE",231:"T_POW",232:"T_POW_EQUAL",233:"T_SPACESHIP"},names:{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}}},{}],"php-parser":[function(a,b,c){function d(a,b){for(var c=Object.keys(a),e=c.length;e--;){var f=c[e],g=a[f];null===g?delete b[f]:"function"==typeof g?b[f]=g.bind(b):Array.isArray(g)?b[f]=Array.isArray(b[f])?b[f].concat(g):g:"object"==typeof g?b[f]="object"==typeof b[f]?d(g,b[f]):g:b[f]=g; +}return b}var e=a("./src/lexer"),f=a("./src/parser"),g=a("./src/tokens"),h=function(a){return"function"==typeof this?new this(a):(this.tokens=g,this.lexer=new e(this),this.parser=new f(this.lexer),void(a&&"object"==typeof a&&d(a,this)))};h.create=function(a){return new h(a)},h.parseEval=function(a,b){var c=new h(b);return c.parseEval(a)},h.prototype.parseEval=function(a){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,this.parser.parse(a)},h.parseCode=function(a,b){var c=new h(b);return c.parseCode(a)},h.prototype.parseCode=function(a){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,this.parser.parse(a)},h.tokenGetAll=function(a,b){var c=new h(b);return c.tokenGetAll(a)},h.prototype.tokenGetAll=function(a){this.lexer.mode_eval=!1,this.lexer.all_tokens=!0;var b=this.lexer.EOF,c=this.tokens.values;this.lexer.setInput(a);for(var d=this.lexer.lex()||b,e=[];d!=b;){var f=this.lexer.yytext;c.hasOwnProperty(d)&&(f=[c[d],f,this.lexer.yylloc.first_line]),e.push(f),d=this.lexer.lex()||b}return e},b.exports=h; +},{"./src/lexer":2,"./src/parser":11,"./src/tokens":26}]},{},["php-parser"]); //# sourceMappingURL=php-parser.min.js.map \ No newline at end of file diff --git a/dist/php-parser.min.js.map b/dist/php-parser.min.js.map index ec63fa989..e2a127aaa 100644 --- a/dist/php-parser.min.js.map +++ b/dist/php-parser.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["php-parser.js"],"names":["require","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","this","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","lexer","engine","tok","tokens","names","EOF","all_tokens","comment_tokens","mode_eval","asp_tags","short_tags","yyprevcol","keywords","__class__","T_CLASS_C","__trait__","T_TRAIT_C","__function__","T_FUNC_C","__method__","T_METHOD_C","__line__","T_LINE","__file__","T_FILE","__dir__","T_DIR","__namespace__","T_NS_C","exit","T_EXIT","die","function","T_FUNCTION","const","T_CONST","return","T_RETURN","try","T_TRY","catch","T_CATCH","finally","T_FINALLY","throw","T_THROW","if","T_IF","elseif","T_ELSEIF","endif","T_ENDIF","else","T_ELSE","while","T_WHILE","endwhile","T_ENDWHILE","do","T_DO","for","T_FOR","endfor","T_ENDFOR","foreach","T_FOREACH","endforeach","T_ENDFOREACH","declare","T_DECLARE","enddeclare","T_ENDDECLARE","instanceof","T_INSTANCEOF","as","T_AS","switch","T_SWITCH","endswitch","T_ENDSWITCH","case","T_CASE","default","T_DEFAULT","break","T_BREAK","continue","T_CONTINUE","goto","T_GOTO","echo","T_ECHO","print","T_PRINT","class","T_CLASS","interface","T_INTERFACE","trait","T_TRAIT","extends","T_EXTENDS","implements","T_IMPLEMENTS","new","T_NEW","clone","T_CLONE","var","T_VAR","eval","T_EVAL","include","T_INCLUDE","include_once","T_INCLUDE_ONCE","T_REQUIRE","require_once","T_REQUIRE_ONCE","namespace","T_NAMESPACE","use","T_USE","insteadof","T_INSTEADOF","global","T_GLOBAL","isset","T_ISSET","empty","T_EMPTY","__halt_compiler","T_HALT_COMPILER","static","T_STATIC","abstract","T_ABSTRACT","final","T_FINAL","private","T_PRIVATE","protected","T_PROTECTED","public","T_PUBLIC","unset","T_UNSET","list","T_LIST","T_ARRAY","callable","T_CALLABLE","or","T_LOGICAL_OR","and","T_LOGICAL_AND","xor","T_LOGICAL_XOR","castKeywords","int","T_INT_CAST","integer","real","T_DOUBLE_CAST","double","float","string","T_STRING_CAST","binary","T_ARRAY_CAST","object","T_OBJECT_CAST","bool","T_BOOL_CAST","boolean","T_UNSET_CAST","setInput","input","_input","size","yylineno","offset","yytext","yylloc","first_line","first_column","last_line","last_column","conditionStack","done","begin","ch","unput","substring","last_col","first_col","c","tryMatch","text","ahead","tryMatchCaseless","toLowerCase","consume","getState","setState","state","appendToken","value","lex","token","next","T_WHITESPACE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","condition","curCondition","stateCb","popState","pop","shift","forEach","ext","k","./lexer/comments.js","./lexer/initial.js","./lexer/numbers.js","./lexer/property.js","./lexer/scripting.js","./lexer/strings.js","./lexer/tokens.js","./lexer/utils.js","3","aspTagMode","tthis","is_WHITESPACE","4","nextINITIAL","matchINITIAL","T_INLINE_HTML","5","arch","MAX_LENGTH_OF_LONG","long_min_digits","consume_NUM","hasPoint","is_HEX","consume_HNUM","consume_BNUM","is_NUM","consume_LNUM","T_DNUMBER","T_LNUMBER","_process","6","matchST_LOOKING_FOR_PROPERTY","T_OBJECT_OPERATOR","is_LABEL_START","consume_LABEL","T_STRING","matchST_LOOKING_FOR_VARNAME","T_STRING_VARNAME","matchST_VAR_OFFSET","T_NUM_STRING","T_VARIABLE","T_ENCAPSED_AND_WHITESPACE","is_TOKEN","7","matchST_IN_SCRIPTING","consume_TOKEN","T_CONSTANT_ENCAPSED_STRING","ST_DOUBLE_QUOTES","nextCH","T_CLOSE_TAG","8","is_HEREDOC","revert","is_TABSPACE","tChar","yyoffset","is_LABEL","yylabel","heredoc_label","T_START_HEREDOC","prefix","isDOC_MATCH","matchST_NOWDOC","T_END_HEREDOC","matchST_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","consume_VARIABLE","T_CURLY_OPEN","matchST_BACKQUOTE","matchST_DOUBLE_QUOTES","9","id","T_YIELD_FROM","T_YIELD","fn","tokenTerminals","$","-","nchar","T_DEC","T_MINUS_EQUAL","\\","T_NS_SEPARATOR","/","T_DIV_EQUAL",":","T_DOUBLE_COLON","(","initial","consume_TABSPACE","yylen","castToken","castId","=","T_DOUBLE_ARROW","T_IS_IDENTICAL","T_IS_EQUAL","+","T_INC","T_PLUS_EQUAL","!","T_IS_NOT_IDENTICAL","T_IS_NOT_EQUAL","?","T_COALESCE","<","T_SL_EQUAL","T_SL","T_SPACESHIP","T_IS_SMALLER_OR_EQUAL",">","T_IS_GREATER_OR_EQUAL","T_SR_EQUAL","T_SR","*","T_MUL_EQUAL","T_POW_EQUAL","T_POW",".","T_CONCAT_EQUAL","T_ELLIPSIS","%","T_MOD_EQUAL","&","T_AND_EQUAL","T_BOOLEAN_AND","|","T_OR_EQUAL","T_BOOLEAN_OR","^","T_XOR_EQUAL","10","charCodeAt","indexOf","is_NEWLINE","11","isNumber","isNaN","parseFloat","isFinite","parser","_gracefulProxy","_graceful","prev","debug","locations","extractDoc","suppressErrors","lastError","startAt","entries","SCALAR","T_MAGIC_CONST","T_MEMBER_FLAGS","VARIABLE","EOS","EXPR","getTokenName","values","parse","firstError","currentNamespace","nextWithComments","innerList","ast","node","read_start","undefined","item","bind","raiseError","message","msgExpect","expect","tokenName","expected","messageExpected","line","error","symbol","isArray","join","result","slice","constructor","unshift","expectEndOfStatement","ignoreStack","showlog","stack","split","trim","found","console","log","lastDoc","ignoreComments","is","type","read_token","read_list","separator","preserveFirstSeparator","withDoc","doc","./parser/array.js","./parser/class.js","./parser/comment.js","./parser/expr.js","./parser/function.js","./parser/if.js","./parser/loops.js","./parser/main.js","./parser/namespace.js","./parser/scalar.js","./parser/statement.js","./parser/switch.js","./parser/try.js","./parser/variable.js","12","read_array","items","read_array_pair_list","key","read_variable","expr","read_expr","read_dim_offset","13","read_class","flag","propName","propExtends","propImplements","read_namespace_name","read_class_body","read_class_scope","constants","properties","methods","traits","adaptations","comment","flags","read_member_flags","variables","read_variable_list","variable","buffer","method","read_function","read_constant_list","constant","read_trait_use_statement","read_doc_comment","read_comment","read_variable_declaration","varName","read_constant_declaration","asInterface","idx","val","read_interface","read_interface_body","read_function_declaration","read_trait","read_trait_use_alias","origin","act","target","14","15","read_expr_item","trueArg","recursive_variable_chain_scan","read_dereferencable","read_function_argument_list","read_encapsed_string","isInner","assignList","read_assignment_list","hasItem","read_new_expr","statement","read_scalar","read_class_name_reference","read_static_getter","read_assignment_list_element","16","is_reference","is_variadic","annonymous","isAbstract","read_code_block","isRef","returnType","params","read_parameter_list","read_lexical_var","read_type","read_parameter","isVariadic","read_argument_list","17","read_if","cond","read_if_expr","body","elseCond","read_elseif_short","read_else_short","read_inner_statement","read_statement","18","read_short_form","read_while","read_do","read_for","expr1","expr2","expr3","read_foreach","read_foreach_variable","19","read_namespace","read_top_statement","20","read_top_statements","read_use_statements","read_use_statement_mixed","child","read_inline_use_declaration","ns","read_use_statement","ignoreType","21","specialChar","\\r","\\n","\\t","\\v","String","fromCharCode","\\e","\\f","\\\\","\\$","\\\"","\\'","get_magic_constant","isBinCast","replace","seq","err","read_encapsed_string_item","first","22","read_const_list","read_inner_statements","read_declare_list","read_switch","mode","read_simple_variable","current","options","read_try","label","top","23","cases","read_switch_case_list","read_case_list","stopToken","24","allways","catches","exName","exception","25","read_only","encapsed","read_reference_variable","from","getter","recursive_scan_loop","read_encaps_var_offset","what","26","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","php-parser","combine","src","to","keys","Object","create","parseEval","self","parseCode","tokenGetAll","entry","hasOwnProperty","./src/lexer","./src/parser","./src/tokens"],"mappings":"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","file":"php-parser.min.js"} \ No newline at end of file +{"version":3,"sources":["php-parser.js"],"names":["require","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","this","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","lexer","engine","tok","tokens","names","EOF","all_tokens","comment_tokens","mode_eval","asp_tags","short_tags","yyprevcol","keywords","__class__","T_CLASS_C","__trait__","T_TRAIT_C","__function__","T_FUNC_C","__method__","T_METHOD_C","__line__","T_LINE","__file__","T_FILE","__dir__","T_DIR","__namespace__","T_NS_C","exit","T_EXIT","die","function","T_FUNCTION","const","T_CONST","return","T_RETURN","try","T_TRY","catch","T_CATCH","finally","T_FINALLY","throw","T_THROW","if","T_IF","elseif","T_ELSEIF","endif","T_ENDIF","else","T_ELSE","while","T_WHILE","endwhile","T_ENDWHILE","do","T_DO","for","T_FOR","endfor","T_ENDFOR","foreach","T_FOREACH","endforeach","T_ENDFOREACH","declare","T_DECLARE","enddeclare","T_ENDDECLARE","instanceof","T_INSTANCEOF","as","T_AS","switch","T_SWITCH","endswitch","T_ENDSWITCH","case","T_CASE","default","T_DEFAULT","break","T_BREAK","continue","T_CONTINUE","goto","T_GOTO","echo","T_ECHO","print","T_PRINT","class","T_CLASS","interface","T_INTERFACE","trait","T_TRAIT","extends","T_EXTENDS","implements","T_IMPLEMENTS","new","T_NEW","clone","T_CLONE","var","T_VAR","eval","T_EVAL","include","T_INCLUDE","include_once","T_INCLUDE_ONCE","T_REQUIRE","require_once","T_REQUIRE_ONCE","namespace","T_NAMESPACE","use","T_USE","insteadof","T_INSTEADOF","global","T_GLOBAL","isset","T_ISSET","empty","T_EMPTY","__halt_compiler","T_HALT_COMPILER","static","T_STATIC","abstract","T_ABSTRACT","final","T_FINAL","private","T_PRIVATE","protected","T_PROTECTED","public","T_PUBLIC","unset","T_UNSET","list","T_LIST","T_ARRAY","callable","T_CALLABLE","or","T_LOGICAL_OR","and","T_LOGICAL_AND","xor","T_LOGICAL_XOR","castKeywords","int","T_INT_CAST","integer","real","T_DOUBLE_CAST","double","float","string","T_STRING_CAST","binary","T_ARRAY_CAST","object","T_OBJECT_CAST","bool","T_BOOL_CAST","boolean","T_UNSET_CAST","setInput","input","_input","size","yylineno","offset","yytext","yylloc","first_line","first_column","last_line","last_column","conditionStack","done","begin","ch","unput","substring","last_col","first_col","c","tryMatch","text","ahead","tryMatchCaseless","toLowerCase","consume","getState","setState","state","appendToken","value","lex","token","next","T_WHITESPACE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","condition","curCondition","stateCb","popState","pop","shift","forEach","ext","k","./lexer/comments.js","./lexer/initial.js","./lexer/numbers.js","./lexer/property.js","./lexer/scripting.js","./lexer/strings.js","./lexer/tokens.js","./lexer/utils.js","3","aspTagMode","tthis","is_WHITESPACE","4","nextINITIAL","matchINITIAL","T_INLINE_HTML","5","arch","MAX_LENGTH_OF_LONG","long_min_digits","consume_NUM","hasPoint","is_HEX","consume_HNUM","consume_BNUM","is_NUM","consume_LNUM","T_DNUMBER","T_LNUMBER","_process","6","matchST_LOOKING_FOR_PROPERTY","T_OBJECT_OPERATOR","is_LABEL_START","consume_LABEL","T_STRING","matchST_LOOKING_FOR_VARNAME","T_STRING_VARNAME","matchST_VAR_OFFSET","T_NUM_STRING","T_VARIABLE","T_ENCAPSED_AND_WHITESPACE","is_TOKEN","7","matchST_IN_SCRIPTING","consume_TOKEN","T_CONSTANT_ENCAPSED_STRING","ST_DOUBLE_QUOTES","nextCH","T_CLOSE_TAG","8","is_HEREDOC","revert","is_TABSPACE","tChar","yyoffset","is_LABEL","yylabel","heredoc_label","T_START_HEREDOC","prefix","isDOC_MATCH","matchST_NOWDOC","T_END_HEREDOC","matchST_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","consume_VARIABLE","T_CURLY_OPEN","matchST_BACKQUOTE","matchST_DOUBLE_QUOTES","9","id","T_YIELD_FROM","T_YIELD","fn","tokenTerminals","$","-","nchar","T_DEC","T_MINUS_EQUAL","\\","T_NS_SEPARATOR","/","T_DIV_EQUAL",":","T_DOUBLE_COLON","(","initial","consume_TABSPACE","yylen","castToken","castId","=","T_DOUBLE_ARROW","T_IS_IDENTICAL","T_IS_EQUAL","+","T_INC","T_PLUS_EQUAL","!","T_IS_NOT_IDENTICAL","T_IS_NOT_EQUAL","?","T_COALESCE","<","T_SL_EQUAL","T_SL","T_SPACESHIP","T_IS_SMALLER_OR_EQUAL",">","T_IS_GREATER_OR_EQUAL","T_SR_EQUAL","T_SR","*","T_MUL_EQUAL","T_POW_EQUAL","T_POW",".","T_CONCAT_EQUAL","T_ELLIPSIS","%","T_MOD_EQUAL","&","T_AND_EQUAL","T_BOOLEAN_AND","|","T_OR_EQUAL","T_BOOLEAN_OR","^","T_XOR_EQUAL","10","charCodeAt","indexOf","is_NEWLINE","11","isNumber","isNaN","parseFloat","isFinite","parser","_gracefulProxy","_graceful","prev","debug","locations","extractDoc","suppressErrors","lastError","startAt","entries","SCALAR","T_MAGIC_CONST","T_MEMBER_FLAGS","VARIABLE","EOS","EXPR","getTokenName","values","parse","firstError","currentNamespace","nextWithComments","innerList","ast","node","read_start","undefined","item","bind","raiseError","message","msgExpect","expect","tokenName","expected","messageExpected","line","error","symbol","isArray","join","result","slice","constructor","unshift","expectEndOfStatement","ignoreStack","showlog","stack","split","trim","found","console","log","lastDoc","ignoreComments","is","type","read_token","read_list","separator","preserveFirstSeparator","withDoc","doc","./parser/array.js","./parser/class.js","./parser/comment.js","./parser/expr.js","./parser/function.js","./parser/if.js","./parser/loops.js","./parser/main.js","./parser/namespace.js","./parser/scalar.js","./parser/statement.js","./parser/switch.js","./parser/try.js","./parser/variable.js","12","read_array","items","read_array_pair_list","key","read_variable","expr","read_expr","read_dim_offset","13","read_class","flag","propName","propExtends","propImplements","read_namespace_name","read_class_body","read_class_scope","flags","read_member_flags","variables","read_variable_list","variable","read_function","constants","read_constant_list","constant","read_trait_use_statement","read_doc_comment","read_comment","read_variable_declaration","read_constant_declaration","asInterface","idx","val","read_interface","read_interface_body","method","read_function_declaration","comment","read_trait","read_trait_use_alias","origin","act","target","14","15","read_expr_item","trueArg","recursive_variable_chain_scan","read_dereferencable","read_function_argument_list","read_encapsed_string","isInner","assignList","read_assignment_list","hasItem","read_new_expr","statement","read_scalar","read_class_name_reference","read_static_getter","read_assignment_list_element","16","is_reference","is_variadic","closure","body","read_code_block","nodeName","isRef","returnType","params","read_parameter_list","read_lexical_var","read_type","read_parameter","isVariadic","read_argument_list","17","read_if","cond","read_if_expr","elseCond","read_elseif_short","read_else_short","read_inner_statement","read_statement","18","read_short_form","read_while","read_do","read_for","expr1","expr2","expr3","read_foreach","read_foreach_variable","19","read_namespace","read_top_statement","20","read_top_statements","read_use_statements","read_use_statement_mixed","child","read_inline_use_declaration","ns","read_use_statement","ignoreType","21","specialChar","\\r","\\n","\\t","\\v","String","fromCharCode","\\e","\\f","\\\\","\\$","\\\"","\\'","get_magic_constant","isBinCast","replace","seq","err","read_encapsed_string_item","first","22","read_const_list","read_inner_statements","read_declare_list","read_switch","mode","read_simple_variable","current","options","read_try","label","top","23","cases","read_switch_case_list","read_case_list","stopToken","24","allways","catches","exName","varName","exception","25","read_only","encapsed","read_reference_variable","from","getter","recursive_scan_loop","read_encaps_var_offset","what","26","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","php-parser","combine","src","to","keys","Object","create","parseEval","buffer","self","parseCode","tokenGetAll","entry","hasOwnProperty","./src/lexer","./src/parser","./src/tokens"],"mappings":"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","file":"php-parser.min.js"} \ No newline at end of file diff --git a/package.json b/package.json index 7bcb83962..4a14cbb1b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "php-parser", - "version": "0.1.4", - "description": "PHP parser", + "version": "0.1.5", + "description": "Parse PHP code with NodeJS and convert it to AST", "main": "main.js", "scripts": { "bench": "node --expose-gc bin/bench.js", @@ -16,11 +16,10 @@ "bugs": { "url": "https://github.com/glayzze/php-parser/issues" }, - "homepage": "https://github.com/glayzzle/php-parser", + "homepage": "http://glayzzle.com/php-parser/", "keywords": [ - "php", - "parser", - "ast" + "php","php5","php7", + "parser","lexer","tokenizer","ast" ], "author": "Ioan CHIRIAC", "license": "BSD-3-Clause",