铁路图是一种可视化上下文无关语法的流行方法,您可以将 Backus-Naur Form 映射到这些图表。但是BNF 的一些变体,例如W3C-BNF允许异常(因为上下文无关语言不会在差异下关闭,这些异常必须是常规的)。我想在铁路图中可视化带有异常的语法。我应该发明自己的图形符号扩展还是有人已经对此进行了实验?
这是一个例外规则的例子(是的,你也可以毫无例外地表达这个特定的语法,但这不是重点):
comment := "<!--" (string - "--") "-->"
异常可以是任何常规语法。我考虑过通过某种特殊类型的箭头或线条(这里用感叹号表示)添加与非终端符号连接的异常:
[<] → [!] → [-] → [-] → (string) → [-] → [-] → [>]
!
! → [-] → [-] → ↯
PS:语法错了,应该是
comment := "<!--" (string - (string "--" string | string "-")) "-->"
也许否定的非直觉使用是它在正式语法中很少使用的原因之一?