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
评估对成功评估的表达式的成员函数的调用。