【问题标题】:CSS "escape" syntax diagram confusionCSS“转义”语法图混乱
【发布时间】:2021-12-10 12:31:27
【问题描述】:

查看escape 语言的语法图:

我读到第二组转换如下:

如果下一个符号不是 newlinehex digit 语言(或其他词,是任何语言,但 newlinehex digit 语言)。

如果下一个符号是 hex digit 语言,则由 \ 符号转换到的状态可以转换到不同的状态。

这不矛盾吗?

【问题讨论】:

  • 这有什么矛盾的?它可以接受\z\123456

标签: css context-free-grammar nfa automaton


【解决方案1】:

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

本节不规范。

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

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

最终的标记化算法是作为一个用英文写成的程序提供的,它不像铁路图那么容易理解。由于这些算法是规范和语义的,因此歧义将是一个问题。但我想你会发现它们都是确定性的。例如,这里是convert an escape sequence 的方法(一旦初始的\ 被消耗)。

【讨论】:

  • 谢谢。不知道我在想什么......
猜你喜欢
  • 2021-03-21
  • 1970-01-01
  • 2017-06-11
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多