【问题标题】:Ignore error while generating JS AST using ESPIRMA使用 ESPIRMA 生成 JS AST 时忽略错误
【发布时间】:2021-02-25 03:03:52
【问题描述】:

即使JS文件有语法错误,如何指示esprima继续生成AST?

例子:

var x = ; // syntax error
var y = 5;
x = y;

正常的 esprima 输出(即使启用容错模式):

描述:'意外的令牌;'

【问题讨论】:

  • 如果出现错误,为什么要继续生成代码?除了最初由不正确的 JS 编程引起的语法错误之外,这将导致错误(逻辑错误)。
  • 对超过 100k 的 js 文件进行一项研究,可以跳过错误并进入 JS 文件的重要部分
  • "重要部分" 每个部分都很重要,您可能会错过程序中每隔一行使用的变量。您的逻辑存在根本缺陷,因为语法错误旨在防止逻辑错误,因此忽略它是不合逻辑的。
  • 你的一般性陈述是正确的,但在我的具体情况下,我没有讨论它的话题。
  • 另外,我想要的是继续生成并报告错误...目前它抛出异常,没有 AST 输出

标签: javascript node.js esprima


【解决方案1】:

似乎 ESPIRMA 不可能。 但是,我可以使用 acorn-loose 来实现,它会生成相同的 AST 结构。

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多