看一下转义语言的语法图:
我读第二组转换如下:
如果下一个符号不是换行符或十六进制数字语言(或者换句话说,是除换行符或十六进制数字语言之外的任何语言),则
符号转换到的状态可以转换到接受状态。
如果下一个符号是十六进制数字语言,则符号转换到的状态可以转换到不同的状态。
这不是矛盾吗?
铁路图是模糊的,而不是矛盾的。但请注意该部分的第一行,它说:
这部分是非规范的
,然后继续准确地解释这意味着什么:铁路图是不完整的,只有信息;它们旨在让您直观地掌握语法。这些图不被用作参考资料,它们也不试图定义每个标记的语义。
显然,一个给定的令牌可能有不止一条通过铁路的路径。但由于铁路图不是语义图,所以这无关紧要。此外,许多铁路图并没有告诉你标记的终点在哪里;图中没有任何内容表明有必要接受最长可能的匹配(通常就是这种情况)。
明确的标记化算法是作为英语编写的程序提供的,它不像铁路图那样容易理解。由于这些算法是规范的和语义的,因此歧义将是一个问题。但我想你会发现它们都是确定性的。例如,下面是如何转换转义序列(一旦初始被消耗)。