Parser

Parser

解析器实例接受一个String和回调函数,并在匹配时返回一个表达式。

compiler.parser.plugin("var rewire", function (expr) { //if you original module has 'var rewire' //you now have a handle on the expresssion object return true; }

program(ast) bailing

代码片段AST的通用插件接口。

statement(statement: Statement) bailing

通用插件接口用于代码片段的声明。

call <identifier>(expr: Expression) bailing

abc(1) => call abc

a.b.c(1) => call a.b.c

expression <identifier>(expr: Expression) bailing

abc => expression abc

a.b.c => expression a.b.c

expression ?:(expr: Expression) bailing

(abc ? 1 : 2) => expression ?!

返回一个布尔值来省略解析错误的路径。

typeof <identifier>(expr: Expression) bailing

typeof a.b.c => typeof a.b.c

statement if(statement: Statement) bailing

if(abc) {} => statement if

返回一个布尔值来省略解析错误的路径。

label <labelname>(statement: Statement) bailing

xyz: abc => label xyz

var <name>(statement: Statement) bailing

var abc, def => var abc + var def

返回false到不将该变量添加到已知定义。

evaluate <expression type>(expr: Expression) bailing

评估一个表达式。

evaluate typeof <identifier>(expr: Expression) bailing

评估标识符的类型。

evaluate Identifier <identifier>(expr: Expression) bailing

评估一个自由变量的标识符。

evaluate defined Identifier <identifier>(expr: Expression) bailing

评估一个已定义的变量的标识符。

evaluate CallExpression .<property>(expr: Expression) bailing

评估对成功评估的表达式的成员函数的调用。