BNFGen
BNFGen基于无上下文语法生成随机文本。 您使用类似BNF的语法定义的语法给它一个文件,它会为您提供遵循该语法的字符串。
BNFGen是:
CLI工具
OCaml库
还可以通过获得官方的JS绑定。
项目目标:
使编写和共享语法变得容易。
让用户完全控制并深入了解生成过程。
在线演示可在
那么,BNFGen如何实现这些目标?
语法语法
BNFGen为语法定义提供了“ DSL”。 这是一种类似BNF的熟悉语法,但有一些附加功能。
终端使用单引号或双引号( "foo" , 'bar' )。
非终端在尖括号中: <baz> , <quux> 。
规则用分号分隔。
# My first BNFGen grammar
<start> ::= <greeting> "world" ;
<greeting> ::= "hello" | "high"
如果语法错误,通常