利用EBNF生成Syntax/Railroad Diagram
来源:互联网 发布:blending 算法 编辑:程序博客网 时间:2024/05/18 02:14
有一个在线生成工具:http://railroad.my28msec.com/rr/ui
得到的Syntax/Railroad Diagram
示例1:
来自Stack Overflow
object ::= '{' ((string ':' value ) ( ',' string ':' value )*)? '}'
示例2:
包含+, -, *,括号的算术表达式描述(EBNF)
exp ::= term (addop term)*term ::= factor ('*' factor)*addop ::= '+' |'-'factor ::= '(' exp ')' | [0-9]+
得到的Syntax/Railroad Diagram
exp:
exp ::= term ( addopterm )*
referenced by:factor
term:
term ::= factor ( '*' factor )*
referenced by:exp
addop:
addop ::= '+' | '-'
referenced by:exp
factor:
factor ::= '('exp ')' | [0-9]+
referenced by:term
示例3
stmt-seq ::= stmt (';'stmt)*stmt ::= if-stmt | repeat-stmt | assign-stmt | read-stmt | write-stmtif-stmt ::= 'if' exp 'then' stmt-seq ('else' stmt-seq)? 'end'repeat-stmt ::= 'repeat' stmt-seq 'util' expassign-stmt ::= id ':=' expread-stmt ::= 'read'idwrite-stmt ::= 'write' expexp ::= simple-exp (('<'|'=') simple-exp)?simple-exp ::= term (('+'|'-') term)*term ::= factor(('*'|'/')factor)*factor ::= '('exp')' | num | idnum ::=([1-9])+([0-9])*id ::=([a-zA-Z])+
更多示例
http://download.csdn.net/detail/taotaoyouarebaby/5222326 描述C-
http://download.csdn.net/detail/taotaoyouarebaby/5222098 描述 TINY
- 利用EBNF生成Syntax/Railroad Diagram
- "railroad diagram"
- [欧拉回路 最小生成树] UOJ#236 -- IOI2016. railroad
- HDU3779(Railroad)
- MySQL Workbeanch 创建 Diagram 生成数据库脚本
- poj 1394 Railroad
- poj 1394 Railroad
- HDU:3779 Railroad
- Railroad - HDU 3779 dp
- HDU 3779 Railroad
- LA 4888 Railroad
- HDU 3779 Railroad
- EBNF文法的翻译
- BNF, ABNF, EBNF, TBNF
- 扩展巴科斯范式(EBNF)
- hdu3779 Railroad 记忆化搜索
- hdu 3779 Railroad (动态规划)
- BNF范式和EBNF范式
- 谷歌Q3推Android本 蚕食自己平板市场
- 异步非阻塞套接字Winsock开发网络通信程序的经典入门
- 基于stm32f103zet6的FAT16文件系统学习1(初识FAT16)
- POJ-2649-Factovisors
- pci_bus_read_config_dword实现说明
- 利用EBNF生成Syntax/Railroad Diagram
- NativeActivity工程编译及运行
- 360手机卫士的建议
- vs的【warning C4996:'fopen': This function or variable may be unsafe】解决方案
- 网赚培训:先赚钱后收费的骗局
- 360搜索的建议
- 第六周上机任务(改错一)
- py 编译成 pyc pyo
- WPF ContextMenu Style