我对如何将文本解析成AST有疑问。我的目标是能够计算导入和类声明之间有多少条折线。
我认为可以使用每个语句的开始和结束位置来完成这个任务。但是,结果是类型记录解析器忽略了断线。
如果图像不够清晰,我将指出巴比伦解析器中的ClassDeclaration从116开始,而在类型转换解析器中从113开始。
我想知道为什么会发生这种情况,以及如何使用类型记录来解决这个问题,或者有什么解决办法?我正在使用tslint创建一个自定义规则。

Babylon7 AST分析器https://astexplorer.net/#/gist/ffa8dc62cec5bea5a5f76ca978af53b1/d50f63227dec8549a70d6fbb35d4d1aa62b0ea25

发布于 2019-02-22 20:58:50
这是意料之中的。pos属性显示最后一个重要令牌的结束位置。node.getStart(sourceFile)方法是您感兴趣的,并将返回起始位置。
我建议使用我的ast查看器(ts-ast-viewer),因为它专门用于TypeScript编译器API,并将向您展示这些信息。
https://stackoverflow.com/questions/45039719
复制相似问题