javascript - 解析 JavaScript 以检测代码

标签 javascript python parsing spidermonkey

我需要将 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/

相关文章:

javascript - 禁用选择器中的选项,使其无法被删除

javascript - Angular JS - 文本框未在独立范围内更新

python - python 中的 MySQL LOAD DATA LOCAL INFILE 示例?

c# - 在 C# 中将字符串解析为十进制时无法限制小数位数

java - Gson:JsonParser.parse()无法识别无效的JSON格式

javascript - 为什么无法使用 nextElementSibling.focus() 和parentNode.children[0].focus() 将焦点设置在元素上?

javascript - 更好的格式以将数据保存在本地存储中

python - 在 Celery 任务中保存对象后,Django 匹配查询不存在

python - 在多线程中追加字符串

html - Laravel 搜索结果包含 HTML 并在 Flutter UI 中呈现