关于javascript解析的建议/建议
我需要一种机制,它将获取包含同步函数调用的相当小的javascript片段,并将其重写为异步javascript 例如,如果我有一个片段关于javascript解析的建议/建议,javascript,regex,Javascript,Regex,我需要一种机制,它将获取包含同步函数调用的相当小的javascript片段,并将其重写为异步javascript 例如,如果我有一个片段 someSyncFunction(); console.log("function complete") 我需要将它重新格式化为 someAsyncFunction(function () {console.log("function complete")} ); 这是我可以用正则表达式完成的任务,还是我需要编写解析器?如果是后者,对LIB有何建议 只是让
someSyncFunction();
console.log("function complete")
我需要将它重新格式化为
someAsyncFunction(function () {console.log("function complete")} );
这是我可以用正则表达式完成的任务,还是我需要编写解析器?如果是后者,对LIB有何建议
只是让事情稍微复杂一点,我还需要处理递归/嵌套,例如
someSyncFunction();
console.log("first function complete");
someSyncFunction();
console.log("second function complete");
...
是的,您需要使用解析器。Regex不能真正解析任意嵌套的javascript代码。您可能希望使用它,它为您提供了一个语法树,您可以在其中找到异步函数并适当地转换树
然而,我不认为你会想重新发明轮子。看看这个。谢谢你的建议。以下是结果
- esprima肯定会完成这项工作,如果regex进入缓冲区,那就是我下一步要做的事情
- 我在网站上查看了有用的编译器列表,但它们都给我想要实现的目标带来了沉重的负担。卡尔离得最近
- 从@Avinash的建议开始,我发现regex做我想做的事情非常简单,所以我会这么做。为了澄清,regex at将处理sync->async转换的单个实例,因此我将递归调用它,直到输出稳定为止