]> granicus.if.org Git - multimarkdown/commitdiff
ADDED: Add support for tables without header; test for table with multiple header...
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 12 Sep 2017 19:46:28 +0000 (15:46 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 12 Sep 2017 19:46:28 +0000 (15:46 -0400)
Sources/libMultiMarkdown/parser.c
Sources/libMultiMarkdown/parser.out
Sources/libMultiMarkdown/parser.y
tests/MMD6Tests/Tables.fodt
tests/MMD6Tests/Tables.html
tests/MMD6Tests/Tables.htmlc
tests/MMD6Tests/Tables.tex
tests/MMD6Tests/Tables.text

index 40cd95ab8b12720bf73a9801504f92333ae193e0..cc5a01ac8269502afcef8795fc53561591e754a5 100644 (file)
@@ -107,16 +107,16 @@ typedef union {
 #define ParseARG_FETCH  mmd_engine * engine  = yypParser->engine 
 #define ParseARG_STORE yypParser->engine  = engine 
 #define YYFALLBACK 1
-#define YYNSTATE             46
-#define YYNRULE              155
-#define YY_MAX_SHIFT         45
-#define YY_MIN_SHIFTREDUCE   157
-#define YY_MAX_SHIFTREDUCE   311
-#define YY_MIN_REDUCE        312
-#define YY_MAX_REDUCE        466
-#define YY_ERROR_ACTION      467
-#define YY_ACCEPT_ACTION     468
-#define YY_NO_ACTION         469
+#define YYNSTATE             47
+#define YYNRULE              156
+#define YY_MAX_SHIFT         46
+#define YY_MIN_SHIFTREDUCE   158
+#define YY_MAX_SHIFTREDUCE   313
+#define YY_MIN_REDUCE        314
+#define YY_MAX_REDUCE        469
+#define YY_ERROR_ACTION      470
+#define YY_ACCEPT_ACTION     471
+#define YY_NO_ACTION         472
 /************* End control #defines *******************************************/
 
 /* Define the yytestcase() macro to be a no-op if is not already defined
@@ -190,39 +190,39 @@ typedef union {
 *********** Begin parsing tables **********************************************/
 #define YY_ACTTAB_COUNT (321)
 static const YYACTIONTYPE yy_action[] = {
- /*     0 */   468,    1,  159,   37,  170,  171,  172,  173,  174,  175,
- /*    10 */    44,  177,   29,  179,   32,   41,   40,   30,   14,  186,
- /*    20 */   187,  188,   43,  244,   13,   13,   32,   43,  239,  240,
- /*    30 */   247,   38,   38,   27,  268,   26,   25,  216,   28,  212,
- /*    40 */    41,   40,  209,    8,  221,   42,  261,   15,   15,  312,
- /*    50 */   166,  306,  310,   45,    5,   16,  254,  255,  306,  310,
- /*    60 */   260,  285,  160,  161,  162,  163,  164,  165,  259,    7,
- /*    70 */     6,   17,    4,    3,    2,   18,  168,    5,  300,  223,
- /*    80 */   270,  273,  276,  271,  274,  277,  304,  268,  291,  166,
- /*    90 */    39,   39,   45,  236,   16,  254,  255,  306,  310,   19,
- /*   100 */   285,  160,  161,  162,  163,  164,  165,  259,    7,    6,
- /*   110 */    17,    4,    3,    2,   18,  168,    5,  300,  250,  270,
- /*   120 */   273,  276,  271,  274,  277,  304,  268,  291,  158,   37,
- /*   130 */   170,  171,  172,  173,  174,  175,   44,  177,   29,  179,
- /*   140 */    32,   41,   40,   30,   14,  186,  187,  188,  306,  310,
- /*   150 */   251,  268,   32,  224,  254,  255,  250,   38,   38,   27,
- /*   160 */   189,   26,   25,  184,   28,  302,   41,   40,  281,    8,
- /*   170 */   195,   42,  278,   15,   15,   33,   33,  245,  280,  282,
- /*   180 */   281,   34,   34,    5,  278,  205,   35,   35,  251,  301,
- /*   190 */   280,  282,   12,   43,   12,   13,   13,  202,  217,  219,
- /*   200 */   215,  218,  220,    6,  284,  279,  283,   36,   36,   31,
- /*   210 */   213,  210,  211,  214,   31,  281,  284,  279,  283,  278,
- /*   220 */    31,    9,    9,   20,   20,  280,  282,  198,  198,  190,
- /*   230 */   243,  242,    9,    9,   20,   20,  231,    7,  197,  197,
- /*   240 */   226,  243,   31,  254,  255,  206,  207,  208,  205,  237,
- /*   250 */    31,  284,  279,  283,    9,    9,   20,   20,   31,  314,
- /*   260 */   196,  196,    9,    9,   20,   20,  314,   31,  203,  203,
- /*   270 */    10,   10,   22,   22,  225,  232,   31,  314,  314,   11,
- /*   280 */    11,   23,   23,  295,  227,   31,  314,  292,  314,  189,
- /*   290 */    21,   21,  288,  294,  296,  314,  286,  314,  189,   24,
- /*   300 */    24,  314,  287,  289,  314,  314,  314,  314,  314,  314,
- /*   310 */   314,  314,  314,  314,  314,  314,  314,  314,  314,  222,
- /*   320 */   293,
+ /*     0 */   471,    1,  160,   37,  171,  172,  173,  174,  175,  176,
+ /*    10 */    45,  178,   29,  180,   32,   41,   40,   30,   14,  187,
+ /*    20 */   188,  189,   44,  246,   13,   13,   32,   44,  240,  241,
+ /*    30 */   249,   38,   38,   27,  270,   26,   25,  217,   28,  213,
+ /*    40 */    41,   40,  210,    8,  222,   43,  263,   15,   15,  314,
+ /*    50 */   167,  308,  312,   46,    5,   16,  256,  257,  308,   42,
+ /*    60 */   262,  287,  161,  162,  163,  164,  165,  166,  261,    7,
+ /*    70 */     6,   17,    4,    3,    2,   18,  169,    5,  302,  224,
+ /*    80 */   272,  275,  278,  273,  276,  279,  306,  270,  293,  167,
+ /*    90 */    39,   39,   46,  237,   16,  256,  257,  308,   42,   19,
+ /*   100 */   287,  161,  162,  163,  164,  165,  166,  261,    7,    6,
+ /*   110 */    17,    4,    3,    2,   18,  169,    5,  302,  252,  272,
+ /*   120 */   275,  278,  273,  276,  279,  306,  270,  293,  159,   37,
+ /*   130 */   171,  172,  173,  174,  175,  176,   45,  178,   29,  180,
+ /*   140 */    32,   41,   40,   30,   14,  187,  188,  189,  308,  312,
+ /*   150 */   253,  270,   32,  225,  256,  257,  252,   38,   38,   27,
+ /*   160 */   190,   26,   25,  185,   28,  304,   41,   40,  283,    8,
+ /*   170 */   196,   43,  280,   15,   15,   33,   33,  247,  282,  284,
+ /*   180 */   283,   34,   34,    5,  280,  206,   35,   35,  253,  303,
+ /*   190 */   282,  284,   12,   44,   12,   13,   13,  203,  218,  220,
+ /*   200 */   216,  219,  221,    6,  286,  281,  285,   36,   36,   31,
+ /*   210 */   214,  211,  212,  215,   31,  283,  286,  281,  285,  280,
+ /*   220 */    31,    9,    9,   20,   20,  282,  284,  199,  199,  191,
+ /*   230 */   468,  468,    9,    9,   20,   20,  245,  243,  198,  198,
+ /*   240 */     7,  232,   31,  256,  257,  207,  208,  209,  245,  227,
+ /*   250 */    31,  286,  281,  285,    9,    9,   20,   20,   31,  206,
+ /*   260 */   197,  197,    9,    9,   20,   20,  238,   31,  204,  204,
+ /*   270 */    10,   10,   22,   22,  226,  233,   31,  316,  316,   11,
+ /*   280 */    11,   23,   23,  297,  228,   31,  316,  294,  316,  190,
+ /*   290 */    21,   21,  290,  296,  298,  316,  288,  316,  190,   24,
+ /*   300 */    24,  316,  289,  291,  316,  316,  316,  316,  316,  316,
+ /*   310 */   316,  316,  316,  316,  316,  316,  316,  316,  316,  223,
+ /*   320 */   295,
 };
 static const YYCODETYPE yy_lookahead[] = {
  /*     0 */    41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
@@ -248,10 +248,10 @@ static const YYCODETYPE yy_lookahead[] = {
  /*   200 */    33,   34,   35,   21,   37,   38,   39,   63,   64,   51,
  /*   210 */    31,   32,   33,   34,   51,    1,   37,   38,   39,    5,
  /*   220 */    51,   63,   64,   65,   66,   11,   12,   69,   70,   66,
- /*   230 */     9,   10,   63,   64,   65,   66,   82,   20,   69,   70,
- /*   240 */    81,    9,   51,    7,    8,   31,   32,   33,   38,   29,
- /*   250 */    51,   37,   38,   39,   63,   64,   65,   66,   51,   90,
- /*   260 */    69,   70,   63,   64,   65,   66,   90,   51,   69,   70,
+ /*   230 */     2,    3,   63,   64,   65,   66,    9,   10,   69,   70,
+ /*   240 */    20,   82,   51,    7,    8,   31,   32,   33,    9,   81,
+ /*   250 */    51,   37,   38,   39,   63,   64,   65,   66,   51,   38,
+ /*   260 */    69,   70,   63,   64,   65,   66,   29,   51,   69,   70,
  /*   270 */    63,   64,   65,   66,   38,   68,   51,   90,   90,   63,
  /*   280 */    64,   65,   66,    1,   68,   51,   90,    5,   90,   64,
  /*   290 */    65,   66,    1,   11,   12,   90,    5,   90,   64,   65,
@@ -260,7 +260,7 @@ static const YYCODETYPE yy_lookahead[] = {
  /*   320 */    38,
 };
 #define YY_SHIFT_USE_DFLT (321)
-#define YY_SHIFT_COUNT    (45)
+#define YY_SHIFT_COUNT    (46)
 #define YY_SHIFT_MIN      (-4)
 #define YY_SHIFT_MAX      (291)
 static const short yy_shift_ofst[] = {
@@ -268,7 +268,7 @@ static const short yy_shift_ofst[] = {
  /*    10 */   113,  113,   42,  139,   26,   42,  151,  151,  151,  151,
  /*    20 */    -4,   -4,   -4,   -4,   -4,  167,  179,  214,  282,  291,
  /*    30 */   160,  147,  236,  151,  151,  151,  151,   41,  155,  155,
- /*    40 */   182,  217,  221,  232,  210,  220,
+ /*    40 */   182,  220,  228,  227,  239,  221,  237,
 };
 #define YY_REDUCE_USE_DFLT (-65)
 #define YY_REDUCE_COUNT (41)
@@ -279,14 +279,14 @@ static const short yy_reduce_ofst[] = {
  /*    10 */   234,  234,  -64,  -59,   18,  -59,  112,  118,  123,  144,
  /*    20 */   163,  163,  163,  163,  163,  -38,  -36,  -33,   -1,  -34,
  /*    30 */    10,   32,   86,   96,   96,   96,   96,   99,  124,  124,
- /*    40 */   154,  159,
+ /*    40 */   159,  168,
 };
 static const YYACTIONTYPE yy_default[] = {
- /*     0 */   467,  467,  419,  418,  417,  359,  390,  385,  460,  411,
- /*    10 */   388,  383,  396,  401,  340,  403,  458,  421,  420,  347,
- /*    20 */   413,  349,  389,  384,  348,  430,  427,  424,  445,  333,
- /*    30 */   338,  408,  335,  393,  355,  354,  346,  324,  466,  356,
- /*    40 */   337,  336,  464,  464,  331,  322,
+ /*     0 */   470,  470,  422,  421,  420,  361,  392,  387,  463,  414,
+ /*    10 */   390,  385,  398,  404,  342,  406,  461,  424,  423,  349,
+ /*    20 */   416,  351,  391,  386,  350,  433,  430,  427,  448,  335,
+ /*    30 */   340,  411,  337,  395,  357,  356,  348,  326,  469,  358,
+ /*    40 */   339,  338,  400,  467,  467,  333,  324,
 };
 /********** End of lemon-generated parsing tables *****************************/
 
@@ -544,75 +544,76 @@ static const char *const yyRuleName[] = {
  /*  83 */ "setext_2 ::= para LINE_SETEXT_2",
  /*  84 */ "table ::= table_header table_body",
  /*  85 */ "table_header ::= header_rows LINE_TABLE_SEPARATOR",
- /*  86 */ "header_rows ::= header_rows LINE_TABLE",
- /*  87 */ "table_body ::= table_body table_section",
- /*  88 */ "table_section ::= all_rows LINE_EMPTY",
- /*  89 */ "table_section ::= all_rows",
- /*  90 */ "all_rows ::= all_rows row",
- /*  91 */ "para ::= all_rows",
- /*  92 */ "chunk ::= chunk_line",
- /*  93 */ "chunk_line ::= LINE_CONTINUATION",
- /*  94 */ "chunk_line ::= LINE_STOP_COMMENT",
- /*  95 */ "nested_chunks ::= nested_chunk",
- /*  96 */ "nested_chunk ::= empty",
- /*  97 */ "indented_line ::= LINE_INDENTED_TAB",
- /*  98 */ "indented_line ::= LINE_INDENTED_SPACE",
- /*  99 */ "opt_ext_chunk ::= chunk",
- /* 100 */ "tail ::= opt_ext_chunk",
- /* 101 */ "tail ::= nested_chunks",
- /* 102 */ "blockquote ::= LINE_BLOCKQUOTE",
- /* 103 */ "quote_line ::= LINE_BLOCKQUOTE",
- /* 104 */ "quote_line ::= LINE_CONTINUATION",
- /* 105 */ "def_citation ::= LINE_DEF_CITATION",
- /* 106 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
- /* 107 */ "def_glossary ::= LINE_DEF_GLOSSARY",
- /* 108 */ "def_link ::= LINE_DEF_LINK",
- /* 109 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
- /* 110 */ "defs ::= def",
- /* 111 */ "empty ::= LINE_EMPTY",
- /* 112 */ "fenced_block ::= fenced_3",
- /* 113 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
- /* 114 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
- /* 115 */ "fenced_block ::= fenced_4",
- /* 116 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
- /* 117 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
- /* 118 */ "fenced_block ::= fenced_5",
- /* 119 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
- /* 120 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
- /* 121 */ "fenced_line ::= LINE_CONTINUATION",
- /* 122 */ "fenced_line ::= LINE_EMPTY",
- /* 123 */ "fenced_line ::= LINE_FALLBACK",
- /* 124 */ "fenced_line ::= LINE_HR",
- /* 125 */ "fenced_line ::= LINE_HTML",
- /* 126 */ "fenced_line ::= LINE_START_COMMENT",
- /* 127 */ "fenced_line ::= LINE_STOP_COMMENT",
- /* 128 */ "html_block ::= LINE_HTML",
- /* 129 */ "html_line ::= LINE_CONTINUATION",
- /* 130 */ "html_line ::= LINE_FALLBACK",
- /* 131 */ "html_line ::= LINE_HR",
- /* 132 */ "html_line ::= LINE_HTML",
- /* 133 */ "html_com_block ::= html_comment",
- /* 134 */ "html_comment ::= LINE_START_COMMENT",
- /* 135 */ "comment_line ::= LINE_CONTINUATION",
- /* 136 */ "comment_line ::= LINE_EMPTY",
- /* 137 */ "comment_line ::= LINE_FALLBACK",
- /* 138 */ "comment_line ::= LINE_HR",
- /* 139 */ "comment_line ::= LINE_HTML",
- /* 140 */ "indented_code ::= indented_line",
- /* 141 */ "list_bullet ::= item_bullet",
- /* 142 */ "list_enum ::= item_enum",
- /* 143 */ "meta_block ::= LINE_META",
- /* 144 */ "meta_line ::= LINE_META",
- /* 145 */ "meta_line ::= LINE_CONTINUATION",
- /* 146 */ "para ::= LINE_PLAIN",
- /* 147 */ "para ::= LINE_STOP_COMMENT",
- /* 148 */ "table ::= table_header",
- /* 149 */ "header_rows ::= LINE_TABLE",
- /* 150 */ "table_body ::= table_section",
- /* 151 */ "all_rows ::= row",
- /* 152 */ "row ::= header_rows",
- /* 153 */ "row ::= LINE_TABLE_SEPARATOR",
- /* 154 */ "para ::= defs",
+ /*  86 */ "table_header ::= LINE_TABLE_SEPARATOR",
+ /*  87 */ "header_rows ::= header_rows LINE_TABLE",
+ /*  88 */ "table_body ::= table_body table_section",
+ /*  89 */ "table_section ::= all_rows LINE_EMPTY",
+ /*  90 */ "table_section ::= all_rows",
+ /*  91 */ "all_rows ::= all_rows row",
+ /*  92 */ "para ::= all_rows",
+ /*  93 */ "chunk ::= chunk_line",
+ /*  94 */ "chunk_line ::= LINE_CONTINUATION",
+ /*  95 */ "chunk_line ::= LINE_STOP_COMMENT",
+ /*  96 */ "nested_chunks ::= nested_chunk",
+ /*  97 */ "nested_chunk ::= empty",
+ /*  98 */ "indented_line ::= LINE_INDENTED_TAB",
+ /*  99 */ "indented_line ::= LINE_INDENTED_SPACE",
+ /* 100 */ "opt_ext_chunk ::= chunk",
+ /* 101 */ "tail ::= opt_ext_chunk",
+ /* 102 */ "tail ::= nested_chunks",
+ /* 103 */ "blockquote ::= LINE_BLOCKQUOTE",
+ /* 104 */ "quote_line ::= LINE_BLOCKQUOTE",
+ /* 105 */ "quote_line ::= LINE_CONTINUATION",
+ /* 106 */ "def_citation ::= LINE_DEF_CITATION",
+ /* 107 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
+ /* 108 */ "def_glossary ::= LINE_DEF_GLOSSARY",
+ /* 109 */ "def_link ::= LINE_DEF_LINK",
+ /* 110 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
+ /* 111 */ "defs ::= def",
+ /* 112 */ "empty ::= LINE_EMPTY",
+ /* 113 */ "fenced_block ::= fenced_3",
+ /* 114 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
+ /* 115 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
+ /* 116 */ "fenced_block ::= fenced_4",
+ /* 117 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
+ /* 118 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
+ /* 119 */ "fenced_block ::= fenced_5",
+ /* 120 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
+ /* 121 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
+ /* 122 */ "fenced_line ::= LINE_CONTINUATION",
+ /* 123 */ "fenced_line ::= LINE_EMPTY",
+ /* 124 */ "fenced_line ::= LINE_FALLBACK",
+ /* 125 */ "fenced_line ::= LINE_HR",
+ /* 126 */ "fenced_line ::= LINE_HTML",
+ /* 127 */ "fenced_line ::= LINE_START_COMMENT",
+ /* 128 */ "fenced_line ::= LINE_STOP_COMMENT",
+ /* 129 */ "html_block ::= LINE_HTML",
+ /* 130 */ "html_line ::= LINE_CONTINUATION",
+ /* 131 */ "html_line ::= LINE_FALLBACK",
+ /* 132 */ "html_line ::= LINE_HR",
+ /* 133 */ "html_line ::= LINE_HTML",
+ /* 134 */ "html_com_block ::= html_comment",
+ /* 135 */ "html_comment ::= LINE_START_COMMENT",
+ /* 136 */ "comment_line ::= LINE_CONTINUATION",
+ /* 137 */ "comment_line ::= LINE_EMPTY",
+ /* 138 */ "comment_line ::= LINE_FALLBACK",
+ /* 139 */ "comment_line ::= LINE_HR",
+ /* 140 */ "comment_line ::= LINE_HTML",
+ /* 141 */ "indented_code ::= indented_line",
+ /* 142 */ "list_bullet ::= item_bullet",
+ /* 143 */ "list_enum ::= item_enum",
+ /* 144 */ "meta_block ::= LINE_META",
+ /* 145 */ "meta_line ::= LINE_META",
+ /* 146 */ "meta_line ::= LINE_CONTINUATION",
+ /* 147 */ "para ::= LINE_PLAIN",
+ /* 148 */ "para ::= LINE_STOP_COMMENT",
+ /* 149 */ "table ::= table_header",
+ /* 150 */ "header_rows ::= LINE_TABLE",
+ /* 151 */ "table_body ::= table_section",
+ /* 152 */ "all_rows ::= row",
+ /* 153 */ "row ::= header_rows",
+ /* 154 */ "row ::= LINE_TABLE_SEPARATOR",
+ /* 155 */ "para ::= defs",
 };
 #endif /* NDEBUG */
 
@@ -1047,6 +1048,7 @@ static const struct {
   { 61, 2 },
   { 62, 2 },
   { 84, 2 },
+  { 84, 1 },
   { 86, 2 },
   { 85, 2 },
   { 87, 2 },
@@ -1349,9 +1351,9 @@ static void yy_reduce(
       case 82: /* setext_1 ::= para LINE_SETEXT_1 */ yytestcase(yyruleno==82);
       case 83: /* setext_2 ::= para LINE_SETEXT_2 */ yytestcase(yyruleno==83);
       case 84: /* table ::= table_header table_body */ yytestcase(yyruleno==84);
-      case 86: /* header_rows ::= header_rows LINE_TABLE */ yytestcase(yyruleno==86);
-      case 87: /* table_body ::= table_body table_section */ yytestcase(yyruleno==87);
-      case 90: /* all_rows ::= all_rows row */ yytestcase(yyruleno==90);
+      case 87: /* header_rows ::= header_rows LINE_TABLE */ yytestcase(yyruleno==87);
+      case 88: /* table_body ::= table_body table_section */ yytestcase(yyruleno==88);
+      case 91: /* all_rows ::= all_rows row */ yytestcase(yyruleno==91);
 { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
@@ -1405,82 +1407,86 @@ static void yy_reduce(
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_HEADER); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 88: /* table_section ::= all_rows LINE_EMPTY */
+      case 86: /* table_header ::= LINE_TABLE_SEPARATOR */
+{ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_HEADER); }
+  yymsp[0].minor.yy0 = yylhsminor.yy0;
+        break;
+      case 89: /* table_section ::= all_rows LINE_EMPTY */
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_SECTION); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 89: /* table_section ::= all_rows */
+      case 90: /* table_section ::= all_rows */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_SECTION); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 91: /* para ::= all_rows */
+      case 92: /* para ::= all_rows */
 { yylhsminor.yy0 = yymsp[0].minor.yy0; }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
       default:
-      /* (92) chunk ::= chunk_line (OPTIMIZED OUT) */ assert(yyruleno!=92);
-      /* (93) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==93);
-      /* (94) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==94);
-      /* (95) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno!=95);
-      /* (96) nested_chunk ::= empty */ yytestcase(yyruleno==96);
-      /* (97) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno==97);
-      /* (98) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno==98);
-      /* (99) opt_ext_chunk ::= chunk */ yytestcase(yyruleno==99);
-      /* (100) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno!=100);
-      /* (101) tail ::= nested_chunks */ yytestcase(yyruleno==101);
-      /* (102) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==102);
-      /* (103) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==103);
-      /* (104) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==104);
-      /* (105) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno==105);
-      /* (106) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno==106);
-      /* (107) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno==107);
-      /* (108) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno==108);
-      /* (109) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno==109);
-      /* (110) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno!=110);
-      /* (111) empty ::= LINE_EMPTY */ yytestcase(yyruleno==111);
-      /* (112) fenced_block ::= fenced_3 */ yytestcase(yyruleno==112);
-      /* (113) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==113);
-      /* (114) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==114);
-      /* (115) fenced_block ::= fenced_4 */ yytestcase(yyruleno==115);
-      /* (116) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==116);
-      /* (117) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==117);
-      /* (118) fenced_block ::= fenced_5 */ yytestcase(yyruleno==118);
-      /* (119) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==119);
-      /* (120) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno==120);
-      /* (121) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==121);
-      /* (122) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno==122);
-      /* (123) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno==123);
-      /* (124) fenced_line ::= LINE_HR */ yytestcase(yyruleno==124);
-      /* (125) fenced_line ::= LINE_HTML */ yytestcase(yyruleno==125);
-      /* (126) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno==126);
-      /* (127) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==127);
-      /* (128) html_block ::= LINE_HTML */ yytestcase(yyruleno==128);
-      /* (129) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==129);
-      /* (130) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno==130);
-      /* (131) html_line ::= LINE_HR */ yytestcase(yyruleno==131);
-      /* (132) html_line ::= LINE_HTML */ yytestcase(yyruleno==132);
-      /* (133) html_com_block ::= html_comment */ yytestcase(yyruleno==133);
-      /* (134) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno==134);
-      /* (135) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==135);
-      /* (136) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno==136);
-      /* (137) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno==137);
-      /* (138) comment_line ::= LINE_HR */ yytestcase(yyruleno==138);
-      /* (139) comment_line ::= LINE_HTML */ yytestcase(yyruleno==139);
-      /* (140) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno!=140);
-      /* (141) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno!=141);
-      /* (142) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno!=142);
-      /* (143) meta_block ::= LINE_META */ yytestcase(yyruleno==143);
-      /* (144) meta_line ::= LINE_META */ yytestcase(yyruleno==144);
-      /* (145) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==145);
-      /* (146) para ::= LINE_PLAIN */ yytestcase(yyruleno==146);
-      /* (147) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==147);
-      /* (148) table ::= table_header */ yytestcase(yyruleno==148);
-      /* (149) header_rows ::= LINE_TABLE */ yytestcase(yyruleno==149);
-      /* (150) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno!=150);
-      /* (151) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno!=151);
-      /* (152) row ::= header_rows */ yytestcase(yyruleno==152);
-      /* (153) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno==153);
-      /* (154) para ::= defs */ yytestcase(yyruleno==154);
+      /* (93) chunk ::= chunk_line (OPTIMIZED OUT) */ assert(yyruleno!=93);
+      /* (94) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==94);
+      /* (95) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==95);
+      /* (96) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno!=96);
+      /* (97) nested_chunk ::= empty */ yytestcase(yyruleno==97);
+      /* (98) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno==98);
+      /* (99) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno==99);
+      /* (100) opt_ext_chunk ::= chunk */ yytestcase(yyruleno==100);
+      /* (101) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno!=101);
+      /* (102) tail ::= nested_chunks */ yytestcase(yyruleno==102);
+      /* (103) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==103);
+      /* (104) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==104);
+      /* (105) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==105);
+      /* (106) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno==106);
+      /* (107) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno==107);
+      /* (108) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno==108);
+      /* (109) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno==109);
+      /* (110) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno==110);
+      /* (111) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno!=111);
+      /* (112) empty ::= LINE_EMPTY */ yytestcase(yyruleno==112);
+      /* (113) fenced_block ::= fenced_3 */ yytestcase(yyruleno==113);
+      /* (114) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==114);
+      /* (115) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==115);
+      /* (116) fenced_block ::= fenced_4 */ yytestcase(yyruleno==116);
+      /* (117) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==117);
+      /* (118) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==118);
+      /* (119) fenced_block ::= fenced_5 */ yytestcase(yyruleno==119);
+      /* (120) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==120);
+      /* (121) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno==121);
+      /* (122) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==122);
+      /* (123) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno==123);
+      /* (124) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno==124);
+      /* (125) fenced_line ::= LINE_HR */ yytestcase(yyruleno==125);
+      /* (126) fenced_line ::= LINE_HTML */ yytestcase(yyruleno==126);
+      /* (127) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno==127);
+      /* (128) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==128);
+      /* (129) html_block ::= LINE_HTML */ yytestcase(yyruleno==129);
+      /* (130) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==130);
+      /* (131) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno==131);
+      /* (132) html_line ::= LINE_HR */ yytestcase(yyruleno==132);
+      /* (133) html_line ::= LINE_HTML */ yytestcase(yyruleno==133);
+      /* (134) html_com_block ::= html_comment */ yytestcase(yyruleno==134);
+      /* (135) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno==135);
+      /* (136) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==136);
+      /* (137) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno==137);
+      /* (138) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno==138);
+      /* (139) comment_line ::= LINE_HR */ yytestcase(yyruleno==139);
+      /* (140) comment_line ::= LINE_HTML */ yytestcase(yyruleno==140);
+      /* (141) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno!=141);
+      /* (142) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno!=142);
+      /* (143) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno!=143);
+      /* (144) meta_block ::= LINE_META */ yytestcase(yyruleno==144);
+      /* (145) meta_line ::= LINE_META */ yytestcase(yyruleno==145);
+      /* (146) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==146);
+      /* (147) para ::= LINE_PLAIN */ yytestcase(yyruleno==147);
+      /* (148) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==148);
+      /* (149) table ::= table_header */ yytestcase(yyruleno==149);
+      /* (150) header_rows ::= LINE_TABLE */ yytestcase(yyruleno==150);
+      /* (151) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno!=151);
+      /* (152) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno!=152);
+      /* (153) row ::= header_rows */ yytestcase(yyruleno==153);
+      /* (154) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno==154);
+      /* (155) para ::= defs */ yytestcase(yyruleno==155);
         break;
 /********** End reduce actions ************************************************/
   };
index 5105cff13a4e625d6863be144266687c6d40e171..14df9e8f9db5f6d38a42b50e4db786b3819a87b2 100644 (file)
@@ -108,6 +108,7 @@ State 0:
           table ::= * table_header table_body
           table ::= * table_header
           table_header ::= * header_rows LINE_TABLE_SEPARATOR
+          table_header ::= * LINE_TABLE_SEPARATOR
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           all_rows ::= * all_rows row
@@ -118,20 +119,20 @@ State 0:
           para ::= * defs
 
                        LINE_HR shift-reduce 9      block ::= LINE_HR
-                     LINE_YAML shift        45     
+                     LINE_YAML shift        46     
                     LINE_PLAIN shift        16     
-             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
-           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
-                     LINE_HTML shift-reduce 128    html_block ::= LINE_HTML
+             LINE_INDENTED_TAB shift-reduce 98     indented_line ::= LINE_INDENTED_TAB
+           LINE_INDENTED_SPACE shift-reduce 99     indented_line ::= LINE_INDENTED_SPACE
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
+          LINE_TABLE_SEPARATOR shift        42     
+                     LINE_HTML shift-reduce 129    html_block ::= LINE_HTML
                     LINE_ATX_1 shift-reduce 3      block ::= LINE_ATX_1
                     LINE_ATX_2 shift-reduce 4      block ::= LINE_ATX_2
                     LINE_ATX_3 shift-reduce 5      block ::= LINE_ATX_3
                     LINE_ATX_4 shift-reduce 6      block ::= LINE_ATX_4
                     LINE_ATX_5 shift-reduce 7      block ::= LINE_ATX_5
                     LINE_ATX_6 shift-reduce 8      block ::= LINE_ATX_6
-               LINE_BLOCKQUOTE shift-reduce 102    blockquote ::= LINE_BLOCKQUOTE
+               LINE_BLOCKQUOTE shift-reduce 103    blockquote ::= LINE_BLOCKQUOTE
             LINE_LIST_BULLETED shift        7      
           LINE_LIST_ENUMERATED shift        6      
          LINE_DEF_ABBREVIATION shift        17     
@@ -141,16 +142,16 @@ State 0:
                  LINE_DEF_LINK shift        18     
                       LINE_TOC shift-reduce 11     block ::= LINE_TOC
                LINE_DEFINITION shift        5      
-                     LINE_META shift-reduce 143    meta_block ::= LINE_META
-         LINE_FENCE_BACKTICK_3 shift-reduce 113    fenced_3 ::= LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_4 shift-reduce 116    fenced_4 ::= LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_5 shift-reduce 119    fenced_5 ::= LINE_FENCE_BACKTICK_5
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
-             LINE_STOP_COMMENT shift-reduce 147    para ::= LINE_STOP_COMMENT
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-            LINE_START_COMMENT shift-reduce 134    html_comment ::= LINE_START_COMMENT
+                     LINE_META shift-reduce 144    meta_block ::= LINE_META
+         LINE_FENCE_BACKTICK_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_5
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 115    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_4 shift-reduce 118    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
+   LINE_FENCE_BACKTICK_START_5 shift-reduce 121    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
+             LINE_STOP_COMMENT shift-reduce 148    para ::= LINE_STOP_COMMENT
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+            LINE_START_COMMENT shift-reduce 135    html_comment ::= LINE_START_COMMENT
                            doc accept
                         blocks shift        1      
                          block shift-reduce 2      blocks ::= block
@@ -161,7 +162,7 @@ State 0:
                   def_glossary shift-reduce 16     block ::= def_glossary
                       def_link shift-reduce 17     block ::= def_link
               definition_block shift-reduce 18     block ::= definition_block
-                         empty shift        44     
+                         empty shift        45     
                   fenced_block shift-reduce 20     block ::= fenced_block
                     html_block shift        29     
                 html_com_block shift-reduce 22     block ::= html_com_block
@@ -183,7 +184,7 @@ State 0:
                    item_bullet shift        41       /* because item_bullet==list_bullet */
                      item_enum shift        40       /* because item_enum==list_enum */
                   table_header shift        8      
-                   header_rows shift        42     
+                   header_rows shift        43     
                       all_rows shift        15     
                            row shift        15       /* because row==all_rows */
 
@@ -296,6 +297,7 @@ State 1:
           table ::= * table_header table_body
           table ::= * table_header
           table_header ::= * header_rows LINE_TABLE_SEPARATOR
+          table_header ::= * LINE_TABLE_SEPARATOR
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           all_rows ::= * all_rows row
@@ -307,20 +309,20 @@ State 1:
 
                              $ reduce       0      doc ::= blocks
                        LINE_HR shift-reduce 9      block ::= LINE_HR
-                     LINE_YAML shift        45     
+                     LINE_YAML shift        46     
                     LINE_PLAIN shift        16     
-             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
-           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
-                     LINE_HTML shift-reduce 128    html_block ::= LINE_HTML
+             LINE_INDENTED_TAB shift-reduce 98     indented_line ::= LINE_INDENTED_TAB
+           LINE_INDENTED_SPACE shift-reduce 99     indented_line ::= LINE_INDENTED_SPACE
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
+          LINE_TABLE_SEPARATOR shift        42     
+                     LINE_HTML shift-reduce 129    html_block ::= LINE_HTML
                     LINE_ATX_1 shift-reduce 3      block ::= LINE_ATX_1
                     LINE_ATX_2 shift-reduce 4      block ::= LINE_ATX_2
                     LINE_ATX_3 shift-reduce 5      block ::= LINE_ATX_3
                     LINE_ATX_4 shift-reduce 6      block ::= LINE_ATX_4
                     LINE_ATX_5 shift-reduce 7      block ::= LINE_ATX_5
                     LINE_ATX_6 shift-reduce 8      block ::= LINE_ATX_6
-               LINE_BLOCKQUOTE shift-reduce 102    blockquote ::= LINE_BLOCKQUOTE
+               LINE_BLOCKQUOTE shift-reduce 103    blockquote ::= LINE_BLOCKQUOTE
             LINE_LIST_BULLETED shift        7      
           LINE_LIST_ENUMERATED shift        6      
          LINE_DEF_ABBREVIATION shift        17     
@@ -330,16 +332,16 @@ State 1:
                  LINE_DEF_LINK shift        18     
                       LINE_TOC shift-reduce 11     block ::= LINE_TOC
                LINE_DEFINITION shift        5      
-                     LINE_META shift-reduce 143    meta_block ::= LINE_META
-         LINE_FENCE_BACKTICK_3 shift-reduce 113    fenced_3 ::= LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_4 shift-reduce 116    fenced_4 ::= LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_5 shift-reduce 119    fenced_5 ::= LINE_FENCE_BACKTICK_5
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
-             LINE_STOP_COMMENT shift-reduce 147    para ::= LINE_STOP_COMMENT
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-            LINE_START_COMMENT shift-reduce 134    html_comment ::= LINE_START_COMMENT
+                     LINE_META shift-reduce 144    meta_block ::= LINE_META
+         LINE_FENCE_BACKTICK_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_5
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 115    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_4 shift-reduce 118    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
+   LINE_FENCE_BACKTICK_START_5 shift-reduce 121    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
+             LINE_STOP_COMMENT shift-reduce 148    para ::= LINE_STOP_COMMENT
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+            LINE_START_COMMENT shift-reduce 135    html_comment ::= LINE_START_COMMENT
                          block shift-reduce 1      blocks ::= blocks block
                     blockquote shift        37     
               def_abbreviation shift-reduce 13     block ::= def_abbreviation
@@ -348,7 +350,7 @@ State 1:
                   def_glossary shift-reduce 16     block ::= def_glossary
                       def_link shift-reduce 17     block ::= def_link
               definition_block shift-reduce 18     block ::= definition_block
-                         empty shift        44     
+                         empty shift        45     
                   fenced_block shift-reduce 20     block ::= fenced_block
                     html_block shift        29     
                 html_com_block shift-reduce 22     block ::= html_com_block
@@ -370,7 +372,7 @@ State 1:
                    item_bullet shift        41       /* because item_bullet==list_bullet */
                      item_enum shift        40       /* because item_enum==list_enum */
                   table_header shift        8      
-                   header_rows shift        42     
+                   header_rows shift        43     
                       all_rows shift        15     
                            row shift        15       /* because row==all_rows */
 
@@ -389,15 +391,15 @@ State 2:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_glossary ::= LINE_DEF_GLOSSARY * tail
-    (107) def_glossary ::= LINE_DEF_GLOSSARY *
+    (108) def_glossary ::= LINE_DEF_GLOSSARY *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       107     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       107     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       108     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       108     ** Parsing conflict **
                          empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
@@ -405,7 +407,7 @@ State 2:
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
                  opt_ext_chunk shift-reduce 41     def_glossary ::= LINE_DEF_GLOSSARY tail  /* because opt_ext_chunk==tail */
                           tail shift-reduce 41     def_glossary ::= LINE_DEF_GLOSSARY tail
-                     {default} reduce       107    def_glossary ::= LINE_DEF_GLOSSARY
+                     {default} reduce       108    def_glossary ::= LINE_DEF_GLOSSARY
 
 State 3:
           chunk ::= * chunk chunk_line
@@ -422,15 +424,15 @@ State 3:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_footnote ::= LINE_DEF_FOOTNOTE * tail
-    (106) def_footnote ::= LINE_DEF_FOOTNOTE *
+    (107) def_footnote ::= LINE_DEF_FOOTNOTE *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       106     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       106     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       107     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       107     ** Parsing conflict **
                          empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
@@ -438,7 +440,7 @@ State 3:
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
                  opt_ext_chunk shift-reduce 40     def_footnote ::= LINE_DEF_FOOTNOTE tail  /* because opt_ext_chunk==tail */
                           tail shift-reduce 40     def_footnote ::= LINE_DEF_FOOTNOTE tail
-                     {default} reduce       106    def_footnote ::= LINE_DEF_FOOTNOTE
+                     {default} reduce       107    def_footnote ::= LINE_DEF_FOOTNOTE
 
 State 4:
           chunk ::= * chunk chunk_line
@@ -455,15 +457,15 @@ State 4:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_citation ::= LINE_DEF_CITATION * tail
-    (105) def_citation ::= LINE_DEF_CITATION *
+    (106) def_citation ::= LINE_DEF_CITATION *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       105     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       105     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       106     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       106     ** Parsing conflict **
                          empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
@@ -471,7 +473,7 @@ State 4:
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
                  opt_ext_chunk shift-reduce 39     def_citation ::= LINE_DEF_CITATION tail  /* because opt_ext_chunk==tail */
                           tail shift-reduce 39     def_citation ::= LINE_DEF_CITATION tail
-                     {default} reduce       105    def_citation ::= LINE_DEF_CITATION
+                     {default} reduce       106    def_citation ::= LINE_DEF_CITATION
 
 State 5:
           chunk ::= * chunk chunk_line
@@ -492,10 +494,10 @@ State 5:
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       47      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       47      ** Parsing conflict **
                          empty shift        31     
                          chunk shift        9      
@@ -524,10 +526,10 @@ State 6:
           item_enum ::= LINE_LIST_ENUMERATED * nested_chunks
      (78) item_enum ::= LINE_LIST_ENUMERATED *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       78      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       78      ** Parsing conflict **
                          empty shift        31     
                          chunk shift        10     
@@ -555,10 +557,10 @@ State 7:
           item_bullet ::= LINE_LIST_BULLETED * nested_chunks
      (73) item_bullet ::= LINE_LIST_BULLETED *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       73      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       73      ** Parsing conflict **
                          empty shift        31     
                          chunk shift        11     
@@ -570,7 +572,7 @@ State 7:
 
 State 8:
           table ::= table_header * table_body
-    (148) table ::= table_header *
+    (149) table ::= table_header *
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           table_body ::= * table_body table_section
@@ -582,16 +584,16 @@ State 8:
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       148     ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       148     ** Parsing conflict **
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       149     ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 154    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       149     ** Parsing conflict **
                     table_body shift        12     
-                   header_rows shift        43     
+                   header_rows shift        44     
                  table_section shift        12       /* because table_section==table_body */
                       all_rows shift        13     
                            row shift        13       /* because row==all_rows */
-                     {default} reduce       148    table ::= table_header
+                     {default} reduce       149    table ::= table_header
 
 State 9:
           chunk ::= chunk * chunk_line
@@ -603,20 +605,20 @@ State 9:
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
           opt_ext_chunk ::= chunk * nested_chunks
-     (99) opt_ext_chunk ::= chunk *
+    (100) opt_ext_chunk ::= chunk *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       99      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       99      ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       100     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       100     ** Parsing conflict **
                          empty shift        31     
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                  nested_chunks shift        21     
                   nested_chunk shift        21       /* because nested_chunk==nested_chunks */
-                     {default} reduce       99     opt_ext_chunk ::= chunk
+                     {default} reduce       100    opt_ext_chunk ::= chunk
 
 State 10:
           chunk ::= chunk * chunk_line
@@ -632,10 +634,10 @@ State 10:
           empty ::= * LINE_EMPTY
      (76) item_enum ::= LINE_LIST_ENUMERATED chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       76      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       76      ** Parsing conflict **
                          empty shift        31     
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
@@ -657,10 +659,10 @@ State 11:
           empty ::= * LINE_EMPTY
      (71) item_bullet ::= LINE_LIST_BULLETED chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       71      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       71      ** Parsing conflict **
                          empty shift        31     
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
@@ -680,12 +682,12 @@ State 12:
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
                     LINE_TABLE reduce       84      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR shift-reduce 154    row ::= LINE_TABLE_SEPARATOR
           LINE_TABLE_SEPARATOR reduce       84      ** Parsing conflict **
-                   header_rows shift        43     
-                 table_section shift-reduce 87     table_body ::= table_body table_section
+                   header_rows shift        44     
+                 table_section shift-reduce 88     table_body ::= table_body table_section
                       all_rows shift        13     
                            row shift        13       /* because row==all_rows */
                      {default} reduce       84     table ::= table_header table_body
@@ -694,20 +696,20 @@ State 13:
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           table_section ::= all_rows * LINE_EMPTY
-     (89) table_section ::= all_rows *
+     (90) table_section ::= all_rows *
           all_rows ::= all_rows * row
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       89      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       89      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 88     table_section ::= all_rows LINE_EMPTY
-                    LINE_EMPTY reduce       89      ** Parsing conflict **
-                   header_rows shift        43     
-                           row shift-reduce 90     all_rows ::= all_rows row
-                     {default} reduce       89     table_section ::= all_rows
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       90      ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 154    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       90      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 89     table_section ::= all_rows LINE_EMPTY
+                    LINE_EMPTY reduce       90      ** Parsing conflict **
+                   header_rows shift        44     
+                           row shift-reduce 91     all_rows ::= all_rows row
+                     {default} reduce       90     table_section ::= all_rows
 
 State 14:
      (28) block ::= para *
@@ -733,15 +735,15 @@ State 15:
           all_rows ::= all_rows * row
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
-     (91) para ::= all_rows *
+     (92) para ::= all_rows *
 
-                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       91      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       91      ** Parsing conflict **
-                   header_rows shift        43     
-                           row shift-reduce 90     all_rows ::= all_rows row
-                     {default} reduce       91     para ::= all_rows
+                    LINE_TABLE shift-reduce 150    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       92      ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 154    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       92      ** Parsing conflict **
+                   header_rows shift        44     
+                           row shift-reduce 91     all_rows ::= all_rows row
+                     {default} reduce       92     para ::= all_rows
 
 State 16:
           chunk ::= * chunk chunk_line
@@ -749,14 +751,14 @@ State 16:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           para ::= LINE_PLAIN * chunk
-    (146) para ::= LINE_PLAIN *
+    (147) para ::= LINE_PLAIN *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       146     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       147     ** Parsing conflict **
                          chunk shift        33     
                     chunk_line shift        33       /* because chunk_line==chunk */
-                     {default} reduce       146    para ::= LINE_PLAIN
+                     {default} reduce       147    para ::= LINE_PLAIN
 
 State 17:
           chunk ::= * chunk chunk_line
@@ -764,14 +766,14 @@ State 17:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           def_abbreviation ::= LINE_DEF_ABBREVIATION * chunk
-    (109) def_abbreviation ::= LINE_DEF_ABBREVIATION *
+    (110) def_abbreviation ::= LINE_DEF_ABBREVIATION *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       109     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       110     ** Parsing conflict **
                          chunk shift        34     
                     chunk_line shift        34       /* because chunk_line==chunk */
-                     {default} reduce       109    def_abbreviation ::= LINE_DEF_ABBREVIATION
+                     {default} reduce       110    def_abbreviation ::= LINE_DEF_ABBREVIATION
 
 State 18:
           chunk ::= * chunk chunk_line
@@ -779,14 +781,14 @@ State 18:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           def_link ::= LINE_DEF_LINK * chunk
-    (108) def_link ::= LINE_DEF_LINK *
+    (109) def_link ::= LINE_DEF_LINK *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       108     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       109     ** Parsing conflict **
                          chunk shift        35     
                     chunk_line shift        35       /* because chunk_line==chunk */
-                     {default} reduce       108    def_link ::= LINE_DEF_LINK
+                     {default} reduce       109    def_link ::= LINE_DEF_LINK
 
 State 19:
           chunk ::= * chunk chunk_line
@@ -796,8 +798,8 @@ State 19:
           nested_chunk ::= empty indented_line * chunk
      (35) nested_chunk ::= empty indented_line *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       35      ** Parsing conflict **
                          chunk shift        36     
                     chunk_line shift        36       /* because chunk_line==chunk */
@@ -808,15 +810,15 @@ State 20:
           nested_chunk ::= * empty indented_line chunk
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
-    (101) tail ::= nested_chunks *
+    (102) tail ::= nested_chunks *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       101     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       102     ** Parsing conflict **
                          empty shift        31     
                   nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       101    tail ::= nested_chunks
+                     {default} reduce       102    tail ::= nested_chunks
 
 State 21:
           nested_chunks ::= nested_chunks * nested_chunk
@@ -827,7 +829,7 @@ State 21:
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       37      ** Parsing conflict **
                          empty shift        31     
                   nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
@@ -842,7 +844,7 @@ State 22:
           empty ::= * LINE_EMPTY
      (77) item_enum ::= LINE_LIST_ENUMERATED nested_chunks *
 
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       77      ** Parsing conflict **
                          empty shift        31     
                   nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
@@ -857,7 +859,7 @@ State 23:
           empty ::= * LINE_EMPTY
      (72) item_bullet ::= LINE_LIST_BULLETED nested_chunks *
 
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       72      ** Parsing conflict **
                          empty shift        31     
                   nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
@@ -872,7 +874,7 @@ State 24:
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY shift-reduce 112    empty ::= LINE_EMPTY
                     LINE_EMPTY reduce       36      ** Parsing conflict **
                          empty shift        31     
                   nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
@@ -880,7 +882,7 @@ State 24:
 
 State 25:
           fenced_block ::= fenced_5 * LINE_FENCE_BACKTICK_5
-    (118) fenced_block ::= fenced_5 *
+    (119) fenced_block ::= fenced_5 *
           fenced_5 ::= fenced_5 * fenced_line
           fenced_5 ::= fenced_5 * LINE_FENCE_BACKTICK_3
           fenced_5 ::= fenced_5 * LINE_FENCE_BACKTICK_START_3
@@ -894,35 +896,35 @@ State 25:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
-                       LINE_HR reduce       118     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       118     ** Parsing conflict **
+                       LINE_HR shift-reduce 125    fenced_line ::= LINE_HR
+                       LINE_HR reduce       119     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 122    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 124    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 126    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       119     ** Parsing conflict **
          LINE_FENCE_BACKTICK_3 shift-reduce 60     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 reduce       119     ** Parsing conflict **
          LINE_FENCE_BACKTICK_4 shift-reduce 62     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 reduce       119     ** Parsing conflict **
          LINE_FENCE_BACKTICK_5 shift-reduce 58     fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 reduce       119     ** Parsing conflict **
    LINE_FENCE_BACKTICK_START_3 shift-reduce 61     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_3 reduce       118     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_3 reduce       119     ** Parsing conflict **
    LINE_FENCE_BACKTICK_START_4 shift-reduce 63     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_4 reduce       118     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       118     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       118     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       118     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_4 reduce       119     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 128    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       119     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 123    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       119     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 127    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       119     ** Parsing conflict **
                    fenced_line shift-reduce 59     fenced_5 ::= fenced_5 fenced_line
-                     {default} reduce       118    fenced_block ::= fenced_5
+                     {default} reduce       119    fenced_block ::= fenced_5
 
 State 26:
           fenced_block ::= fenced_4 * LINE_FENCE_BACKTICK_4
           fenced_block ::= fenced_4 * LINE_FENCE_BACKTICK_5
-    (115) fenced_block ::= fenced_4 *
+    (116) fenced_block ::= fenced_4 *
           fenced_4 ::= fenced_4 * fenced_line
           fenced_4 ::= fenced_4 * LINE_FENCE_BACKTICK_3
           fenced_4 ::= fenced_4 * LINE_FENCE_BACKTICK_START_3
@@ -934,34 +936,34 @@ State 26:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
-                       LINE_HR reduce       115     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       115     ** Parsing conflict **
+                       LINE_HR shift-reduce 125    fenced_line ::= LINE_HR
+                       LINE_HR reduce       116     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 122    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 124    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 126    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       116     ** Parsing conflict **
          LINE_FENCE_BACKTICK_3 shift-reduce 56     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 reduce       116     ** Parsing conflict **
          LINE_FENCE_BACKTICK_4 shift-reduce 53     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 reduce       116     ** Parsing conflict **
          LINE_FENCE_BACKTICK_5 shift-reduce 54     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 reduce       116     ** Parsing conflict **
    LINE_FENCE_BACKTICK_START_3 shift-reduce 57     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_3 reduce       115     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       115     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       115     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       115     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_3 reduce       116     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 128    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       116     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 123    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       116     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 127    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       116     ** Parsing conflict **
                    fenced_line shift-reduce 55     fenced_4 ::= fenced_4 fenced_line
-                     {default} reduce       115    fenced_block ::= fenced_4
+                     {default} reduce       116    fenced_block ::= fenced_4
 
 State 27:
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_3
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_4
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_5
-    (112) fenced_block ::= fenced_3 *
+    (113) fenced_block ::= fenced_3 *
           fenced_3 ::= fenced_3 * fenced_line
           fenced_line ::= * LINE_CONTINUATION
           fenced_line ::= * LINE_EMPTY
@@ -971,30 +973,30 @@ State 27:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
-                       LINE_HR reduce       112     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       112     ** Parsing conflict **
+                       LINE_HR shift-reduce 125    fenced_line ::= LINE_HR
+                       LINE_HR reduce       113     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 122    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 124    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 126    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       113     ** Parsing conflict **
          LINE_FENCE_BACKTICK_3 shift-reduce 49     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 reduce       113     ** Parsing conflict **
          LINE_FENCE_BACKTICK_4 shift-reduce 50     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 reduce       113     ** Parsing conflict **
          LINE_FENCE_BACKTICK_5 shift-reduce 51     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       112     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       112     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       112     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 reduce       113     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 128    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       113     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 123    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       113     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 127    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       113     ** Parsing conflict **
                    fenced_line shift-reduce 52     fenced_3 ::= fenced_3 fenced_line
-                     {default} reduce       112    fenced_block ::= fenced_3
+                     {default} reduce       113    fenced_block ::= fenced_3
 
 State 28:
           html_com_block ::= html_comment * LINE_STOP_COMMENT
-    (133) html_com_block ::= html_comment *
+    (134) html_com_block ::= html_comment *
           html_comment ::= html_comment * comment_line
           comment_line ::= * LINE_CONTINUATION
           comment_line ::= * LINE_EMPTY
@@ -1002,18 +1004,18 @@ State 28:
           comment_line ::= * LINE_HR
           comment_line ::= * LINE_HTML
 
-                       LINE_HR shift-reduce 138    comment_line ::= LINE_HR
-                       LINE_HR reduce       133     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 135    comment_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 137    comment_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 139    comment_line ::= LINE_HTML
-                     LINE_HTML reduce       133     ** Parsing conflict **
+                       LINE_HR shift-reduce 139    comment_line ::= LINE_HR
+                       LINE_HR reduce       134     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 136    comment_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 138    comment_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 140    comment_line ::= LINE_HTML
+                     LINE_HTML reduce       134     ** Parsing conflict **
              LINE_STOP_COMMENT shift-reduce 65     html_com_block ::= html_comment LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       133     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 136    comment_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       133     ** Parsing conflict **
+             LINE_STOP_COMMENT reduce       134     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 137    comment_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       134     ** Parsing conflict **
                   comment_line shift-reduce 66     html_comment ::= html_comment comment_line
-                     {default} reduce       133    html_com_block ::= html_comment
+                     {default} reduce       134    html_com_block ::= html_comment
 
 State 29:
      (21) block ::= html_block *
@@ -1023,11 +1025,11 @@ State 29:
           html_line ::= * LINE_HR
           html_line ::= * LINE_HTML
 
-                       LINE_HR shift-reduce 131    html_line ::= LINE_HR
+                       LINE_HR shift-reduce 132    html_line ::= LINE_HR
                        LINE_HR reduce       21      ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 129    html_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 130    html_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 132    html_line ::= LINE_HTML
+             LINE_CONTINUATION shift-reduce 130    html_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 131    html_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 133    html_line ::= LINE_HTML
                      LINE_HTML reduce       21      ** Parsing conflict **
                      html_line shift-reduce 64     html_block ::= html_block html_line
                      {default} reduce       21     block ::= html_block
@@ -1040,8 +1042,8 @@ State 30:
           meta_line ::= * LINE_CONTINUATION
 
                  LINE_SETEXT_2 shift-reduce 27     block ::= meta_block LINE_SETEXT_2
-             LINE_CONTINUATION shift-reduce 145    meta_line ::= LINE_CONTINUATION
-                     LINE_META shift-reduce 144    meta_line ::= LINE_META
+             LINE_CONTINUATION shift-reduce 146    meta_line ::= LINE_CONTINUATION
+                     LINE_META shift-reduce 145    meta_line ::= LINE_META
                      LINE_META reduce       26      ** Parsing conflict **
                      meta_line shift-reduce 79     meta_block ::= meta_block meta_line
                      {default} reduce       26     block ::= meta_block
@@ -1049,19 +1051,19 @@ State 30:
 State 31:
           nested_chunk ::= empty * indented_line chunk
           nested_chunk ::= empty * indented_line
-     (96) nested_chunk ::= empty *
+     (97) nested_chunk ::= empty *
           indented_line ::= * LINE_INDENTED_TAB
           indented_line ::= * LINE_INDENTED_SPACE
           empty ::= empty * LINE_EMPTY
 
-             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
-             LINE_INDENTED_TAB reduce       96      ** Parsing conflict **
-           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
-           LINE_INDENTED_SPACE reduce       96      ** Parsing conflict **
+             LINE_INDENTED_TAB shift-reduce 98     indented_line ::= LINE_INDENTED_TAB
+             LINE_INDENTED_TAB reduce       97      ** Parsing conflict **
+           LINE_INDENTED_SPACE shift-reduce 99     indented_line ::= LINE_INDENTED_SPACE
+           LINE_INDENTED_SPACE reduce       97      ** Parsing conflict **
                     LINE_EMPTY shift-reduce 48     empty ::= empty LINE_EMPTY
-                    LINE_EMPTY reduce       96      ** Parsing conflict **
+                    LINE_EMPTY reduce       97      ** Parsing conflict **
                  indented_line shift        19     
-                     {default} reduce       96     nested_chunk ::= empty
+                     {default} reduce       97     nested_chunk ::= empty
 
 State 32:
      (23) block ::= indented_code *
@@ -1070,9 +1072,9 @@ State 32:
           indented_code ::= indented_code * indented_line
           indented_code ::= indented_code * LINE_EMPTY
 
-             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
+             LINE_INDENTED_TAB shift-reduce 98     indented_line ::= LINE_INDENTED_TAB
              LINE_INDENTED_TAB reduce       23      ** Parsing conflict **
-           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
+           LINE_INDENTED_SPACE shift-reduce 99     indented_line ::= LINE_INDENTED_SPACE
            LINE_INDENTED_SPACE reduce       23      ** Parsing conflict **
                     LINE_EMPTY shift-reduce 68     indented_code ::= indented_code LINE_EMPTY
                     LINE_EMPTY reduce       23      ** Parsing conflict **
@@ -1085,8 +1087,8 @@ State 33:
           chunk_line ::= * LINE_STOP_COMMENT
      (81) para ::= LINE_PLAIN chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       81      ** Parsing conflict **
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                      {default} reduce       81     para ::= LINE_PLAIN chunk
@@ -1097,8 +1099,8 @@ State 34:
           chunk_line ::= * LINE_STOP_COMMENT
      (43) def_abbreviation ::= LINE_DEF_ABBREVIATION chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       43      ** Parsing conflict **
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                      {default} reduce       43     def_abbreviation ::= LINE_DEF_ABBREVIATION chunk
@@ -1109,8 +1111,8 @@ State 35:
           chunk_line ::= * LINE_STOP_COMMENT
      (42) def_link ::= LINE_DEF_LINK chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       42      ** Parsing conflict **
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                      {default} reduce       42     def_link ::= LINE_DEF_LINK chunk
@@ -1121,8 +1123,8 @@ State 36:
           chunk_line ::= * LINE_STOP_COMMENT
      (34) nested_chunk ::= empty indented_line chunk *
 
-             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_CONTINUATION shift-reduce 94     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 95     chunk_line ::= LINE_STOP_COMMENT
              LINE_STOP_COMMENT reduce       34      ** Parsing conflict **
                     chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                      {default} reduce       34     nested_chunk ::= empty indented_line chunk
@@ -1133,8 +1135,8 @@ State 37:
           quote_line ::= * LINE_BLOCKQUOTE
           quote_line ::= * LINE_CONTINUATION
 
-             LINE_CONTINUATION shift-reduce 104    quote_line ::= LINE_CONTINUATION
-               LINE_BLOCKQUOTE shift-reduce 103    quote_line ::= LINE_BLOCKQUOTE
+             LINE_CONTINUATION shift-reduce 105    quote_line ::= LINE_CONTINUATION
+               LINE_BLOCKQUOTE shift-reduce 104    quote_line ::= LINE_BLOCKQUOTE
                LINE_BLOCKQUOTE reduce       12      ** Parsing conflict **
                     quote_line shift-reduce 38     blockquote ::= blockquote quote_line
                      {default} reduce       12     block ::= blockquote
@@ -1143,12 +1145,12 @@ State 38:
           defs ::= defs * def
           def ::= * LINE_DEFINITION tail
           def ::= * LINE_DEFINITION
-    (154) para ::= defs *
+    (155) para ::= defs *
 
                LINE_DEFINITION shift        5      
-               LINE_DEFINITION reduce       154     ** Parsing conflict **
+               LINE_DEFINITION reduce       155     ** Parsing conflict **
                            def shift-reduce 45     defs ::= defs def
-                     {default} reduce       154    para ::= defs
+                     {default} reduce       155    para ::= defs
 
 State 39:
      (44) definition_block ::= para defs *
@@ -1188,25 +1190,68 @@ State 41:
                      {default} reduce       24     block ::= list_bullet
 
 State 42:
+     (86) table_header ::= LINE_TABLE_SEPARATOR *
+    (154) row ::= LINE_TABLE_SEPARATOR *
+
+                             $ reduce       154     ** Parsing conflict **
+                       LINE_HR reduce       154     ** Parsing conflict **
+                 LINE_SETEXT_1 reduce       154    row ::= LINE_TABLE_SEPARATOR
+                 LINE_SETEXT_2 reduce       154    row ::= LINE_TABLE_SEPARATOR
+                     LINE_YAML reduce       154     ** Parsing conflict **
+                    LINE_PLAIN reduce       154     ** Parsing conflict **
+             LINE_INDENTED_TAB reduce       154     ** Parsing conflict **
+           LINE_INDENTED_SPACE reduce       154     ** Parsing conflict **
+                    LINE_TABLE reduce       154     ** Parsing conflict **
+          LINE_TABLE_SEPARATOR reduce       154     ** Parsing conflict **
+                     LINE_HTML reduce       154     ** Parsing conflict **
+                    LINE_ATX_1 reduce       154     ** Parsing conflict **
+                    LINE_ATX_2 reduce       154     ** Parsing conflict **
+                    LINE_ATX_3 reduce       154     ** Parsing conflict **
+                    LINE_ATX_4 reduce       154     ** Parsing conflict **
+                    LINE_ATX_5 reduce       154     ** Parsing conflict **
+                    LINE_ATX_6 reduce       154     ** Parsing conflict **
+               LINE_BLOCKQUOTE reduce       154     ** Parsing conflict **
+            LINE_LIST_BULLETED reduce       154     ** Parsing conflict **
+          LINE_LIST_ENUMERATED reduce       154     ** Parsing conflict **
+         LINE_DEF_ABBREVIATION reduce       154     ** Parsing conflict **
+             LINE_DEF_CITATION reduce       154     ** Parsing conflict **
+             LINE_DEF_FOOTNOTE reduce       154     ** Parsing conflict **
+             LINE_DEF_GLOSSARY reduce       154     ** Parsing conflict **
+                 LINE_DEF_LINK reduce       154     ** Parsing conflict **
+                      LINE_TOC reduce       154     ** Parsing conflict **
+               LINE_DEFINITION reduce       154     ** Parsing conflict **
+                     LINE_META reduce       154     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 reduce       154     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 reduce       154     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 reduce       154     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_3 reduce       154     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_4 reduce       154     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_5 reduce       154     ** Parsing conflict **
+             LINE_STOP_COMMENT reduce       154     ** Parsing conflict **
+                    LINE_EMPTY reduce       154     ** Parsing conflict **
+            LINE_START_COMMENT reduce       154     ** Parsing conflict **
+                     {default} reduce       86     table_header ::= LINE_TABLE_SEPARATOR
+
+State 43:
           table_header ::= header_rows * LINE_TABLE_SEPARATOR
           header_rows ::= header_rows * LINE_TABLE
-    (152) row ::= header_rows *
+    (153) row ::= header_rows *
 
-                    LINE_TABLE shift-reduce 86     header_rows ::= header_rows LINE_TABLE
-                    LINE_TABLE reduce       152     ** Parsing conflict **
+                    LINE_TABLE shift-reduce 87     header_rows ::= header_rows LINE_TABLE
+                    LINE_TABLE reduce       153     ** Parsing conflict **
           LINE_TABLE_SEPARATOR shift-reduce 85     table_header ::= header_rows LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       152     ** Parsing conflict **
-                     {default} reduce       152    row ::= header_rows
+          LINE_TABLE_SEPARATOR reduce       153     ** Parsing conflict **
+                     {default} reduce       153    row ::= header_rows
 
-State 43:
+State 44:
           header_rows ::= header_rows * LINE_TABLE
-    (152) row ::= header_rows *
+    (153) row ::= header_rows *
 
-                    LINE_TABLE shift-reduce 86     header_rows ::= header_rows LINE_TABLE
-                    LINE_TABLE reduce       152     ** Parsing conflict **
-                     {default} reduce       152    row ::= header_rows
+                    LINE_TABLE shift-reduce 87     header_rows ::= header_rows LINE_TABLE
+                    LINE_TABLE reduce       153     ** Parsing conflict **
+                     {default} reduce       153    row ::= header_rows
 
-State 44:
+State 45:
      (19) block ::= empty *
           empty ::= empty * LINE_EMPTY
 
@@ -1214,7 +1259,7 @@ State 44:
                     LINE_EMPTY reduce       19      ** Parsing conflict **
                      {default} reduce       19     block ::= empty
 
-State 45:
+State 46:
      (10) block ::= LINE_YAML *
           meta_block ::= LINE_YAML * LINE_META
 
@@ -1286,7 +1331,7 @@ Symbols:
    59: para: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
    60: setext_1: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
    61: setext_2: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
-   62: table: LINE_TABLE
+   62: table: LINE_TABLE LINE_TABLE_SEPARATOR
    63: chunk: LINE_CONTINUATION LINE_STOP_COMMENT
    64: chunk_line: LINE_CONTINUATION LINE_STOP_COMMENT
    65: nested_chunks: LINE_EMPTY
@@ -1308,7 +1353,7 @@ Symbols:
    81: item_bullet: LINE_LIST_BULLETED
    82: item_enum: LINE_LIST_ENUMERATED
    83: meta_line: LINE_CONTINUATION LINE_META
-   84: table_header: LINE_TABLE
+   84: table_header: LINE_TABLE LINE_TABLE_SEPARATOR
    85: table_body: LINE_TABLE LINE_TABLE_SEPARATOR
    86: header_rows: LINE_TABLE
    87: table_section: LINE_TABLE LINE_TABLE_SEPARATOR
index 4210e1dae50ad350872992a8b8ac621367a7b5ae..870c01adec60030e8dcf110982a0f4449515a3d0 100644 (file)
@@ -351,6 +351,7 @@ table(A)                    ::= table_header(B) table_body(C).                      { A = B; token_chain_append(B, C
 table                          ::= table_header.
 
 table_header(A)                ::= header_rows(B) LINE_TABLE_SEPARATOR(C).     { A = token_new_parent(B, BLOCK_TABLE_HEADER); token_chain_append(B, C); }
+table_header(A)                ::= LINE_TABLE_SEPARATOR(B).                            { A = token_new_parent(B, BLOCK_TABLE_HEADER); }
 
 header_rows(A)         ::= header_rows(B) LINE_TABLE(C).                       { A = B; token_chain_append(B, C); }
 header_rows                    ::= LINE_TABLE.
index 9f47d06711d3037b456b590511e6a09b34919ea6..f103ba534ab037d93f087c29f60fe677f3a5961f 100644 (file)
@@ -514,6 +514,56 @@ office:mimetype="application/vnd.oasis.opendocument.text">
 | foo | bar |
 | &#8212; | &#8212; |
 | foo | bar |</text:p>
+
+<text:p text:style-name="Standard">6</text:p>
+
+<table:table>
+<table:table-column/>
+<table:table-column/>
+
+
+<table:table-row>
+<table:table-cell>
+<text:p text:style-name="MMD-Table"> foo </text:p>
+</table:table-cell>
+<table:table-cell>
+<text:p text:style-name="MMD-Table"> bar </text:p>
+</table:table-cell>
+</table:table-row>
+
+</table:table>
+<text:p><text:bookmark text:name="bar"/>Table <text:sequence text:name="Table" text:formula="ooow:Table+1" style:num-format="1"> Update Fields to calculate numbers</text:sequence>:<text:span text:style-name="MMD-Italic">caption</text:span><text:bookmark-end text:name="bar"/></text:p>
+
+
+<table:table>
+<table:table-column/>
+<table:table-column/>
+
+<table:table-row>
+<table:table-cell table:number-columns-spanned="2">
+<text:p text:style-name="Table_20_Heading"> bat </text:p>
+</table:table-cell>
+</table:table-row>
+<table:table-row>
+<table:table-cell>
+<text:p text:style-name="Table_20_Heading"> foo </text:p>
+</table:table-cell>
+<table:table-cell>
+<text:p text:style-name="Table_20_Heading"> bar </text:p>
+</table:table-cell>
+</table:table-row>
+
+<table:table-row>
+<table:table-cell>
+<text:p text:style-name="MMD-Table"> foo </text:p>
+</table:table-cell>
+<table:table-cell>
+<text:p text:style-name="MMD-Table"> bar </text:p>
+</table:table-cell>
+</table:table-row>
+
+</table:table>
+
 </office:text>
 </office:body>
 </office:document>
index 0606dd7e005d8ef51b51d4a0f0d52472e468991f..a2644ef22c171fc120157dc4d89e43ec99e51fa7 100644 (file)
 | &#8212; | &#8212; |
 | foo | bar |</p>
 
+<p>6</p>
+
+<table>
+<caption style="caption-side: bottom;" id="bar"><em>caption</em></caption>
+<colgroup>
+<col />
+<col />
+</colgroup>
+
+<thead>
+</thead>
+
+<tbody>
+<tr>
+       <td> foo </td>
+       <td> bar </td>
+</tr>
+</tbody>
+</table>
+
+<table>
+<colgroup>
+<col />
+<col />
+</colgroup>
+
+<thead>
+<tr>
+       <th colspan="2"> bat </th>
+</tr>
+<tr>
+       <th> foo </th>
+       <th> bar </th>
+</tr>
+</thead>
+
+<tbody>
+<tr>
+       <td> foo </td>
+       <td> bar </td>
+</tr>
+</tbody>
+</table>
+
 </body>
 </html>
 
index 7e55634d321af460c4491309401e16e74c4bdb76..bcb4a2dbbb82fa96c2f659f8149808cc7d9bc2ee 100644 (file)
@@ -50,3 +50,14 @@ latex config:        article</p>
 | foo | bar |
 | --- | --- |
 | foo | bar |</p>
+
+<p>6</p>
+
+<p>| --- | --- |
+| foo | bar |
+[<em>caption</em>][bar]</p>
+
+<p>| bat ||
+| foo | bar |
+| --- | --- |
+| foo | bar |</p>
index d039c35d08a3661dd7c9620d9db988a94e9c3d55..d678e55802a3dc78e917e7822b20b421dc8ae1e2 100644 (file)
 \textbar{} --- \textbar{} --- \textbar{}
 \textbar{} foo \textbar{} bar \textbar{}
 
+6
+
+\begin{table}[htbp]
+\begin{minipage}{\linewidth}
+\setlength{\tymax}{0.5\linewidth}
+\centering
+\small
+\caption{\emph{caption}}
+\label{bar}
+\begin{tabulary}{\textwidth}{@{}ll@{}} \toprule
+\midrule
+
+ foo & bar \\
+\bottomrule
+
+\end{tabulary}
+\end{minipage}
+\end{table}
+
+\begin{table}[htbp]
+\begin{minipage}{\linewidth}
+\setlength{\tymax}{0.5\linewidth}
+\centering
+\small
+\begin{tabulary}{\textwidth}{@{}ll@{}} \toprule
+\multicolumn{2}{c}{ bat }\\
+ foo & bar \\
+\midrule
+
+ foo & bar \\
+\bottomrule
+
+\end{tabulary}
+\end{minipage}
+\end{table}
+
 \input{mmd6-article-footer}
 \end{document}
index 096fea891272dd56ee6201580f9287f7e44c3a2a..fb44d5426f1bcb4a963186e2f576a68c8f066ff8 100644 (file)
@@ -54,3 +54,16 @@ latex config:        article
 | foo | bar |
 | --- | --- |
 | foo | bar |
+
+
+6
+
+| --- | --- |
+| foo | bar |
+[*caption*][bar]
+
+
+|    bat   ||
+| foo | bar |
+| --- | --- |
+| foo | bar |