我想为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
。有解决的办法吗?