Mark24
记录灵感、技术、思考
铁路图(语法图)
语法图
语法图(Syntax diagrams )又叫铁路图(railroad diagrams)是描述形式文法的一种方式。它是巴科斯范式或扩展巴科斯范式的图形化表示。
规则
语法图(Syntax diagrams ) / 铁路图(railroad diagram)规则:
1.从左边界开始沿着轨道去到右边界。
2.沿途,你将在圆框中遇到的是字面量,在方块中遇到的是规则或者描述。
3.任何沿着轨道能走通的序列都是合法的。
4.任何不能沿着轨道走通的序列都是非法的。
5.每个末端只有一个竖条的铁路图允许在任何一对标记中间插入空白。而在末端有两个竖条的铁路图是不允许的。
每个图都有一个起始点和一个终点。这个图通过穿过其他的非终结符和终结符描绘了这些两点之间的可能路径。终结符用圆形区域表示,同时非终结符用方形区域表示。
举个例子
<term>::= <factor> | <factor> "*" <term>
<factor>::= <constant> | <variable> | "(" <expression> ")"
<variable>::= "x" | "y" | "z"
<constant>::= <digit> | <digit> <constant>
<digit>::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
这里的箭头也可简化为有弧度的线。圆角向内表示循环,向外则不循环。或者将左下弧理解为出口,右下弧理解为入口。
这里铁路图就很形象了,一个列车沿着线条行进,他只可能在光滑的轨迹上运行。尤其是循环处。他不可以倒车或者逆着铁轨行进。
参考: