【发布时间】:2017-10-02 07:47:42
【问题描述】:
我正在和朋友一起做一个小型 Javascript 实验,其中涉及一个基本的 HTML 解析器,实现为一个简单的状态机 - 你可以see the code here。
我的问题是关于涉及任何类型解析器的标记模板函数,关于错误报告 - 也就是说,如果解析器检测到无效状态,它需要报告在输入中发现错误的位置。
我的问题是以一种有意义的方式跟踪和/或解释发现错误的位置。
标记模板函数的输入实际上是源代码位(在我的情况下为 HTML)与 Javascript 值交替,所以你不能简单地(就像我现在正在做的那样,就像你在大多数普通解析器中所做的那样)计数字符并报告位置,因为交替的 Javascript 值可能不是字符串,或者可能是不被解析为文字源的字符串。
标记模板函数有没有办法发现交替输入字符串/值的源文件位置?
或者我怀疑这种运行时设施几乎是不可能的?除了使用 Javascript 解析器(可能提前)来发现和记录源位置之外,是否真的没有任何有用的方法来实现这一点?
【问题讨论】:
标签: javascript parsing ecmascript-6 tagged-templates