铁路图
(重定向自语法图)
铁路图 | |
---|---|
术语名称 | 铁路图 |
英语名称 | railroad diagram |
别名 | 语法图, syntax diagram |
铁路图(railroad diagram)或语法图(syntax diagram),指一种为上下文无关文法设计的图形化表示方式。 计算机领域中,铁路图常常作为一个直观化的补充,在 BNF 或其变体进行严谨描述同时使用,也用在教学中。
由于铁路图更多地出现在直观表示方式中,相对来说使用场合不会要求太严谨,很多基本图例的实际绘制方式因人而异。
图例
解释
铁路图是一个图表,将每个生成式绘制成一幅图,其结构是一张从左向右的有向图:
- 图的结点,代表起止点和文法符号。
- 起止点使用一个小的空心或实心的圆圈,或象征列车轨道端点的单、双竖线,或者像箭的尾部和头部的形状。
- 文法符号使用矩形的框和圆形、圆角矩形的框标记,内部写上对应的符号,一般使用圆形框表示只有一个字符的终结符,圆角矩形框表示多个字符的终结符,方形框表示非终结符。
- 但是这几种框也有人反过来使用,根据绘制者偏好可能有所区别。
- 图的有向边,代表连接的顺序。绘制直线或带有线的箭头。在图中可以按照线的方向进行,最后路径上的结点连在一起就是文法中允许的一个生成序列。
- 图中结点的入边一定从图形左侧先平滑地汇入一条线,出边一定从图形右侧画一条线再平滑地分开。根据平滑汇入或流出的方向,或者根据图上的箭头,可以区分边的方向。
基本图例
起止点、连线、终结符与非终结符。[1]
文法符号间的连接。
文法符号间的选择。
文法中的重复,使用 BNF 时一般写成递归形式。 但铁路图与 BNF 不同,递归规则会失去直观性,表达文法符号的重复时使用特殊的基本图例。
总体来说,所有的线条都是以从左到右方式排列。 通常主体向右的线条是选择,向下向右分叉,而需要回到左侧的线条对应重复,向上向左分叉,并在左侧汇入。
常见图形模式
以下内容是上述的组合,接近 EBNF 的语法。