CSS "escape"语法图混淆



看一下转义语言的语法图:

我读第二组转换如下:

如果下一个符号不是换行符十六进制数字语言(或者换句话说,是除换行符十六进制数字语言之外的任何语言),则符号转换到的状态可以转换到接受状态。

如果下一个符号是十六进制数字语言,则符号转换到的状态可以转换到不同的状态。

这不是矛盾吗?

铁路图是模糊的,而不是矛盾的。但请注意该部分的第一行,它说:

这部分是非规范的

,然后继续准确地解释这意味着什么:铁路图是不完整的,只有信息;它们旨在让您直观地掌握语法。这些图不被用作参考资料,它们也不试图定义每个标记的语义。

显然,一个给定的令牌可能有不止一条通过铁路的路径。但由于铁路图不是语义图,所以这无关紧要。此外,许多铁路图并没有告诉你标记的终点在哪里;图中没有任何内容表明有必要接受最长可能的匹配(通常就是这种情况)。

明确的标记化算法是作为英语编写的程序提供的,它不像铁路图那样容易理解。由于这些算法是规范的和语义的,因此歧义将是一个问题。但我想你会发现它们都是确定性的。例如,下面是如何转换转义序列(一旦初始被消耗)。

最新更新