Antlr4 typescript目标,ErrorNode未定义

8yparm6h  于 2023-03-31  发布在  TypeScript
关注(0)|答案(1)|浏览(94)

我试图写一个函数来检查一个节点是否有一个ErrorNode作为它的一个(in)直接子节点。但是ErrorNode显示为undefined。

function hasErrorNode(node: ParserRuleContext) {
    console.log(ErrorNode) // undefined
    if (node instanceof ErrorNode) { // Right-hand side of 'instanceof' is not an object
        return true
    }
    for (const child of node.children!) {
        if (hasErrorNode(child as ParserRuleContext)) {
            return true
        }
    }
    return false
}

我检查了循环依赖,我没有任何依赖(我用工具madge验证了它)
我希望能够检查一个节点是否是ErrorNode的示例,而不是得到一个错误right-hand side of 'instanceof' is not an object,大概是因为它未定义。
如果相关话,下面是我导入ErrorNode的方法

import { CommonTokenStream, ParserRuleContext, TerminalNode, ErrorNode, Interval, CharStream } from 'antlr4';
  • 这段代码会被webpack编译成cjs*
lsmd5eda

lsmd5eda1#

正确的导入来自/tree文件夹:

import { ParseTree, ErrorNode, TerminalNode } from "antlr4ts/tree";

相关问题