# BNF2Graphviz
**Repository Path**: SuperLiveYou/bnf2-graphviz
## Basic Information
- **Project Name**: BNF2Graphviz
- **Description**: 用于将BNF转换成Graphviz代码,内部构建了一个完整的BNF词法语法分析器,会对BNF范式进行检测,有问题将会报详细错误
- **Primary Language**: C++
- **License**: LGPL-3.0
- **Default Branch**: BNF2Graphviz__1.0.0
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-01-30
- **Last Updated**: 2022-05-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BNF2Graphviz
## 1. 作用
> 用于将BNF转换成Graphviz代码,内部构建了一个完整的BNF词法语法分析器,会对BNF范式进行检测,有问题将会报详细错误,可以自动将dot代码编译为png,依赖Graphviz工具包
## 2. `Sublime Text3`如何为`BNF`提供语法高亮?
> 请按下ctrl+shift+p打开插件管理
> 找到`install package`并回车
> 搜索`ABNF-sublime-syntax`并点击安装
> 这样你就有一个BNF的语法高亮和语法提示了
#### 注:`ABNF`是`BNF`的一个扩展,但是此插件仅仅对代码做了高亮并且只会语法提示常用以及产生式名称,可以当做`BNF`插件用
## 3. 如何在`Sublime Text3`部署`BNF2Graphviz`用于检查你的`BNF`语法是否正规?
> 点击上面的`"工具"选项("Tools")`,找到`"编译系统"`
> 滑进去选择新建编译系统,输入以下内容并保存到`默认路径`,命名为`BNF2Graphviz`
```json
{
"cmd": ["BNF2Graphviz", "-ov","-f","$file"],
"selector": "source.abnf",
"encoding": "cp936"
}
```
#### 注:在编译到`png`之前你必须把`BNF2Graphviz`加入到环境变量,并且安装`Graphviz`,并将`bin`目录加入到`环境变量`,如果只需要语法检测,便不需要安装`Graphviz`
## 4. 我为什么不能编译?
> 新建一个`*.abnf`文件,按ctrl+b编译,如果不能编译,请手动到`"工具"(Tools) -> "编译系统"` 选择`BNF2Graphviz`
## 5. 命令行参数
```shell
-o -out 编译并输出png
-f -File 文件位置
-d -dot 编译完成不删除dot文件
-v -View 编译成功后打开png图片
-ov -outView 编译并显示生成的图片
```
#### 注:`-d`和`-v`命令必须得有`-o`命令才会执行,如果只有`-f`命令,则只会检查文法,会比编译要快三倍