bnf - 为 XML 编写 BNF 语法
问题描述
我想为一个 XML 程序写一个 BNF 语法,但是我有一些问题。我正在尝试为两个元素编写规则,Worksheet
并且Table
. Worksheet
具有可选Table
元素、必需特征Name
和可选特征Protected
。另一方面,Table
具有可选Column
和Row
元素,如果同时存在和可选特征,则必须与此序列一起出现ExpandedColCount
,ExpandedRowCount
并且StyleID
。我的规则是:
Worksheet ::= Name Worksheet
| Name Protected Worksheet
| Worksheet Table Worksheet
| Protected Name Worksheet
|
;
Table ::= ExpandedColumnCount Table
| ExpandedRowCount Table
| StyleId Table
| Column Row Table
| Column Table
| Row Table
|
;
问题是第一条规则也接受Table
,Table Name
而第二条规则接受Row Column
, Column StyleID
。有什么办法解决这个问题吗?
解决方案
推荐阅读
- java - 如何在不使用同步(无锁序列计数器实现)的情况下修复竞争条件?
- mpi - mpi4py Split_type 使用 openmpi 的 OMPI_COMM_TYPE_SOCKET
- sql - 如何获取 SQL Server 中现有日期后 4 周/28 天内的值
- sql - 从请求 oracle 中删除所有进一步的词“信息”
- oracle - 重复给定数量的字符串并在 oracle 中计数
- python - 当我尝试从列表中删除一个字符串时它不起作用
- python - 为什么这个函数不返回 f pd.DataFrames?Python
- wpf - WPF如何做这个缩进?
- javascript - MutationObserver - 得到“TypeError: MutationObserver.observe: Argument 1 does not implement interface Node.”
- simulation - 如何使用 selectOutput 块创建多个卸货码头?