关于javascript解析的建议/建议

时间:2014-09-01 15:42:26

标签: javascript regex

我需要一种机制,它会占用一小段包含同步函数调用的javascript,并将其重写为异步javascript。

所以,例如,如果我有一个片段

someSyncFunction();
console.log("function complete")

我需要重新格式化

someAsyncFunction(function () {console.log("function complete")} );

这是我可以用正则表达式执行的任务,还是我需要编写解析器?如果是后者,任何有关lib的建议会有所帮助吗?

为了使事情略微复杂化,我还需要处理递归/嵌套,例如......

someSyncFunction();
console.log("first function complete");
someSyncFunction();
console.log("second function complete");
...

2 个答案:

答案 0 :(得分:2)

是的,您需要使用解析器。正则表达式并不能真正解析任意嵌套的javascript代码。您可能希望使用http://esprima.org/,它为您提供了一个语法树,您可以在其中找到异步函数并适当地转换树。

然而,我不认为你会想要重新发明轮子。看看这个list of tools that compile synchronous to asynchronous JavaScript

答案 1 :(得分:-1)

感谢您的建议。结果如下......