语法图(铁路图)介绍
俗话说“⼀图胜千⾔”,⼈类为了加快阅读速度发明了各种各样的图⽤来表示抽象的信息。在⽇常的⽂档阅读中,如果对⽂档中使⽤到的图的规则不了解,便会造成似懂⾮懂的情况。⽇拱⼀图系列⽂章会讲述各种图的阅读规则,⽤来在⽇后阅读⽂档时规避因为对图的规则不了解⽽对⽂档内容似懂⾮懂的情况。
今天我们来认识语法图。
语法图(syntax diagrams)⼜叫铁路图(raliroad diagram)。语法图(或铁路图)是⼀种表示⽆上下⽂语法的⽅法。语法图以图形的形式替代了 Backus-Naur form、EBNF、Augmented Backus-Naurform 和其他基于⽂本的语法作为元语⾔。
语法图的由圆⻆框或圆框、矩形框、连接线与指向箭头组成。其中圆框表示终极符号(不⾔⾃明,不需要解释的内容),⽤⽅框表示⾮终极符号(在另⼀个语法图中有更详细定义的内容)。箭头表示可以选择的路径,当箭头回到之前的路径时,表示该处可循环。箭头也可以⽤圆弧来表示,能够平滑通过的路径为箭头⽅向。使⽤圆弧时,语法图看起来像铁路⼀样。
语法图的起点和终点在不同的⽂档中有不同的规范,需要根据⽂档确定其含义。阅读语法图时从起点按照从左往右,从上往下的顺序阅读。
下⾯是⼀些语法图的常规⽤法:
下⾯是ECMA-404中⽤来表示JSON对象的语法图。
参考资料:
今天我们来认识语法图。
语法图(syntax diagrams)⼜叫铁路图(raliroad diagram)。语法图(或铁路图)是⼀种表示⽆上下⽂语法的⽅法。语法图以图形的形式替代了 Backus-Naur form、EBNF、Augmented Backus-Naurform 和其他基于⽂本的语法作为元语⾔。
语法图的由圆⻆框或圆框、矩形框、连接线与指向箭头组成。其中圆框表示终极符号(不⾔⾃明,不需要解释的内容),⽤⽅框表示⾮终极符号(在另⼀个语法图中有更详细定义的内容)。箭头表示可以选择的路径,当箭头回到之前的路径时,表示该处可循环。箭头也可以⽤圆弧来表示,能够平滑通过的路径为箭头⽅向。使⽤圆弧时,语法图看起来像铁路⼀样。
语法图的起点和终点在不同的⽂档中有不同的规范,需要根据⽂档确定其含义。阅读语法图时从起点按照从左往右,从上往下的顺序阅读。
下⾯是⼀些语法图的常规⽤法:
图形 | 含义 |
---|---|
![]() |
必须指定值 A 、 B 和 C 。所需数值显示在语法图的主线上。 |
![]() |
您可以指定值 A 。可选值显示在语法图表主线的下⽅。 |
![]() |
值 A 、 B 和 C 是可选值,您必须指定其中⼀个。 |
![]() |
值 A 、 B 和 C 是备选值,您可以指定其中⼀个,或者⼀个都不选。 |
![]() |
这表明必须选择⼀个值(例如 A ,或 B ,或 C ),如果要选择另⼀个值,则必须在值之间使⽤逗号。 |
![]() |
您可以多次指定值 A 。本例中的分隔符是可选的。 |
![]() |
值 A 、 B 和 C 是备选值,您可以指定其中⼀个。如果您没有指定显示的任何值,则使⽤默认值 A (主⾏上⽅显示的值)。 |
![]() |
铁路⽚段 Name 与主铁路图分开显示。 |
下⾯是ECMA-404中⽤来表示JSON对象的语法图。

参考资料: