在此站点上,我找到了一些有关如何排版 Backus-Naur-Forms 的解决方案,例如:
不幸的是,这两种解决方案对于扩展巴科斯范式来说都非常不方便。这尤其包括添加的[ optional ]
和构造。{ some more }
我想知道是否有一个包可以让我排版具有以下要求的 EBNF:
- 逻辑标记(非终端和终端符号、终端描述),
- 自动换行(以及类似使用缩进而不是
|
fi [因为|
用于或]) - 编号和未编号生产规则
- (可选)hyperref 支持跳转到非终端定义
问题:有没有可以做到这一点的软件包?如果没有,我应该如何开始实现(列表、段落……)?
一个虚拟文档(我认为它看起来像这样):
\documentclass{article}
\begin{document}
\begin{ebnf}
\prodrule{nonterm} \nonterm{thing} [ \term{option} ] \{ \termdesc{something} \} | \nonterm{variable}
\prodrule{thing} \term{object}
\prodrule{variable} \termdesc{anything}
\end{ebnf}
\end{document}