#define OPMLARG_PDECL , mmd_engine * engine
#define OPMLARG_FETCH mmd_engine * engine = yypParser->engine
#define OPMLARG_STORE yypParser->engine = engine
-#define YYNSTATE 18
-#define YYNRULE 17
-#define YY_MAX_SHIFT 17
-#define YY_MIN_SHIFTREDUCE 33
-#define YY_MAX_SHIFTREDUCE 49
-#define YY_MIN_REDUCE 50
-#define YY_MAX_REDUCE 66
-#define YY_ERROR_ACTION 67
-#define YY_ACCEPT_ACTION 68
-#define YY_NO_ACTION 69
+#define YYNSTATE 19
+#define YYNRULE 19
+#define YY_MAX_SHIFT 18
+#define YY_MIN_SHIFTREDUCE 35
+#define YY_MAX_SHIFTREDUCE 53
+#define YY_MIN_REDUCE 54
+#define YY_MAX_REDUCE 72
+#define YY_ERROR_ACTION 73
+#define YY_ACCEPT_ACTION 74
+#define YY_NO_ACTION 75
/************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
-#define YY_ACTTAB_COUNT (57)
+#define YY_ACTTAB_COUNT (60)
static const YYACTIONTYPE yy_action[] = {
- /* 0 */ 1, 45, 14, 3, 49, 42, 1, 10, 14, 3,
- /* 10 */ 49, 1, 48, 14, 3, 49, 1, 47, 14, 3,
- /* 20 */ 49, 41, 1, 43, 14, 3, 49, 1, 2, 14,
- /* 30 */ 3, 49, 68, 17, 15, 6, 6, 7, 7, 8,
- /* 40 */ 5, 5, 12, 2, 40, 9, 13, 39, 11, 4,
- /* 50 */ 16, 38, 37, 36, 46, 35, 50,
+ /* 0 */ 1, 49, 15, 3, 53, 46, 1, 47, 15, 3,
+ /* 10 */ 53, 1, 52, 15, 3, 53, 1, 51, 15, 3,
+ /* 20 */ 53, 45, 1, 13, 15, 3, 53, 1, 16, 15,
+ /* 30 */ 3, 53, 74, 18, 11, 10, 2, 4, 9, 14,
+ /* 40 */ 6, 6, 7, 7, 5, 5, 8, 4, 43, 12,
+ /* 50 */ 2, 17, 39, 44, 42, 41, 40, 38, 50, 54,
};
static const YYCODETYPE yy_lookahead[] = {
- /* 0 */ 11, 12, 13, 14, 15, 10, 11, 1, 13, 14,
+ /* 0 */ 11, 12, 13, 14, 15, 10, 11, 24, 13, 14,
/* 10 */ 15, 11, 12, 13, 14, 15, 11, 12, 13, 14,
- /* 20 */ 15, 10, 11, 24, 13, 14, 15, 11, 9, 13,
- /* 30 */ 14, 15, 17, 18, 21, 23, 24, 23, 24, 5,
- /* 40 */ 23, 24, 22, 9, 8, 20, 21, 6, 7, 3,
- /* 50 */ 19, 6, 4, 4, 12, 2, 0,
+ /* 20 */ 15, 10, 11, 22, 13, 14, 15, 11, 21, 13,
+ /* 30 */ 14, 15, 17, 18, 19, 1, 9, 3, 20, 21,
+ /* 40 */ 23, 24, 23, 24, 23, 24, 5, 3, 6, 7,
+ /* 50 */ 9, 19, 2, 8, 6, 4, 4, 2, 12, 0,
};
-#define YY_SHIFT_USE_DFLT (57)
-#define YY_SHIFT_COUNT (17)
+#define YY_SHIFT_USE_DFLT (60)
+#define YY_SHIFT_COUNT (18)
#define YY_SHIFT_MIN (-11)
-#define YY_SHIFT_MAX (56)
+#define YY_SHIFT_MAX (59)
static const signed char yy_shift_ofst[] = {
- /* 0 */ 6, -11, -5, 16, 34, 0, 5, 11, 41, 19,
- /* 10 */ 46, 36, 45, 48, 42, 49, 53, 56,
+ /* 0 */ 34, -11, -5, 16, 41, 0, 5, 11, 42, 27,
+ /* 10 */ 44, 50, 45, 48, 51, 46, 52, 55, 59,
};
-#define YY_REDUCE_USE_DFLT (-2)
+#define YY_REDUCE_USE_DFLT (-18)
#define YY_REDUCE_COUNT (10)
-#define YY_REDUCE_MIN (-1)
-#define YY_REDUCE_MAX (31)
+#define YY_REDUCE_MIN (-17)
+#define YY_REDUCE_MAX (32)
static const signed char yy_reduce_ofst[] = {
- /* 0 */ 15, 12, 14, 17, 25, -1, -1, -1, 20, 13,
- /* 10 */ 31,
+ /* 0 */ 15, 17, 19, 21, 18, -17, -17, -17, 1, 7,
+ /* 10 */ 32,
};
static const YYACTIONTYPE yy_default[] = {
- /* 0 */ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- /* 10 */ 67, 67, 67, 67, 67, 67, 51, 67,
+ /* 0 */ 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+ /* 10 */ 73, 56, 73, 73, 73, 73, 73, 55, 73,
};
/********** End of lemon-generated parsing tables *****************************/
static const char *const yyRuleName[] = {
/* 0 */ "doc ::= doc_xml",
/* 1 */ "doc_xml ::= OPML_XML doc_opml",
- /* 2 */ "doc_xml ::= OPML_XML doc_opml OPML_WSNL",
- /* 3 */ "doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE",
- /* 4 */ "doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE",
- /* 5 */ "opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE",
- /* 6 */ "opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE",
- /* 7 */ "opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE",
- /* 8 */ "opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE",
- /* 9 */ "opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE",
- /* 10 */ "opml_outlines ::= opml_outlines opml_outline",
- /* 11 */ "opml_outlines ::= opml_outline",
- /* 12 */ "opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE",
- /* 13 */ "opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE",
- /* 14 */ "opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE",
- /* 15 */ "opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE",
- /* 16 */ "opml_outline ::= OPML_OUTLINE_SELF_CLOSE",
+ /* 2 */ "doc_xml ::= doc_opml",
+ /* 3 */ "doc_xml ::= OPML_XML doc_opml OPML_WSNL",
+ /* 4 */ "doc_xml ::= doc_opml OPML_WSNL",
+ /* 5 */ "doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE",
+ /* 6 */ "doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE",
+ /* 7 */ "opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE",
+ /* 8 */ "opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE",
+ /* 9 */ "opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE",
+ /* 10 */ "opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE",
+ /* 11 */ "opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE",
+ /* 12 */ "opml_outlines ::= opml_outlines opml_outline",
+ /* 13 */ "opml_outlines ::= opml_outline",
+ /* 14 */ "opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE",
+ /* 15 */ "opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE",
+ /* 16 */ "opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE",
+ /* 17 */ "opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE",
+ /* 18 */ "opml_outline ::= OPML_OUTLINE_SELF_CLOSE",
};
#endif /* NDEBUG */
} yyRuleInfo[] = {
{ 17, 1 },
{ 18, 2 },
+ { 18, 1 },
{ 18, 3 },
+ { 18, 2 },
{ 19, 4 },
{ 19, 3 },
{ 20, 3 },
default:
/* (1) doc_xml ::= OPML_XML doc_opml */
yytestcase(yyruleno == 1);
- /* (2) doc_xml ::= OPML_XML doc_opml OPML_WSNL */ yytestcase(yyruleno == 2);
- /* (3) doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 3);
- /* (4) doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 4);
- /* (5) opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE */ yytestcase(yyruleno == 5);
- /* (6) opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE */ yytestcase(yyruleno == 6);
- /* (7) opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE */ yytestcase(yyruleno == 7);
- /* (8) opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE */ yytestcase(yyruleno == 8);
- /* (9) opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE */ yytestcase(yyruleno == 9);
- /* (10) opml_outlines ::= opml_outlines opml_outline */ yytestcase(yyruleno == 10);
- /* (11) opml_outlines ::= opml_outline (OPTIMIZED OUT) */ assert(yyruleno != 11);
- /* (12) opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 12);
- /* (13) opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 13);
- /* (14) opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 14);
- /* (15) opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 15);
- /* (16) opml_outline ::= OPML_OUTLINE_SELF_CLOSE */ yytestcase(yyruleno == 16);
+ /* (2) doc_xml ::= doc_opml */ yytestcase(yyruleno == 2);
+ /* (3) doc_xml ::= OPML_XML doc_opml OPML_WSNL */ yytestcase(yyruleno == 3);
+ /* (4) doc_xml ::= doc_opml OPML_WSNL */ yytestcase(yyruleno == 4);
+ /* (5) doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 5);
+ /* (6) doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 6);
+ /* (7) opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE */ yytestcase(yyruleno == 7);
+ /* (8) opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE */ yytestcase(yyruleno == 8);
+ /* (9) opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE */ yytestcase(yyruleno == 9);
+ /* (10) opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE */ yytestcase(yyruleno == 10);
+ /* (11) opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE */ yytestcase(yyruleno == 11);
+ /* (12) opml_outlines ::= opml_outlines opml_outline */ yytestcase(yyruleno == 12);
+ /* (13) opml_outlines ::= opml_outline (OPTIMIZED OUT) */ assert(yyruleno != 13);
+ /* (14) opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 14);
+ /* (15) opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 15);
+ /* (16) opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 16);
+ /* (17) opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 17);
+ /* (18) opml_outline ::= OPML_OUTLINE_SELF_CLOSE */ yytestcase(yyruleno == 18);
break;
/********** End reduce actions ************************************************/
};
State 0:
doc ::= * doc_xml
doc_xml ::= * OPML_XML doc_opml
+ doc_xml ::= * doc_opml
doc_xml ::= * OPML_XML doc_opml OPML_WSNL
+ doc_xml ::= * doc_opml OPML_WSNL
+ doc_opml ::= * OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE
+ doc_opml ::= * OPML_OPML_OPEN opml_body OPML_OPML_CLOSE
OPML_XML shift 10
+ OPML_OPML_OPEN shift 4
doc accept
- doc_xml shift 17
+ doc_xml shift 18
+ doc_opml shift 11
State 1:
opml_outlines ::= * opml_outlines opml_outline
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_CLOSE shift-reduce 12 opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_CLOSE shift-reduce 14 opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
opml_outlines shift 6
opml_outline shift 6 /* because opml_outline==opml_outlines */
opml_outline ::= * OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
- OPML_BODY_CLOSE shift-reduce 9 opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE
+ OPML_BODY_CLOSE shift-reduce 11 opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
opml_outlines shift 7
opml_outline shift 7 /* because opml_outline==opml_outlines */
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
opml_outlines shift 5
opml_outline shift 5 /* because opml_outline==opml_outlines */
OPML_HEAD_OPEN shift 8
OPML_BODY_OPEN shift 2
opml_header shift 9
- opml_body shift 13
+ opml_body shift 14
State 5:
opml_outlines ::= opml_outlines * opml_outline
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_CLOSE shift-reduce 15 opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_CLOSE shift-reduce 17 opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
- opml_outline shift-reduce 10 opml_outlines ::= opml_outlines opml_outline
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ opml_outline shift-reduce 12 opml_outlines ::= opml_outlines opml_outline
State 6:
opml_outlines ::= opml_outlines * opml_outline
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_CLOSE shift-reduce 14 opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
- opml_outline shift-reduce 10 opml_outlines ::= opml_outlines opml_outline
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ opml_outline shift-reduce 12 opml_outlines ::= opml_outlines opml_outline
State 7:
opml_body ::= OPML_BODY_OPEN opml_outlines * OPML_BODY_CLOSE
opml_outline ::= * OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE
opml_outline ::= * OPML_OUTLINE_SELF_CLOSE
- OPML_BODY_CLOSE shift-reduce 8 opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE
+ OPML_BODY_CLOSE shift-reduce 10 opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE
OPML_OUTLINE_OPEN shift 1
- OPML_OUTLINE_PREAMBLE shift 14
+ OPML_OUTLINE_PREAMBLE shift 15
OPML_OUTLINE_METADATA shift 3
- OPML_OUTLINE_SELF_CLOSE shift-reduce 16 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
- opml_outline shift-reduce 10 opml_outlines ::= opml_outlines opml_outline
+ OPML_OUTLINE_SELF_CLOSE shift-reduce 18 opml_outline ::= OPML_OUTLINE_SELF_CLOSE
+ opml_outline shift-reduce 12 opml_outlines ::= opml_outlines opml_outline
State 8:
opml_header ::= OPML_HEAD_OPEN * opml_title OPML_HEAD_CLOSE
opml_header ::= OPML_HEAD_OPEN * OPML_HEAD_CLOSE
opml_title ::= * OPML_TITLE_OPEN OPML_TITLE_CLOSE
- OPML_HEAD_CLOSE shift-reduce 6 opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE
- OPML_TITLE_OPEN shift 11
- opml_title shift 12
+ OPML_HEAD_CLOSE shift-reduce 8 opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE
+ OPML_TITLE_OPEN shift 12
+ opml_title shift 13
State 9:
doc_opml ::= OPML_OPML_OPEN opml_header * opml_body OPML_OPML_CLOSE
opml_body ::= * OPML_BODY_OPEN OPML_BODY_CLOSE
OPML_BODY_OPEN shift 2
- opml_body shift 15
+ opml_body shift 16
State 10:
doc_xml ::= OPML_XML * doc_opml
doc_opml ::= * OPML_OPML_OPEN opml_body OPML_OPML_CLOSE
OPML_OPML_OPEN shift 4
- doc_opml shift 16
+ doc_opml shift 17
State 11:
- opml_title ::= OPML_TITLE_OPEN * OPML_TITLE_CLOSE
+ (2) doc_xml ::= doc_opml *
+ doc_xml ::= doc_opml * OPML_WSNL
- OPML_TITLE_CLOSE shift-reduce 7 opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE
+ OPML_WSNL shift-reduce 4 doc_xml ::= doc_opml OPML_WSNL
+ {default} reduce 2 doc_xml ::= doc_opml
State 12:
- opml_header ::= OPML_HEAD_OPEN opml_title * OPML_HEAD_CLOSE
+ opml_title ::= OPML_TITLE_OPEN * OPML_TITLE_CLOSE
- OPML_HEAD_CLOSE shift-reduce 5 opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE
+ OPML_TITLE_CLOSE shift-reduce 9 opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE
State 13:
- doc_opml ::= OPML_OPML_OPEN opml_body * OPML_OPML_CLOSE
+ opml_header ::= OPML_HEAD_OPEN opml_title * OPML_HEAD_CLOSE
- OPML_OPML_CLOSE shift-reduce 4 doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE
+ OPML_HEAD_CLOSE shift-reduce 7 opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE
State 14:
- opml_outline ::= OPML_OUTLINE_PREAMBLE * OPML_OUTLINE_CLOSE
+ doc_opml ::= OPML_OPML_OPEN opml_body * OPML_OPML_CLOSE
- OPML_OUTLINE_CLOSE shift-reduce 13 opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE
+ OPML_OPML_CLOSE shift-reduce 6 doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE
State 15:
- doc_opml ::= OPML_OPML_OPEN opml_header opml_body * OPML_OPML_CLOSE
+ opml_outline ::= OPML_OUTLINE_PREAMBLE * OPML_OUTLINE_CLOSE
- OPML_OPML_CLOSE shift-reduce 3 doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE
+ OPML_OUTLINE_CLOSE shift-reduce 15 opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE
State 16:
+ doc_opml ::= OPML_OPML_OPEN opml_header opml_body * OPML_OPML_CLOSE
+
+ OPML_OPML_CLOSE shift-reduce 5 doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE
+
+State 17:
(1) doc_xml ::= OPML_XML doc_opml *
doc_xml ::= OPML_XML doc_opml * OPML_WSNL
- OPML_WSNL shift-reduce 2 doc_xml ::= OPML_XML doc_opml OPML_WSNL
+ OPML_WSNL shift-reduce 3 doc_xml ::= OPML_XML doc_opml OPML_WSNL
{default} reduce 1 doc_xml ::= OPML_XML doc_opml
-State 17:
+State 18:
(0) doc ::= doc_xml *
$ reduce 0 doc ::= doc_xml
14: OPML_OUTLINE_METADATA
15: OPML_OUTLINE_SELF_CLOSE
16: error:
- 17: doc: OPML_XML
- 18: doc_xml: OPML_XML
+ 17: doc: OPML_XML OPML_OPML_OPEN
+ 18: doc_xml: OPML_XML OPML_OPML_OPEN
19: doc_opml: OPML_OPML_OPEN
20: opml_header: OPML_HEAD_OPEN
21: opml_body: OPML_BODY_OPEN