跳到正文
Mernyx
打开菜单

Mermaid 铁路图速查表

一条文法规则,画出来。

这个页面上的每一张图都由Mernyx——macOS 上的原生 Mermaid 编辑器绘制。不是浏览器里跑的 Mermaid.js,而是 App 画布用的同一个渲染器。

一条规则

规则是名字、等号和定义,以分号结尾。terminal 是字面量,nonterminal 则是另一条规则。

railroad-beta
    rule = sequence(terminal("a"), nonterminal("other")) ;
    other = terminal("b") ;
一张有两个规则的铁路图:规则 rule 依次跑 a 和 other,other 则是 b。放大图表

一个选择

choice 把候选放在方括号里。规则本身不能叫 choice——这个名字被占用了。

railroad-beta
    alt = choice(terminal("a"), terminal("b")) ;
一张只有一条规则 alt 的铁路图,它给出 a 或 b 两种可能。放大图表

一个可选的部分

optional 把一段可以省掉的内容包起来。

railroad-beta
    rule = sequence(optional(nonterminal("tail")), terminal("head")) ;
    tail = terminal("t") ;
一张只有一条规则的铁路图,它的第一部分 tail 是可选的,第二部分是 head。放大图表

重复

oneOrMore 至少要有一个,zeroOrMore 一个也可以没有。两者都把要重复的那部分包起来。

railroad-beta
    digits = oneOrMore(terminal("0")) ;
    words = zeroOrMore(terminal("x")) ;
并排的两张铁路图:digits 重复 0 至少一次,words 重复 x 任意多次。放大图表

在 Mernyx 里画出来

打开一个 .mmd 文件,在画布上挪一个节点,源码跟着走。macOS 原生,不经过浏览器。

图表预览