跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
GSXAB的知识库
搜索
搜索
外观
登录
个人工具
登录
Advertising:
查看“︁铁路图”︁的源代码
页面
讨论
简体中文
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
刷新
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
铁路图
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[分类:形式语言]] [[分类:语法分析]] {{InfoBox |name=铁路图 |eng_name=railroad diagram |aliases=语法图,syntax diagram }} '''铁路图'''('''railroad diagram''')或'''语法图'''('''syntax diagram'''),指一种为[[上下文无关文法]]设计的图形化表示方式。 计算机领域中,铁路图常常作为一个直观化的补充,在 BNF 或其变体进行严谨描述同时使用,也用在教学中。 由于铁路图更多地出现在直观表示方式中,相对来说使用场合不会要求太严谨,很多基本图例的实际绘制方式因人而异。 == 图例 == === 解释 === 铁路图是一个图表,将每个[[生成式]]绘制成一幅图,其结构是一张从左向右的[[有向图]]: * 图的结点,代表起止点和文法符号。 ** 起止点使用一个小的空心或实心的圆圈,或象征列车轨道端点的单、双竖线,或者像箭的尾部和头部的形状。 ** 文法符号使用矩形的框和圆形、圆角矩形的框标记,内部写上对应的符号,一般使用圆形框表示只有一个字符的终结符,圆角矩形框表示多个字符的终结符,方形框表示非终结符。 *** 但是这几种框也有人反过来使用,根据绘制者偏好可能有所区别。 * 图的有向边,代表连接的顺序。绘制直线或带有线的箭头。在图中可以按照线的方向进行,最后路径上的结点连在一起就是文法中允许的一个生成序列。 * 图中结点的入边一定从图形左侧先平滑地汇入一条线,出边一定从图形右侧画一条线再平滑地分开。根据平滑汇入或流出的方向,或者根据图上的箭头,可以区分边的方向。 === 基本图例 === 起止点、连线、终结符与非终结符。<ref>以下图片使用 PlantUML 绘制。示例来自 [https://plantuml.com/zh/ebnf]。</ref> {{GiteaSvg|plantuml/plantuml_ebnf_basic}} 文法符号间的连接。 {{GiteaSvg|plantuml/plantuml_ebnf_concat}} 文法符号间的选择。 {{GiteaSvg|plantuml/plantuml_ebnf_alter}} 文法中的重复,使用 BNF 时一般写成递归形式。 但铁路图与 BNF 不同,递归规则会失去直观性,表达文法符号的重复时使用特殊的基本图例。 {{GiteaSvg|plantuml/plantuml_ebnf_one_or_more}} 总体来说,所有的线条都是以从左到右方式排列。 通常主体向右的线条是选择,向下向右分叉,而需要回到左侧的线条对应重复,向上向左分叉,并在左侧汇入。 === 常见图形模式 === 以下内容是上述的组合,接近 [[EBNF]] 的语法。 {{GiteaSvg|plantuml/plantuml_ebnf_multiplier}}
返回
铁路图
。
Advertising: