Есть ли расширение для железнодорожных диаграмм, чтобы фиксировать исключения?

Железнодорожные диаграммы - популярный метод визуализации контекстно-свободных грамматик, и вы можете сопоставить форму Бэкуса-Наура с этими диаграммами. Но некоторые варианты BNF , например, W3C-BNF разрешают исключения (поскольку контекстно-свободные языки не закрываются при различиях, эти исключения должны быть регулярными). Я хочу визуализировать грамматику с исключениями на диаграмме железной дороги. Должен ли я изобрести собственное расширение графической записи или кто-то уже экспериментировал с этим?

Вот пример правила с исключением (да, вы также можете выразить эту конкретную грамматику без исключения, но дело не в этом):

comment := ""

Исключением может быть любая обычная грамматика. Я подумал о добавлении исключения, связанного с нетерминальными символами каким-то особым типом стрелки или линии (здесь обозначены восклицательными знаками):

[<] → [!] → [-] → [-] → (string) → [-] → [-] → [>]
                          !
                          ! → [-] → [-] → ↯

PS: Грамматика была неправильной, это должно быть

comment := ""

Может быть, неинтуитивное использование отрицания является одной из причин, почему оно мало используется в формальных грамматиках?

5
задан Kevin Brown 20 February 2015 в 01:46
поделиться