Cleaned up the XML parser grammar.

This resolves all shift/reduce and reduce/reduce conflicts that were previously
present.
This commit is contained in:
Yorick Peterse 2014-05-29 01:37:19 +02:00
parent 49780e2b04
commit ead5c71fee
1 changed files with 9 additions and 6 deletions

View File

@ -21,15 +21,18 @@ options no_result_var
rule
document
: expressions { on_document(val[0]) }
| /* none */ { on_document }
;
expressions
: expressions expression { val[0] << val[1] }
| expression { val }
: expressions_ { val[0] }
| /* none */ { [] }
;
expressions_
: expressions_ expression { val[0] << val[1] }
| expression { val }
;
expression
: doctype
| cdata
@ -138,8 +141,8 @@ rule
# XML declarations
xmldecl
: T_XML_DECL_START T_XML_DECL_END { on_xml_decl }
| T_XML_DECL_START attributes T_XML_DECL_END { on_xml_decl(val[1]) }
: T_XML_DECL_START attributes T_XML_DECL_END { on_xml_decl(val[1]) }
;
# Plain text