1. Parser
parser 实例对象接收一个字符串以及回调函数,并在匹配时返回一个表达式。
compiler.parser.plugin("var rewire", function (expr) {
//如果原始模块包含 "var rewire"
//将得到一个表达式对象的句柄
return true;
});
1.1. program(ast) bailing
代码片段中 AST 的通用插件接口。
1.2. statement(statement: Statement) bailing
代码片段中 statements 的通用插件接口。
1.3. call <identifier>(expr: Expression) bailing
abc(1) => call abc
a.b.c(1) => call a.b.c
1.4. expression <identifier>(expr: Expression) bailing
abc => expression abc
a.b.c => expression a.b.c
1.5. expression ?:(expr: Expression) bailing
(abc ? 1 : 2) => expression ?!
返回一个布尔值以忽略对错误路径的解析。
1.6. typeof <identifier>(expr: Expression) bailing
typeof a.b.c => typeof a.b.c
1.7. statement if(statement: Statement) bailing
if(abc) {} => statement if
返回一个布尔值以省略对错误路径的解析。
1.8. label <labelname>(statement: Statement) bailing
xyz: abc => label xyz
1.9. var <name>(statement: Statement) bailing
var abc, def => var abc + var def
返回 false,变量不会添加到已知的定义中。
1.10. evaluate <expression type>(expr: Expression) bailing
对表达式求值。
1.11. evaluate typeof <identifier>(expr: Expression) bailing
对标识符的类型求值。
1.12. evaluate Identifier <identifier>(expr: Expression) bailing
对一个自由变量的标识符求值。
1.13. evaluate defined Identifier <identifier>(expr: Expression) bailing
对一个已定义变量的标识符求值。
1.14. evaluate CallExpression .<property>(expr: Expression) bailing
对成功鉴定的表达式的成员函数的调用求值。