我需要将 JavaScript 文件拆分为单个指令。例如
a = 2;
foo()
function bar() {
b = 5;
print("spam");
}
必须分成三个指令。 (赋值、函数调用和函数定义)。
基本上我需要检测代码,在这些指令之间注入(inject)代码以执行检查。用“;”分割显然不会起作用,因为您还可以用换行符结束指令,也许我不想在函数和类定义中检测代码(我还不知道)。我用 flex 上了一门关于语法的类(class)/Bison但在这种情况下,此规则的语义操作将是“打印解析树中的所有后代并将我的代码放在末尾”,我认为这是基本的 Bison 无法完成的。我该怎么做呢?我还需要拆分代码,因为我需要使用 python-spidermonkey 与 Python 交互。 或者......是否已经有一个图书馆可以让我免于重新发明轮子?它不必使用 Python。
最佳答案
为什么不使用 JavaScript 解析器?有很多,包括用于 ANTLR 的 Python API 和围绕 SpiderMonkey 的 Python 包装器。
关于javascript - 解析 JavaScript 以检测代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843546/