语法图(铁路图)规则

语法图(syntax diagram),又名铁路图(railroad diagrams)。

简介

描述形式文法的一种方式。它是巴科斯范式或扩展巴科斯范式的图形化表示。
最早使用语法图的书包括Niklaus Wirth写的《Pascal User Manual》(语法图开始于47页)和《the Burroughs CANDE manual》。
在编译领域,像BNF和它的变体这样的文字式表示法都是首选的。BNF能很好的被编译器作者和编译器理解,但是不能很好的被这些语言的大部分用户理解。
语法图能更容易被大多数人理解。数据交换格式JSON之所以流行的部分原因就是它用语法图来表示。

准则

一个语法的表示法是由一套语法图组成。每个图定义了一个非终结符。
有一个主图通过下面方式定义了这门语言:
– 属于这门语言的每句话都必须在主图上描绘一个路径。
– 每个图都有一个起始点和一个终点。
– 这个图通过穿过其他的非终结符和终结符描绘了这些两点之间的可能路径。
– 终结符用圆形区域表示,同时非终结符用方形区域表示。

规则

  1. 从左边界开始沿着轨道去到右边界。
  2. 沿途,你将在圆框中遇到的是字面量,在方块中遇到的是规则或者描述。
  3. 任何沿着轨道能走通的序列都是合法的。
  4. 任何不能沿着轨道走通的序列都是非法的。
  5. 每个末端只有一个竖条的铁路图允许在任何一对标记中间插入空白。而在末端有两个竖条的铁路图是不允许的。

读图的时候,还有一些技巧:
– 圆角向内表示循环;
– 向外则不循环;
– 将左下弧理解为出口;
– 右下弧理解为入口。

发表评论

电子邮件地址不会被公开。 必填项已用*标注