舒适地排版扩展巴科斯诺尔范式

舒适地排版扩展巴科斯诺尔范式

在此站点上,我找到了一些有关如何排版 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}

相关内容