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