ため、以下のyacc文法に登場するこれらの競合です:なぜ私は正常に動作し、次のXMLの文法を持つXML
program
: '<' '?'ID attribute_list '?''>'
root
;
root
: '<' ID attribute_list '>' node_list '<''/'ID'>'
;
node_list
: node_s
| node_list node_s
;
node_s
: node
| u_node
| ID
;
node
: '<' ID attribute_list '/''>'
;
u_node
:'<' ID attribute_list '>' node_list '<''/'ID'>'
|'<' ID attribute_list '>' '<''/'ID'>'
;
attribute_list
: attributes
|
;
attributes
: attribute
| attributes attribute
;
attribute
: ID ASSIGNOP '"' ID '"'
| ID ASSIGNOP '"' NUM '"'
| ID ASSIGNOP '"' NUM ID'"'
| ID ASSIGNOP '"' WEB '"'
;
私は空のルールを追加しましたので、私は空に考えます。node_listのための追加文を好きではありませんnode_s |
はなく、そうすることによって、私は、次の競合が
conflicts: 8 shift/reduce
prog1.y:40.10: warning: rule useless in parser due to conflicts: node_s: /* empty */
私は任意の助けをいただければ幸いなぜ、見当がつかない得ます。
大変お世話になりましたが、私は「 - verbose ay」についてはまだ分かりませんでしたが、これは今後役立つでしょう。 – mihajlv