rmultimarkdown 6.4.0.3 → 6.7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +7 -13
  3. data/ext/Makefile +67 -55
  4. data/ext/extconf.rb +8 -6
  5. data/ext/mmd/aho-corasick.c +8 -8
  6. data/ext/mmd/aho-corasick.h +3 -3
  7. data/ext/mmd/argtable3.c +6537 -0
  8. data/ext/mmd/argtable3.h +273 -0
  9. data/ext/mmd/beamer.c +12 -1
  10. data/ext/mmd/char.c +120 -27
  11. data/ext/mmd/char.h +23 -23
  12. data/ext/mmd/critic_markup.c +7 -6
  13. data/ext/mmd/d_string.c +88 -32
  14. data/ext/mmd/{include/d_string.h → d_string.h} +50 -38
  15. data/ext/mmd/epub.c +36 -12
  16. data/ext/mmd/epub.h +2 -2
  17. data/ext/mmd/file.c +50 -40
  18. data/ext/mmd/file.h +2 -2
  19. data/ext/mmd/html.c +164 -99
  20. data/ext/mmd/html.h +3 -2
  21. data/ext/mmd/i18n.h +15 -11
  22. data/ext/mmd/itmz-lexer.c +16978 -0
  23. data/ext/mmd/itmz-lexer.h +132 -0
  24. data/ext/mmd/itmz-parser.c +1189 -0
  25. data/ext/mmd/itmz-parser.h +11 -0
  26. data/ext/mmd/itmz-reader.c +388 -0
  27. data/ext/mmd/itmz-reader.h +111 -0
  28. data/ext/mmd/itmz.c +567 -0
  29. data/ext/mmd/itmz.h +117 -0
  30. data/ext/mmd/latex.c +93 -41
  31. data/ext/mmd/lexer.c +3506 -2774
  32. data/ext/mmd/{include/libMultiMarkdown.h → libMultiMarkdown.h} +49 -2
  33. data/ext/mmd/main.c +612 -0
  34. data/ext/mmd/memoir.c +4 -1
  35. data/ext/mmd/miniz.c +6905 -6680
  36. data/ext/mmd/miniz.h +456 -476
  37. data/ext/mmd/mmd.c +399 -94
  38. data/ext/mmd/mmd.h +25 -25
  39. data/ext/mmd/object_pool.h +3 -3
  40. data/ext/mmd/opendocument-content.c +137 -69
  41. data/ext/mmd/opendocument-content.h +2 -2
  42. data/ext/mmd/opendocument.c +35 -14
  43. data/ext/mmd/opendocument.h +2 -2
  44. data/ext/mmd/opml-lexer.c +259 -637
  45. data/ext/mmd/opml-lexer.h +1 -17
  46. data/ext/mmd/opml-parser.c +194 -188
  47. data/ext/mmd/opml-reader.c +72 -142
  48. data/ext/mmd/opml-reader.h +1 -1
  49. data/ext/mmd/opml.c +13 -13
  50. data/ext/mmd/opml.h +1 -1
  51. data/ext/mmd/parser.c +1623 -1244
  52. data/ext/mmd/rng.c +8 -3
  53. data/ext/mmd/scanners.c +66625 -103198
  54. data/ext/mmd/scanners.h +1 -0
  55. data/ext/mmd/stack.c +62 -20
  56. data/ext/mmd/stack.h +10 -21
  57. data/ext/mmd/textbundle.c +23 -7
  58. data/ext/mmd/textbundle.h +2 -2
  59. data/ext/mmd/token.c +42 -16
  60. data/ext/mmd/{include/token.h → token.h} +22 -8
  61. data/ext/mmd/token_pairs.c +0 -16
  62. data/ext/mmd/transclude.c +6 -2
  63. data/ext/mmd/uthash.h +745 -745
  64. data/ext/mmd/version.h +8 -8
  65. data/ext/mmd/writer.c +225 -63
  66. data/ext/mmd/writer.h +50 -36
  67. data/ext/mmd/xml.c +855 -0
  68. data/ext/mmd/xml.h +134 -0
  69. data/ext/mmd/zip.c +71 -4
  70. data/ext/mmd/zip.h +7 -1
  71. data/ext/ruby_multi_markdown.c +9 -18
  72. data/lib/multi_markdown/version.rb +1 -1
  73. data/lib/multi_markdown.bundle +0 -0
  74. data/rmultimarkdown.gemspec +0 -2
  75. metadata +22 -28
  76. data/ext/mmd/char_lookup.c +0 -212
data/ext/mmd/parser.c CHANGED
@@ -25,14 +25,15 @@
25
25
  #include <stdio.h>
26
26
  /************ Begin %include sections from the grammar ************************/
27
27
 
28
- #include <assert.h>
29
- #include <stdio.h>
30
- #include <stdlib.h>
28
+ #include <assert.h>
29
+ #include <stdio.h>
30
+ #include <stdlib.h>
31
31
 
32
- #include "libMultiMarkdown.h"
33
- #include "mmd.h"
34
- #include "parser.h"
35
- #include "token.h"
32
+ #include "libMultiMarkdown.h"
33
+ #include "mmd.h"
34
+ #include "parser.h"
35
+ #include "stack.h"
36
+ #include "token.h"
36
37
  /**************** End of %include directives **********************************/
37
38
  /* These constants specify the various numeric values for terminal symbols
38
39
  ** in a format understandable to "makeheaders". This section is blank unless
@@ -63,7 +64,7 @@
63
64
  ** the minor type might be the name of the identifier.
64
65
  ** Each non-terminal can have a different minor type.
65
66
  ** Terminal symbols all have the same minor type, though.
66
- ** This macros defines the minor type for terminal
67
+ ** This macros defines the minor type for terminal
67
68
  ** symbols.
68
69
  ** YYMINORTYPE is the data type used for all minor types.
69
70
  ** This is typically a union of many types, one of
@@ -88,35 +89,35 @@
88
89
  ** YY_NO_ACTION The yy_action[] code for no-op
89
90
  */
90
91
  #ifndef INTERFACE
91
- # define INTERFACE 1
92
+ #define INTERFACE 1
92
93
  #endif
93
94
  /************* Begin control #defines *****************************************/
94
95
  #define YYCODETYPE unsigned char
95
96
  #define YYNOCODE 91
96
97
  #define YYACTIONTYPE unsigned short int
97
- #define ParseTOKENTYPE token *
98
+ #define ParseTOKENTYPE token *
98
99
  typedef union {
99
- int yyinit;
100
- ParseTOKENTYPE yy0;
100
+ int yyinit;
101
+ ParseTOKENTYPE yy0;
101
102
  } YYMINORTYPE;
102
103
  #ifndef YYSTACKDEPTH
103
- #define YYSTACKDEPTH 100
104
+ #define YYSTACKDEPTH 100
104
105
  #endif
105
106
  #define ParseARG_SDECL mmd_engine * engine ;
106
- #define ParseARG_PDECL , mmd_engine * engine
107
- #define ParseARG_FETCH mmd_engine * engine = yypParser->engine
108
- #define ParseARG_STORE yypParser->engine = engine
107
+ #define ParseARG_PDECL , mmd_engine * engine
108
+ #define ParseARG_FETCH mmd_engine * engine = yypParser->engine
109
+ #define ParseARG_STORE yypParser->engine = engine
109
110
  #define YYFALLBACK 1
110
111
  #define YYNSTATE 47
111
- #define YYNRULE 156
112
+ #define YYNRULE 157
112
113
  #define YY_MAX_SHIFT 46
113
- #define YY_MIN_SHIFTREDUCE 158
114
- #define YY_MAX_SHIFTREDUCE 313
115
- #define YY_MIN_REDUCE 314
116
- #define YY_MAX_REDUCE 469
117
- #define YY_ERROR_ACTION 470
118
- #define YY_ACCEPT_ACTION 471
119
- #define YY_NO_ACTION 472
114
+ #define YY_MIN_SHIFTREDUCE 159
115
+ #define YY_MAX_SHIFTREDUCE 315
116
+ #define YY_MIN_REDUCE 316
117
+ #define YY_MAX_REDUCE 472
118
+ #define YY_ERROR_ACTION 473
119
+ #define YY_ACCEPT_ACTION 474
120
+ #define YY_NO_ACTION 475
120
121
  /************* End control #defines *******************************************/
121
122
 
122
123
  /* Define the yytestcase() macro to be a no-op if is not already defined
@@ -128,14 +129,14 @@ typedef union {
128
129
  ** for testing.
129
130
  */
130
131
  #ifndef yytestcase
131
- # define yytestcase(X)
132
+ #define yytestcase(X)
132
133
  #endif
133
134
 
134
135
 
135
136
  /* Next are the tables used to determine what action to take based on the
136
137
  ** current state and lookahead token. These tables are used to implement
137
138
  ** functions that take a state number and lookahead value and return an
138
- ** action integer.
139
+ ** action integer.
139
140
  **
140
141
  ** Suppose the action integer is N. Then the action is determined as
141
142
  ** follows
@@ -188,111 +189,111 @@ typedef union {
188
189
  ** yy_default[] Default action for each state.
189
190
  **
190
191
  *********** Begin parsing tables **********************************************/
191
- #define YY_ACTTAB_COUNT (321)
192
+ #define YY_ACTTAB_COUNT (322)
192
193
  static const YYACTIONTYPE yy_action[] = {
193
- /* 0 */ 471, 1, 160, 37, 171, 172, 173, 174, 175, 176,
194
- /* 10 */ 45, 178, 29, 180, 32, 41, 40, 30, 14, 187,
195
- /* 20 */ 188, 189, 44, 246, 13, 13, 32, 44, 240, 241,
196
- /* 30 */ 249, 38, 38, 27, 270, 26, 25, 217, 28, 213,
197
- /* 40 */ 41, 40, 210, 8, 222, 43, 263, 15, 15, 314,
198
- /* 50 */ 167, 308, 312, 46, 5, 16, 256, 257, 308, 42,
199
- /* 60 */ 262, 287, 161, 162, 163, 164, 165, 166, 261, 7,
200
- /* 70 */ 6, 17, 4, 3, 2, 18, 169, 5, 302, 224,
201
- /* 80 */ 272, 275, 278, 273, 276, 279, 306, 270, 293, 167,
202
- /* 90 */ 39, 39, 46, 237, 16, 256, 257, 308, 42, 19,
203
- /* 100 */ 287, 161, 162, 163, 164, 165, 166, 261, 7, 6,
204
- /* 110 */ 17, 4, 3, 2, 18, 169, 5, 302, 252, 272,
205
- /* 120 */ 275, 278, 273, 276, 279, 306, 270, 293, 159, 37,
206
- /* 130 */ 171, 172, 173, 174, 175, 176, 45, 178, 29, 180,
207
- /* 140 */ 32, 41, 40, 30, 14, 187, 188, 189, 308, 312,
208
- /* 150 */ 253, 270, 32, 225, 256, 257, 252, 38, 38, 27,
209
- /* 160 */ 190, 26, 25, 185, 28, 304, 41, 40, 283, 8,
210
- /* 170 */ 196, 43, 280, 15, 15, 33, 33, 247, 282, 284,
211
- /* 180 */ 283, 34, 34, 5, 280, 206, 35, 35, 253, 303,
212
- /* 190 */ 282, 284, 12, 44, 12, 13, 13, 203, 218, 220,
213
- /* 200 */ 216, 219, 221, 6, 286, 281, 285, 36, 36, 31,
214
- /* 210 */ 214, 211, 212, 215, 31, 283, 286, 281, 285, 280,
215
- /* 220 */ 31, 9, 9, 20, 20, 282, 284, 199, 199, 191,
216
- /* 230 */ 468, 468, 9, 9, 20, 20, 245, 243, 198, 198,
217
- /* 240 */ 7, 232, 31, 256, 257, 207, 208, 209, 245, 227,
218
- /* 250 */ 31, 286, 281, 285, 9, 9, 20, 20, 31, 206,
219
- /* 260 */ 197, 197, 9, 9, 20, 20, 238, 31, 204, 204,
220
- /* 270 */ 10, 10, 22, 22, 226, 233, 31, 316, 316, 11,
221
- /* 280 */ 11, 23, 23, 297, 228, 31, 316, 294, 316, 190,
222
- /* 290 */ 21, 21, 290, 296, 298, 316, 288, 316, 190, 24,
223
- /* 300 */ 24, 316, 289, 291, 316, 316, 316, 316, 316, 316,
224
- /* 310 */ 316, 316, 316, 316, 316, 316, 316, 316, 316, 223,
225
- /* 320 */ 295,
194
+ /* 0 */ 474, 1, 161, 37, 172, 173, 174, 175, 176, 177,
195
+ /* 10 */ 45, 179, 30, 181, 32, 41, 40, 29, 14, 188,
196
+ /* 20 */ 189, 190, 44, 247, 13, 13, 32, 44, 241, 242,
197
+ /* 30 */ 250, 38, 38, 27, 271, 26, 25, 218, 28, 214,
198
+ /* 40 */ 41, 40, 211, 8, 238, 43, 264, 15, 15, 316,
199
+ /* 50 */ 168, 310, 314, 46, 5, 16, 257, 258, 310, 42,
200
+ /* 60 */ 263, 288, 162, 163, 164, 165, 166, 167, 262, 7,
201
+ /* 70 */ 6, 17, 4, 3, 2, 18, 170, 5, 303, 225,
202
+ /* 80 */ 273, 276, 279, 274, 277, 280, 308, 271, 294, 168,
203
+ /* 90 */ 39, 39, 46, 223, 16, 257, 258, 310, 42, 19,
204
+ /* 100 */ 288, 162, 163, 164, 165, 166, 167, 262, 7, 6,
205
+ /* 110 */ 17, 4, 3, 2, 18, 170, 5, 303, 253, 273,
206
+ /* 120 */ 276, 279, 274, 277, 280, 308, 271, 294, 160, 37,
207
+ /* 130 */ 172, 173, 174, 175, 176, 177, 45, 179, 30, 181,
208
+ /* 140 */ 32, 41, 40, 29, 14, 188, 189, 190, 310, 314,
209
+ /* 150 */ 254, 271, 32, 226, 257, 258, 253, 38, 38, 27,
210
+ /* 160 */ 191, 26, 25, 197, 28, 5, 41, 40, 284, 8,
211
+ /* 170 */ 204, 43, 281, 15, 15, 33, 33, 248, 283, 285,
212
+ /* 180 */ 284, 34, 34, 6, 281, 207, 35, 35, 254, 228,
213
+ /* 190 */ 283, 285, 12, 44, 12, 13, 13, 233, 219, 221,
214
+ /* 200 */ 217, 220, 222, 7, 287, 282, 286, 36, 36, 31,
215
+ /* 210 */ 215, 212, 213, 216, 31, 284, 287, 282, 286, 281,
216
+ /* 220 */ 31, 9, 9, 20, 20, 283, 285, 200, 200, 192,
217
+ /* 230 */ 471, 471, 9, 9, 20, 20, 246, 244, 199, 199,
218
+ /* 240 */ 246, 207, 31, 257, 258, 208, 209, 210, 239, 318,
219
+ /* 250 */ 31, 287, 282, 286, 9, 9, 20, 20, 31, 318,
220
+ /* 260 */ 198, 198, 9, 9, 20, 20, 318, 31, 205, 205,
221
+ /* 270 */ 10, 10, 22, 22, 227, 234, 31, 318, 318, 11,
222
+ /* 280 */ 11, 23, 23, 298, 229, 31, 318, 295, 318, 191,
223
+ /* 290 */ 21, 21, 318, 297, 299, 186, 318, 305, 191, 24,
224
+ /* 300 */ 24, 291, 318, 306, 318, 289, 318, 318, 318, 318,
225
+ /* 310 */ 318, 290, 292, 318, 318, 318, 318, 318, 318, 224,
226
+ /* 320 */ 296, 304,
226
227
  };
227
228
  static const YYCODETYPE yy_lookahead[] = {
228
- /* 0 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
229
- /* 10 */ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
230
- /* 20 */ 61, 62, 86, 87, 88, 89, 67, 86, 2, 3,
231
- /* 30 */ 89, 72, 73, 74, 38, 76, 77, 75, 79, 75,
232
- /* 40 */ 81, 82, 75, 84, 78, 86, 5, 88, 89, 0,
233
- /* 50 */ 1, 9, 10, 4, 28, 6, 7, 8, 9, 10,
234
- /* 60 */ 19, 12, 13, 14, 15, 16, 17, 18, 19, 20,
235
- /* 70 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 80,
236
- /* 80 */ 31, 32, 33, 34, 35, 36, 37, 38, 39, 1,
237
- /* 90 */ 72, 73, 4, 83, 6, 7, 8, 9, 10, 67,
238
- /* 100 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
239
- /* 110 */ 22, 23, 24, 25, 26, 27, 28, 29, 5, 31,
240
- /* 120 */ 32, 33, 34, 35, 36, 37, 38, 39, 43, 44,
241
- /* 130 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
242
- /* 140 */ 55, 56, 57, 58, 59, 60, 61, 62, 9, 10,
243
- /* 150 */ 37, 38, 67, 67, 7, 8, 5, 72, 73, 74,
244
- /* 160 */ 64, 76, 77, 3, 79, 5, 81, 82, 1, 84,
245
- /* 170 */ 71, 86, 5, 88, 89, 63, 64, 38, 11, 12,
246
- /* 180 */ 1, 63, 64, 28, 5, 38, 63, 64, 37, 29,
247
- /* 190 */ 11, 12, 85, 86, 87, 88, 89, 73, 31, 32,
248
- /* 200 */ 33, 34, 35, 21, 37, 38, 39, 63, 64, 51,
249
- /* 210 */ 31, 32, 33, 34, 51, 1, 37, 38, 39, 5,
250
- /* 220 */ 51, 63, 64, 65, 66, 11, 12, 69, 70, 66,
251
- /* 230 */ 2, 3, 63, 64, 65, 66, 9, 10, 69, 70,
252
- /* 240 */ 20, 82, 51, 7, 8, 31, 32, 33, 9, 81,
253
- /* 250 */ 51, 37, 38, 39, 63, 64, 65, 66, 51, 38,
254
- /* 260 */ 69, 70, 63, 64, 65, 66, 29, 51, 69, 70,
255
- /* 270 */ 63, 64, 65, 66, 38, 68, 51, 90, 90, 63,
256
- /* 280 */ 64, 65, 66, 1, 68, 51, 90, 5, 90, 64,
257
- /* 290 */ 65, 66, 1, 11, 12, 90, 5, 90, 64, 65,
258
- /* 300 */ 66, 90, 11, 12, 90, 90, 90, 90, 90, 90,
259
- /* 310 */ 90, 90, 90, 90, 90, 90, 90, 90, 90, 37,
260
- /* 320 */ 38,
229
+ /* 0 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
230
+ /* 10 */ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
231
+ /* 20 */ 61, 62, 86, 87, 88, 89, 67, 86, 2, 3,
232
+ /* 30 */ 89, 72, 73, 74, 38, 76, 77, 75, 79, 75,
233
+ /* 40 */ 81, 82, 75, 84, 83, 86, 5, 88, 89, 0,
234
+ /* 50 */ 1, 9, 10, 4, 28, 6, 7, 8, 9, 10,
235
+ /* 60 */ 19, 12, 13, 14, 15, 16, 17, 18, 19, 20,
236
+ /* 70 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 80,
237
+ /* 80 */ 31, 32, 33, 34, 35, 36, 37, 38, 39, 1,
238
+ /* 90 */ 72, 73, 4, 78, 6, 7, 8, 9, 10, 67,
239
+ /* 100 */ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
240
+ /* 110 */ 22, 23, 24, 25, 26, 27, 28, 29, 5, 31,
241
+ /* 120 */ 32, 33, 34, 35, 36, 37, 38, 39, 43, 44,
242
+ /* 130 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
243
+ /* 140 */ 55, 56, 57, 58, 59, 60, 61, 62, 9, 10,
244
+ /* 150 */ 37, 38, 67, 67, 7, 8, 5, 72, 73, 74,
245
+ /* 160 */ 64, 76, 77, 71, 79, 28, 81, 82, 1, 84,
246
+ /* 170 */ 73, 86, 5, 88, 89, 63, 64, 38, 11, 12,
247
+ /* 180 */ 1, 63, 64, 21, 5, 38, 63, 64, 37, 81,
248
+ /* 190 */ 11, 12, 85, 86, 87, 88, 89, 82, 31, 32,
249
+ /* 200 */ 33, 34, 35, 20, 37, 38, 39, 63, 64, 51,
250
+ /* 210 */ 31, 32, 33, 34, 51, 1, 37, 38, 39, 5,
251
+ /* 220 */ 51, 63, 64, 65, 66, 11, 12, 69, 70, 66,
252
+ /* 230 */ 2, 3, 63, 64, 65, 66, 9, 10, 69, 70,
253
+ /* 240 */ 9, 38, 51, 7, 8, 31, 32, 33, 29, 90,
254
+ /* 250 */ 51, 37, 38, 39, 63, 64, 65, 66, 51, 90,
255
+ /* 260 */ 69, 70, 63, 64, 65, 66, 90, 51, 69, 70,
256
+ /* 270 */ 63, 64, 65, 66, 38, 68, 51, 90, 90, 63,
257
+ /* 280 */ 64, 65, 66, 1, 68, 51, 90, 5, 90, 64,
258
+ /* 290 */ 65, 66, 90, 11, 12, 3, 90, 5, 64, 65,
259
+ /* 300 */ 66, 1, 90, 11, 90, 5, 90, 90, 90, 90,
260
+ /* 310 */ 90, 11, 12, 90, 90, 90, 90, 90, 90, 37,
261
+ /* 320 */ 38, 29,
261
262
  };
262
- #define YY_SHIFT_USE_DFLT (321)
263
+ #define YY_SHIFT_USE_DFLT (322)
263
264
  #define YY_SHIFT_COUNT (46)
264
265
  #define YY_SHIFT_MIN (-4)
265
- #define YY_SHIFT_MAX (291)
266
+ #define YY_SHIFT_MAX (300)
266
267
  static const short yy_shift_ofst[] = {
267
- /* 0 */ 88, 49, 113, 113, 113, 113, 113, 113, 42, 113,
268
- /* 10 */ 113, 113, 42, 139, 26, 42, 151, 151, 151, 151,
269
- /* 20 */ -4, -4, -4, -4, -4, 167, 179, 214, 282, 291,
270
- /* 30 */ 160, 147, 236, 151, 151, 151, 151, 41, 155, 155,
271
- /* 40 */ 182, 220, 228, 227, 239, 221, 237,
268
+ /* 0 */ 88, 49, 113, 113, 113, 113, 113, 113, 42, 113,
269
+ /* 10 */ 113, 113, 42, 139, 26, 42, 151, 151, 151, 151,
270
+ /* 20 */ -4, -4, -4, -4, -4, 167, 179, 214, 282, 292,
271
+ /* 30 */ 300, 147, 236, 151, 151, 151, 151, 41, 137, 137,
272
+ /* 40 */ 162, 183, 228, 227, 231, 203, 219,
272
273
  };
273
274
  #define YY_REDUCE_USE_DFLT (-65)
274
275
  #define YY_REDUCE_COUNT (41)
275
276
  #define YY_REDUCE_MIN (-64)
276
277
  #define YY_REDUCE_MAX (234)
277
278
  static const short yy_reduce_ofst[] = {
278
- /* 0 */ -41, 85, 158, 169, 191, 199, 207, 216, 107, 225,
279
- /* 10 */ 234, 234, -64, -59, 18, -59, 112, 118, 123, 144,
280
- /* 20 */ 163, 163, 163, 163, 163, -38, -36, -33, -1, -34,
281
- /* 30 */ 10, 32, 86, 96, 96, 96, 96, 99, 124, 124,
282
- /* 40 */ 159, 168,
279
+ /* 0 */ -41, 85, 158, 169, 191, 199, 207, 216, 107, 225,
280
+ /* 10 */ 234, 234, -64, -59, 18, -59, 112, 118, 123, 144,
281
+ /* 20 */ 163, 163, 163, 163, 163, -38, -36, -33, -1, -39,
282
+ /* 30 */ 15, 32, 86, 96, 96, 96, 96, 92, 97, 97,
283
+ /* 40 */ 115, 108,
283
284
  };
284
285
  static const YYACTIONTYPE yy_default[] = {
285
- /* 0 */ 470, 470, 422, 421, 420, 361, 392, 387, 463, 414,
286
- /* 10 */ 390, 385, 398, 404, 342, 406, 461, 424, 423, 349,
287
- /* 20 */ 416, 351, 391, 386, 350, 433, 430, 427, 448, 335,
288
- /* 30 */ 340, 411, 337, 395, 357, 356, 348, 326, 469, 358,
289
- /* 40 */ 339, 338, 400, 467, 467, 333, 324,
286
+ /* 0 */ 473, 473, 424, 423, 422, 363, 394, 389, 466, 416,
287
+ /* 10 */ 392, 387, 400, 406, 344, 408, 464, 426, 425, 351,
288
+ /* 20 */ 418, 353, 393, 388, 352, 435, 432, 429, 450, 342,
289
+ /* 30 */ 337, 413, 339, 397, 359, 358, 350, 328, 472, 360,
290
+ /* 40 */ 341, 340, 402, 470, 470, 335, 326,
290
291
  };
291
292
  /********** End of lemon-generated parsing tables *****************************/
292
293
 
293
- /* The next table maps tokens (terminal symbols) into fallback tokens.
294
+ /* The next table maps tokens (terminal symbols) into fallback tokens.
294
295
  ** If a construct like the following:
295
- **
296
+ **
296
297
  ** %fallback ID X Y Z.
297
298
  **
298
299
  ** appears in the grammar, then ID becomes a fallback token for X, Y,
@@ -306,43 +307,43 @@ static const YYACTIONTYPE yy_default[] = {
306
307
  */
307
308
  #ifdef YYFALLBACK
308
309
  static const YYCODETYPE yyFallback[] = {
309
- 0, /* $ => nothing */
310
- 0, /* LINE_HR => nothing */
311
- 1, /* LINE_SETEXT_1 => LINE_HR */
312
- 1, /* LINE_SETEXT_2 => LINE_HR */
313
- 1, /* LINE_YAML => LINE_HR */
314
- 0, /* LINE_CONTINUATION => nothing */
315
- 5, /* LINE_PLAIN => LINE_CONTINUATION */
316
- 5, /* LINE_INDENTED_TAB => LINE_CONTINUATION */
317
- 5, /* LINE_INDENTED_SPACE => LINE_CONTINUATION */
318
- 5, /* LINE_TABLE => LINE_CONTINUATION */
319
- 5, /* LINE_TABLE_SEPARATOR => LINE_CONTINUATION */
320
- 0, /* LINE_FALLBACK => nothing */
321
- 11, /* LINE_HTML => LINE_FALLBACK */
322
- 11, /* LINE_ATX_1 => LINE_FALLBACK */
323
- 11, /* LINE_ATX_2 => LINE_FALLBACK */
324
- 11, /* LINE_ATX_3 => LINE_FALLBACK */
325
- 11, /* LINE_ATX_4 => LINE_FALLBACK */
326
- 11, /* LINE_ATX_5 => LINE_FALLBACK */
327
- 11, /* LINE_ATX_6 => LINE_FALLBACK */
328
- 11, /* LINE_BLOCKQUOTE => LINE_FALLBACK */
329
- 11, /* LINE_LIST_BULLETED => LINE_FALLBACK */
330
- 11, /* LINE_LIST_ENUMERATED => LINE_FALLBACK */
331
- 11, /* LINE_DEF_ABBREVIATION => LINE_FALLBACK */
332
- 11, /* LINE_DEF_CITATION => LINE_FALLBACK */
333
- 11, /* LINE_DEF_FOOTNOTE => LINE_FALLBACK */
334
- 11, /* LINE_DEF_GLOSSARY => LINE_FALLBACK */
335
- 11, /* LINE_DEF_LINK => LINE_FALLBACK */
336
- 11, /* LINE_TOC => LINE_FALLBACK */
337
- 11, /* LINE_DEFINITION => LINE_FALLBACK */
338
- 11, /* LINE_META => LINE_FALLBACK */
339
- 0, /* LINE_BACKTICK => nothing */
340
- 30, /* LINE_FENCE_BACKTICK_3 => LINE_BACKTICK */
341
- 30, /* LINE_FENCE_BACKTICK_4 => LINE_BACKTICK */
342
- 30, /* LINE_FENCE_BACKTICK_5 => LINE_BACKTICK */
343
- 30, /* LINE_FENCE_BACKTICK_START_3 => LINE_BACKTICK */
344
- 30, /* LINE_FENCE_BACKTICK_START_4 => LINE_BACKTICK */
345
- 30, /* LINE_FENCE_BACKTICK_START_5 => LINE_BACKTICK */
310
+ 0, /* $ => nothing */
311
+ 0, /* LINE_HR => nothing */
312
+ 1, /* LINE_SETEXT_1 => LINE_HR */
313
+ 1, /* LINE_SETEXT_2 => LINE_HR */
314
+ 1, /* LINE_YAML => LINE_HR */
315
+ 0, /* LINE_CONTINUATION => nothing */
316
+ 5, /* LINE_PLAIN => LINE_CONTINUATION */
317
+ 5, /* LINE_INDENTED_TAB => LINE_CONTINUATION */
318
+ 5, /* LINE_INDENTED_SPACE => LINE_CONTINUATION */
319
+ 5, /* LINE_TABLE => LINE_CONTINUATION */
320
+ 5, /* LINE_TABLE_SEPARATOR => LINE_CONTINUATION */
321
+ 0, /* LINE_FALLBACK => nothing */
322
+ 11, /* LINE_HTML => LINE_FALLBACK */
323
+ 11, /* LINE_ATX_1 => LINE_FALLBACK */
324
+ 11, /* LINE_ATX_2 => LINE_FALLBACK */
325
+ 11, /* LINE_ATX_3 => LINE_FALLBACK */
326
+ 11, /* LINE_ATX_4 => LINE_FALLBACK */
327
+ 11, /* LINE_ATX_5 => LINE_FALLBACK */
328
+ 11, /* LINE_ATX_6 => LINE_FALLBACK */
329
+ 11, /* LINE_BLOCKQUOTE => LINE_FALLBACK */
330
+ 11, /* LINE_LIST_BULLETED => LINE_FALLBACK */
331
+ 11, /* LINE_LIST_ENUMERATED => LINE_FALLBACK */
332
+ 11, /* LINE_DEF_ABBREVIATION => LINE_FALLBACK */
333
+ 11, /* LINE_DEF_CITATION => LINE_FALLBACK */
334
+ 11, /* LINE_DEF_FOOTNOTE => LINE_FALLBACK */
335
+ 11, /* LINE_DEF_GLOSSARY => LINE_FALLBACK */
336
+ 11, /* LINE_DEF_LINK => LINE_FALLBACK */
337
+ 11, /* LINE_TOC => LINE_FALLBACK */
338
+ 11, /* LINE_DEFINITION => LINE_FALLBACK */
339
+ 11, /* LINE_META => LINE_FALLBACK */
340
+ 0, /* LINE_BACKTICK => nothing */
341
+ 30, /* LINE_FENCE_BACKTICK_3 => LINE_BACKTICK */
342
+ 30, /* LINE_FENCE_BACKTICK_4 => LINE_BACKTICK */
343
+ 30, /* LINE_FENCE_BACKTICK_5 => LINE_BACKTICK */
344
+ 30, /* LINE_FENCE_BACKTICK_START_3 => LINE_BACKTICK */
345
+ 30, /* LINE_FENCE_BACKTICK_START_4 => LINE_BACKTICK */
346
+ 30, /* LINE_FENCE_BACKTICK_START_5 => LINE_BACKTICK */
346
347
  };
347
348
  #endif /* YYFALLBACK */
348
349
 
@@ -363,10 +364,10 @@ static const YYCODETYPE yyFallback[] = {
363
364
  ** SHIFTREDUCE.
364
365
  */
365
366
  struct yyStackEntry {
366
- YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */
367
- YYCODETYPE major; /* The major token value. This is the code
367
+ YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */
368
+ YYCODETYPE major; /* The major token value. This is the code
368
369
  ** number for the token at this stack level */
369
- YYMINORTYPE minor; /* The user-supplied minor token value. This
370
+ YYMINORTYPE minor; /* The user-supplied minor token value. This
370
371
  ** is the value of the token */
371
372
  };
372
373
  typedef struct yyStackEntry yyStackEntry;
@@ -374,35 +375,35 @@ typedef struct yyStackEntry yyStackEntry;
374
375
  /* The state of the parser is completely contained in an instance of
375
376
  ** the following structure */
376
377
  struct yyParser {
377
- yyStackEntry *yytos; /* Pointer to top element of the stack */
378
+ yyStackEntry * yytos; /* Pointer to top element of the stack */
378
379
  #ifdef YYTRACKMAXSTACKDEPTH
379
- int yyhwm; /* High-water mark of the stack */
380
+ int yyhwm; /* High-water mark of the stack */
380
381
  #endif
381
382
  #ifndef YYNOERRORRECOVERY
382
- int yyerrcnt; /* Shifts left before out of the error */
383
+ int yyerrcnt; /* Shifts left before out of the error */
383
384
  #endif
384
- ParseARG_SDECL /* A place to hold %extra_argument */
385
+ ParseARG_SDECL /* A place to hold %extra_argument */
385
386
  #if YYSTACKDEPTH<=0
386
- int yystksz; /* Current side of the stack */
387
- yyStackEntry *yystack; /* The parser's stack */
388
- yyStackEntry yystk0; /* First stack entry */
387
+ int yystksz; /* Current side of the stack */
388
+ yyStackEntry * yystack; /* The parser's stack */
389
+ yyStackEntry yystk0; /* First stack entry */
389
390
  #else
390
- yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */
391
+ yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */
391
392
  #endif
392
393
  };
393
394
  typedef struct yyParser yyParser;
394
395
 
395
396
  #ifndef NDEBUG
396
- #include <stdio.h>
397
- static FILE *yyTraceFILE = 0;
398
- static char *yyTracePrompt = 0;
397
+ #include <stdio.h>
398
+ static FILE * yyTraceFILE = 0;
399
+ static char * yyTracePrompt = 0;
399
400
  #endif /* NDEBUG */
400
401
 
401
402
  #ifndef NDEBUG
402
- /*
403
+ /*
403
404
  ** Turn parser tracing on by giving a stream to which to write the trace
404
405
  ** and a prompt to preface each trace message. Tracing is turned off
405
- ** by making either argument NULL
406
+ ** by making either argument NULL
406
407
  **
407
408
  ** Inputs:
408
409
  ** <ul>
@@ -416,204 +417,209 @@ static char *yyTracePrompt = 0;
416
417
  ** Outputs:
417
418
  ** None.
418
419
  */
419
- void ParseTrace(FILE *TraceFILE, char *zTracePrompt){
420
- yyTraceFILE = TraceFILE;
421
- yyTracePrompt = zTracePrompt;
422
- if( yyTraceFILE==0 ) yyTracePrompt = 0;
423
- else if( yyTracePrompt==0 ) yyTraceFILE = 0;
420
+ void ParseTrace(FILE * TraceFILE, char * zTracePrompt) {
421
+ yyTraceFILE = TraceFILE;
422
+ yyTracePrompt = zTracePrompt;
423
+
424
+ if ( yyTraceFILE == 0 ) {
425
+ yyTracePrompt = 0;
426
+ } else if ( yyTracePrompt == 0 ) {
427
+ yyTraceFILE = 0;
428
+ }
424
429
  }
425
430
  #endif /* NDEBUG */
426
431
 
427
432
  #ifndef NDEBUG
428
433
  /* For tracing shifts, the names of all terminals and nonterminals
429
434
  ** are required. The following table supplies these names */
430
- static const char *const yyTokenName[] = {
431
- "$", "LINE_HR", "LINE_SETEXT_1", "LINE_SETEXT_2",
432
- "LINE_YAML", "LINE_CONTINUATION", "LINE_PLAIN", "LINE_INDENTED_TAB",
433
- "LINE_INDENTED_SPACE", "LINE_TABLE", "LINE_TABLE_SEPARATOR", "LINE_FALLBACK",
434
- "LINE_HTML", "LINE_ATX_1", "LINE_ATX_2", "LINE_ATX_3",
435
- "LINE_ATX_4", "LINE_ATX_5", "LINE_ATX_6", "LINE_BLOCKQUOTE",
436
- "LINE_LIST_BULLETED", "LINE_LIST_ENUMERATED", "LINE_DEF_ABBREVIATION", "LINE_DEF_CITATION",
437
- "LINE_DEF_FOOTNOTE", "LINE_DEF_GLOSSARY", "LINE_DEF_LINK", "LINE_TOC",
438
- "LINE_DEFINITION", "LINE_META", "LINE_BACKTICK", "LINE_FENCE_BACKTICK_3",
439
- "LINE_FENCE_BACKTICK_4", "LINE_FENCE_BACKTICK_5", "LINE_FENCE_BACKTICK_START_3", "LINE_FENCE_BACKTICK_START_4",
440
- "LINE_FENCE_BACKTICK_START_5", "LINE_STOP_COMMENT", "LINE_EMPTY", "LINE_START_COMMENT",
441
- "error", "doc", "blocks", "block",
442
- "blockquote", "def_abbreviation", "def_citation", "def_footnote",
443
- "def_glossary", "def_link", "definition_block", "empty",
444
- "fenced_block", "html_block", "html_com_block", "indented_code",
445
- "list_bullet", "list_enum", "meta_block", "para",
446
- "setext_1", "setext_2", "table", "chunk",
447
- "chunk_line", "nested_chunks", "nested_chunk", "indented_line",
448
- "ext_chunk", "opt_ext_chunk", "tail", "quote_line",
449
- "defs", "def", "fenced_3", "fenced_line",
450
- "fenced_4", "fenced_5", "html_line", "html_comment",
451
- "comment_line", "item_bullet", "item_enum", "meta_line",
452
- "table_header", "table_body", "header_rows", "table_section",
453
- "all_rows", "row",
435
+ static const char * const yyTokenName[] = {
436
+ "$", "LINE_HR", "LINE_SETEXT_1", "LINE_SETEXT_2",
437
+ "LINE_YAML", "LINE_CONTINUATION", "LINE_PLAIN", "LINE_INDENTED_TAB",
438
+ "LINE_INDENTED_SPACE", "LINE_TABLE", "LINE_TABLE_SEPARATOR", "LINE_FALLBACK",
439
+ "LINE_HTML", "LINE_ATX_1", "LINE_ATX_2", "LINE_ATX_3",
440
+ "LINE_ATX_4", "LINE_ATX_5", "LINE_ATX_6", "LINE_BLOCKQUOTE",
441
+ "LINE_LIST_BULLETED", "LINE_LIST_ENUMERATED", "LINE_DEF_ABBREVIATION", "LINE_DEF_CITATION",
442
+ "LINE_DEF_FOOTNOTE", "LINE_DEF_GLOSSARY", "LINE_DEF_LINK", "LINE_TOC",
443
+ "LINE_DEFINITION", "LINE_META", "LINE_BACKTICK", "LINE_FENCE_BACKTICK_3",
444
+ "LINE_FENCE_BACKTICK_4", "LINE_FENCE_BACKTICK_5", "LINE_FENCE_BACKTICK_START_3", "LINE_FENCE_BACKTICK_START_4",
445
+ "LINE_FENCE_BACKTICK_START_5", "LINE_STOP_COMMENT", "LINE_EMPTY", "LINE_START_COMMENT",
446
+ "error", "doc", "blocks", "block",
447
+ "blockquote", "def_abbreviation", "def_citation", "def_footnote",
448
+ "def_glossary", "def_link", "definition_block", "empty",
449
+ "fenced_block", "html_block", "html_com_block", "indented_code",
450
+ "list_bullet", "list_enum", "meta_block", "para",
451
+ "setext_1", "setext_2", "table", "chunk",
452
+ "chunk_line", "nested_chunks", "nested_chunk", "indented_line",
453
+ "ext_chunk", "opt_ext_chunk", "tail", "quote_line",
454
+ "defs", "def", "fenced_3", "fenced_line",
455
+ "fenced_4", "fenced_5", "html_line", "html_comment",
456
+ "comment_line", "item_bullet", "item_enum", "meta_line",
457
+ "table_header", "table_body", "header_rows", "table_section",
458
+ "all_rows", "row",
454
459
  };
455
460
  #endif /* NDEBUG */
456
461
 
457
462
  #ifndef NDEBUG
458
463
  /* For tracing reduce actions, the names of all rules are required.
459
464
  */
460
- static const char *const yyRuleName[] = {
461
- /* 0 */ "doc ::= blocks",
462
- /* 1 */ "blocks ::= blocks block",
463
- /* 2 */ "blocks ::= block",
464
- /* 3 */ "block ::= LINE_ATX_1",
465
- /* 4 */ "block ::= LINE_ATX_2",
466
- /* 5 */ "block ::= LINE_ATX_3",
467
- /* 6 */ "block ::= LINE_ATX_4",
468
- /* 7 */ "block ::= LINE_ATX_5",
469
- /* 8 */ "block ::= LINE_ATX_6",
470
- /* 9 */ "block ::= LINE_HR",
471
- /* 10 */ "block ::= LINE_YAML",
472
- /* 11 */ "block ::= LINE_TOC",
473
- /* 12 */ "block ::= blockquote",
474
- /* 13 */ "block ::= def_abbreviation",
475
- /* 14 */ "block ::= def_citation",
476
- /* 15 */ "block ::= def_footnote",
477
- /* 16 */ "block ::= def_glossary",
478
- /* 17 */ "block ::= def_link",
479
- /* 18 */ "block ::= definition_block",
480
- /* 19 */ "block ::= empty",
481
- /* 20 */ "block ::= fenced_block",
482
- /* 21 */ "block ::= html_block",
483
- /* 22 */ "block ::= html_com_block",
484
- /* 23 */ "block ::= indented_code",
485
- /* 24 */ "block ::= list_bullet",
486
- /* 25 */ "block ::= list_enum",
487
- /* 26 */ "block ::= meta_block",
488
- /* 27 */ "block ::= meta_block LINE_SETEXT_2",
489
- /* 28 */ "block ::= para",
490
- /* 29 */ "block ::= setext_1",
491
- /* 30 */ "block ::= setext_2",
492
- /* 31 */ "block ::= table",
493
- /* 32 */ "chunk ::= chunk chunk_line",
494
- /* 33 */ "nested_chunks ::= nested_chunks nested_chunk",
495
- /* 34 */ "nested_chunk ::= empty indented_line chunk",
496
- /* 35 */ "nested_chunk ::= empty indented_line",
497
- /* 36 */ "ext_chunk ::= chunk nested_chunks",
498
- /* 37 */ "opt_ext_chunk ::= chunk nested_chunks",
499
- /* 38 */ "blockquote ::= blockquote quote_line",
500
- /* 39 */ "def_citation ::= LINE_DEF_CITATION tail",
501
- /* 40 */ "def_footnote ::= LINE_DEF_FOOTNOTE tail",
502
- /* 41 */ "def_glossary ::= LINE_DEF_GLOSSARY tail",
503
- /* 42 */ "def_link ::= LINE_DEF_LINK chunk",
504
- /* 43 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION chunk",
505
- /* 44 */ "definition_block ::= para defs",
506
- /* 45 */ "defs ::= defs def",
507
- /* 46 */ "def ::= LINE_DEFINITION tail",
508
- /* 47 */ "def ::= LINE_DEFINITION",
509
- /* 48 */ "empty ::= empty LINE_EMPTY",
510
- /* 49 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3",
511
- /* 50 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4",
512
- /* 51 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5",
513
- /* 52 */ "fenced_3 ::= fenced_3 fenced_line",
514
- /* 53 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4",
515
- /* 54 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5",
516
- /* 55 */ "fenced_4 ::= fenced_4 fenced_line",
517
- /* 56 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3",
518
- /* 57 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3",
519
- /* 58 */ "fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5",
520
- /* 59 */ "fenced_5 ::= fenced_5 fenced_line",
521
- /* 60 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3",
522
- /* 61 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3",
523
- /* 62 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4",
524
- /* 63 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4",
525
- /* 64 */ "html_block ::= html_block html_line",
526
- /* 65 */ "html_com_block ::= html_comment LINE_STOP_COMMENT",
527
- /* 66 */ "html_comment ::= html_comment comment_line",
528
- /* 67 */ "indented_code ::= indented_code indented_line",
529
- /* 68 */ "indented_code ::= indented_code LINE_EMPTY",
530
- /* 69 */ "list_bullet ::= list_bullet item_bullet",
531
- /* 70 */ "item_bullet ::= LINE_LIST_BULLETED ext_chunk",
532
- /* 71 */ "item_bullet ::= LINE_LIST_BULLETED chunk",
533
- /* 72 */ "item_bullet ::= LINE_LIST_BULLETED nested_chunks",
534
- /* 73 */ "item_bullet ::= LINE_LIST_BULLETED",
535
- /* 74 */ "list_enum ::= list_enum item_enum",
536
- /* 75 */ "item_enum ::= LINE_LIST_ENUMERATED ext_chunk",
537
- /* 76 */ "item_enum ::= LINE_LIST_ENUMERATED chunk",
538
- /* 77 */ "item_enum ::= LINE_LIST_ENUMERATED nested_chunks",
539
- /* 78 */ "item_enum ::= LINE_LIST_ENUMERATED",
540
- /* 79 */ "meta_block ::= meta_block meta_line",
541
- /* 80 */ "meta_block ::= LINE_YAML LINE_META",
542
- /* 81 */ "para ::= LINE_PLAIN chunk",
543
- /* 82 */ "setext_1 ::= para LINE_SETEXT_1",
544
- /* 83 */ "setext_2 ::= para LINE_SETEXT_2",
545
- /* 84 */ "table ::= table_header table_body",
546
- /* 85 */ "table_header ::= header_rows LINE_TABLE_SEPARATOR",
547
- /* 86 */ "table_header ::= LINE_TABLE_SEPARATOR",
548
- /* 87 */ "header_rows ::= header_rows LINE_TABLE",
549
- /* 88 */ "table_body ::= table_body table_section",
550
- /* 89 */ "table_section ::= all_rows LINE_EMPTY",
551
- /* 90 */ "table_section ::= all_rows",
552
- /* 91 */ "all_rows ::= all_rows row",
553
- /* 92 */ "para ::= all_rows",
554
- /* 93 */ "chunk ::= chunk_line",
555
- /* 94 */ "chunk_line ::= LINE_CONTINUATION",
556
- /* 95 */ "chunk_line ::= LINE_STOP_COMMENT",
557
- /* 96 */ "nested_chunks ::= nested_chunk",
558
- /* 97 */ "nested_chunk ::= empty",
559
- /* 98 */ "indented_line ::= LINE_INDENTED_TAB",
560
- /* 99 */ "indented_line ::= LINE_INDENTED_SPACE",
561
- /* 100 */ "opt_ext_chunk ::= chunk",
562
- /* 101 */ "tail ::= opt_ext_chunk",
563
- /* 102 */ "tail ::= nested_chunks",
564
- /* 103 */ "blockquote ::= LINE_BLOCKQUOTE",
565
- /* 104 */ "quote_line ::= LINE_BLOCKQUOTE",
566
- /* 105 */ "quote_line ::= LINE_CONTINUATION",
567
- /* 106 */ "def_citation ::= LINE_DEF_CITATION",
568
- /* 107 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
569
- /* 108 */ "def_glossary ::= LINE_DEF_GLOSSARY",
570
- /* 109 */ "def_link ::= LINE_DEF_LINK",
571
- /* 110 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
572
- /* 111 */ "defs ::= def",
573
- /* 112 */ "empty ::= LINE_EMPTY",
574
- /* 113 */ "fenced_block ::= fenced_3",
575
- /* 114 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
576
- /* 115 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
577
- /* 116 */ "fenced_block ::= fenced_4",
578
- /* 117 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
579
- /* 118 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
580
- /* 119 */ "fenced_block ::= fenced_5",
581
- /* 120 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
582
- /* 121 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
583
- /* 122 */ "fenced_line ::= LINE_CONTINUATION",
584
- /* 123 */ "fenced_line ::= LINE_EMPTY",
585
- /* 124 */ "fenced_line ::= LINE_FALLBACK",
586
- /* 125 */ "fenced_line ::= LINE_HR",
587
- /* 126 */ "fenced_line ::= LINE_HTML",
588
- /* 127 */ "fenced_line ::= LINE_START_COMMENT",
589
- /* 128 */ "fenced_line ::= LINE_STOP_COMMENT",
590
- /* 129 */ "html_block ::= LINE_HTML",
591
- /* 130 */ "html_line ::= LINE_CONTINUATION",
592
- /* 131 */ "html_line ::= LINE_FALLBACK",
593
- /* 132 */ "html_line ::= LINE_HR",
594
- /* 133 */ "html_line ::= LINE_HTML",
595
- /* 134 */ "html_com_block ::= html_comment",
596
- /* 135 */ "html_comment ::= LINE_START_COMMENT",
597
- /* 136 */ "comment_line ::= LINE_CONTINUATION",
598
- /* 137 */ "comment_line ::= LINE_EMPTY",
599
- /* 138 */ "comment_line ::= LINE_FALLBACK",
600
- /* 139 */ "comment_line ::= LINE_HR",
601
- /* 140 */ "comment_line ::= LINE_HTML",
602
- /* 141 */ "indented_code ::= indented_line",
603
- /* 142 */ "list_bullet ::= item_bullet",
604
- /* 143 */ "list_enum ::= item_enum",
605
- /* 144 */ "meta_block ::= LINE_META",
606
- /* 145 */ "meta_line ::= LINE_META",
607
- /* 146 */ "meta_line ::= LINE_CONTINUATION",
608
- /* 147 */ "para ::= LINE_PLAIN",
609
- /* 148 */ "para ::= LINE_STOP_COMMENT",
610
- /* 149 */ "table ::= table_header",
611
- /* 150 */ "header_rows ::= LINE_TABLE",
612
- /* 151 */ "table_body ::= table_section",
613
- /* 152 */ "all_rows ::= row",
614
- /* 153 */ "row ::= header_rows",
615
- /* 154 */ "row ::= LINE_TABLE_SEPARATOR",
616
- /* 155 */ "para ::= defs",
465
+ static const char * const yyRuleName[] = {
466
+ /* 0 */ "doc ::= blocks",
467
+ /* 1 */ "blocks ::= blocks block",
468
+ /* 2 */ "blocks ::= block",
469
+ /* 3 */ "block ::= LINE_ATX_1",
470
+ /* 4 */ "block ::= LINE_ATX_2",
471
+ /* 5 */ "block ::= LINE_ATX_3",
472
+ /* 6 */ "block ::= LINE_ATX_4",
473
+ /* 7 */ "block ::= LINE_ATX_5",
474
+ /* 8 */ "block ::= LINE_ATX_6",
475
+ /* 9 */ "block ::= LINE_HR",
476
+ /* 10 */ "block ::= LINE_YAML",
477
+ /* 11 */ "block ::= LINE_TOC",
478
+ /* 12 */ "block ::= blockquote",
479
+ /* 13 */ "block ::= def_abbreviation",
480
+ /* 14 */ "block ::= def_citation",
481
+ /* 15 */ "block ::= def_footnote",
482
+ /* 16 */ "block ::= def_glossary",
483
+ /* 17 */ "block ::= def_link",
484
+ /* 18 */ "block ::= definition_block",
485
+ /* 19 */ "block ::= empty",
486
+ /* 20 */ "block ::= fenced_block",
487
+ /* 21 */ "block ::= html_block",
488
+ /* 22 */ "block ::= html_com_block",
489
+ /* 23 */ "block ::= indented_code",
490
+ /* 24 */ "block ::= list_bullet",
491
+ /* 25 */ "block ::= list_enum",
492
+ /* 26 */ "block ::= meta_block",
493
+ /* 27 */ "block ::= meta_block LINE_SETEXT_2",
494
+ /* 28 */ "block ::= para",
495
+ /* 29 */ "block ::= setext_1",
496
+ /* 30 */ "block ::= setext_2",
497
+ /* 31 */ "block ::= table",
498
+ /* 32 */ "chunk ::= chunk chunk_line",
499
+ /* 33 */ "nested_chunks ::= nested_chunks nested_chunk",
500
+ /* 34 */ "nested_chunk ::= empty indented_line chunk",
501
+ /* 35 */ "nested_chunk ::= empty indented_line",
502
+ /* 36 */ "ext_chunk ::= chunk nested_chunks",
503
+ /* 37 */ "opt_ext_chunk ::= chunk nested_chunks",
504
+ /* 38 */ "blockquote ::= blockquote quote_line",
505
+ /* 39 */ "def_citation ::= LINE_DEF_CITATION tail",
506
+ /* 40 */ "def_footnote ::= LINE_DEF_FOOTNOTE tail",
507
+ /* 41 */ "def_glossary ::= LINE_DEF_GLOSSARY tail",
508
+ /* 42 */ "def_link ::= LINE_DEF_LINK chunk",
509
+ /* 43 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION chunk",
510
+ /* 44 */ "definition_block ::= para defs",
511
+ /* 45 */ "defs ::= defs def",
512
+ /* 46 */ "def ::= LINE_DEFINITION tail",
513
+ /* 47 */ "def ::= LINE_DEFINITION",
514
+ /* 48 */ "empty ::= empty LINE_EMPTY",
515
+ /* 49 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3",
516
+ /* 50 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4",
517
+ /* 51 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5",
518
+ /* 52 */ "fenced_3 ::= fenced_3 fenced_line",
519
+ /* 53 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4",
520
+ /* 54 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5",
521
+ /* 55 */ "fenced_4 ::= fenced_4 fenced_line",
522
+ /* 56 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3",
523
+ /* 57 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3",
524
+ /* 58 */ "fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5",
525
+ /* 59 */ "fenced_5 ::= fenced_5 fenced_line",
526
+ /* 60 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3",
527
+ /* 61 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3",
528
+ /* 62 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4",
529
+ /* 63 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4",
530
+ /* 64 */ "html_block ::= html_block html_line",
531
+ /* 65 */ "html_com_block ::= html_comment LINE_STOP_COMMENT",
532
+ /* 66 */ "html_comment ::= html_comment comment_line",
533
+ /* 67 */ "indented_code ::= indented_code indented_line",
534
+ /* 68 */ "indented_code ::= indented_code LINE_EMPTY",
535
+ /* 69 */ "list_bullet ::= list_bullet item_bullet",
536
+ /* 70 */ "item_bullet ::= LINE_LIST_BULLETED ext_chunk",
537
+ /* 71 */ "item_bullet ::= LINE_LIST_BULLETED chunk",
538
+ /* 72 */ "item_bullet ::= LINE_LIST_BULLETED nested_chunks",
539
+ /* 73 */ "item_bullet ::= LINE_LIST_BULLETED",
540
+ /* 74 */ "list_enum ::= list_enum item_enum",
541
+ /* 75 */ "item_enum ::= LINE_LIST_ENUMERATED ext_chunk",
542
+ /* 76 */ "item_enum ::= LINE_LIST_ENUMERATED chunk",
543
+ /* 77 */ "item_enum ::= LINE_LIST_ENUMERATED nested_chunks",
544
+ /* 78 */ "item_enum ::= LINE_LIST_ENUMERATED",
545
+ /* 79 */ "meta_block ::= meta_block meta_line",
546
+ /* 80 */ "meta_block ::= LINE_YAML LINE_META",
547
+ /* 81 */ "para ::= LINE_PLAIN chunk",
548
+ /* 82 */ "setext_1 ::= para LINE_SETEXT_1",
549
+ /* 83 */ "setext_2 ::= para LINE_SETEXT_2",
550
+ /* 84 */ "table ::= table_header table_body",
551
+ /* 85 */ "table_header ::= header_rows LINE_TABLE_SEPARATOR",
552
+ /* 86 */ "table_header ::= LINE_TABLE_SEPARATOR",
553
+ /* 87 */ "header_rows ::= header_rows LINE_TABLE",
554
+ /* 88 */ "table_body ::= table_body table_section",
555
+ /* 89 */ "table_section ::= all_rows LINE_EMPTY",
556
+ /* 90 */ "table_section ::= all_rows",
557
+ /* 91 */ "all_rows ::= all_rows row",
558
+ /* 92 */ "para ::= all_rows",
559
+ /* 93 */ "chunk ::= chunk_line",
560
+ /* 94 */ "chunk_line ::= LINE_CONTINUATION",
561
+ /* 95 */ "chunk_line ::= LINE_STOP_COMMENT",
562
+ /* 96 */ "nested_chunks ::= nested_chunk",
563
+ /* 97 */ "nested_chunk ::= empty",
564
+ /* 98 */ "indented_line ::= LINE_INDENTED_TAB",
565
+ /* 99 */ "indented_line ::= LINE_INDENTED_SPACE",
566
+ /* 100 */ "opt_ext_chunk ::= chunk",
567
+ /* 101 */ "tail ::= opt_ext_chunk",
568
+ /* 102 */ "tail ::= nested_chunks",
569
+ /* 103 */ "blockquote ::= LINE_BLOCKQUOTE",
570
+ /* 104 */ "quote_line ::= LINE_BLOCKQUOTE",
571
+ /* 105 */ "quote_line ::= LINE_CONTINUATION",
572
+ /* 106 */ "def_citation ::= LINE_DEF_CITATION",
573
+ /* 107 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
574
+ /* 108 */ "def_glossary ::= LINE_DEF_GLOSSARY",
575
+ /* 109 */ "def_link ::= LINE_DEF_LINK",
576
+ /* 110 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
577
+ /* 111 */ "defs ::= def",
578
+ /* 112 */ "empty ::= LINE_EMPTY",
579
+ /* 113 */ "fenced_block ::= fenced_3",
580
+ /* 114 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
581
+ /* 115 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
582
+ /* 116 */ "fenced_block ::= fenced_4",
583
+ /* 117 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
584
+ /* 118 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
585
+ /* 119 */ "fenced_block ::= fenced_5",
586
+ /* 120 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
587
+ /* 121 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
588
+ /* 122 */ "fenced_line ::= LINE_CONTINUATION",
589
+ /* 123 */ "fenced_line ::= LINE_EMPTY",
590
+ /* 124 */ "fenced_line ::= LINE_FALLBACK",
591
+ /* 125 */ "fenced_line ::= LINE_HR",
592
+ /* 126 */ "fenced_line ::= LINE_HTML",
593
+ /* 127 */ "fenced_line ::= LINE_START_COMMENT",
594
+ /* 128 */ "fenced_line ::= LINE_STOP_COMMENT",
595
+ /* 129 */ "html_block ::= LINE_HTML",
596
+ /* 130 */ "html_line ::= LINE_CONTINUATION",
597
+ /* 131 */ "html_line ::= LINE_FALLBACK",
598
+ /* 132 */ "html_line ::= LINE_HR",
599
+ /* 133 */ "html_line ::= LINE_HTML",
600
+ /* 134 */ "html_com_block ::= html_comment",
601
+ /* 135 */ "html_comment ::= LINE_START_COMMENT",
602
+ /* 136 */ "comment_line ::= LINE_CONTINUATION",
603
+ /* 137 */ "comment_line ::= LINE_EMPTY",
604
+ /* 138 */ "comment_line ::= LINE_FALLBACK",
605
+ /* 139 */ "comment_line ::= LINE_HR",
606
+ /* 140 */ "comment_line ::= LINE_HTML",
607
+ /* 141 */ "indented_code ::= indented_line",
608
+ /* 142 */ "list_bullet ::= item_bullet",
609
+ /* 143 */ "list_enum ::= item_enum",
610
+ /* 144 */ "meta_block ::= LINE_META",
611
+ /* 145 */ "meta_line ::= LINE_META",
612
+ /* 146 */ "meta_line ::= LINE_CONTINUATION",
613
+ /* 147 */ "meta_line ::= LINE_FALLBACK",
614
+ /* 148 */ "para ::= LINE_PLAIN",
615
+ /* 149 */ "para ::= LINE_STOP_COMMENT",
616
+ /* 150 */ "table ::= table_header",
617
+ /* 151 */ "header_rows ::= LINE_TABLE",
618
+ /* 152 */ "table_body ::= table_section",
619
+ /* 153 */ "all_rows ::= row",
620
+ /* 154 */ "row ::= header_rows",
621
+ /* 155 */ "row ::= LINE_TABLE_SEPARATOR",
622
+ /* 156 */ "para ::= defs",
617
623
  };
618
624
  #endif /* NDEBUG */
619
625
 
@@ -623,31 +629,39 @@ static const char *const yyRuleName[] = {
623
629
  ** Try to increase the size of the parser stack. Return the number
624
630
  ** of errors. Return 0 on success.
625
631
  */
626
- static int yyGrowStack(yyParser *p){
627
- int newSize;
628
- int idx;
629
- yyStackEntry *pNew;
630
-
631
- newSize = p->yystksz*2 + 100;
632
- idx = p->yytos ? (int)(p->yytos - p->yystack) : 0;
633
- if( p->yystack==&p->yystk0 ){
634
- pNew = malloc(newSize*sizeof(pNew[0]));
635
- if( pNew ) pNew[0] = p->yystk0;
636
- }else{
637
- pNew = realloc(p->yystack, newSize*sizeof(pNew[0]));
638
- }
639
- if( pNew ){
640
- p->yystack = pNew;
641
- p->yytos = &p->yystack[idx];
632
+ static int yyGrowStack(yyParser * p) {
633
+ int newSize;
634
+ int idx;
635
+ yyStackEntry * pNew;
636
+
637
+ newSize = p->yystksz * 2 + 100;
638
+ idx = p->yytos ? (int)(p->yytos - p->yystack) : 0;
639
+
640
+ if ( p->yystack == &p->yystk0 ) {
641
+ pNew = malloc(newSize * sizeof(pNew[0]));
642
+
643
+ if ( pNew ) {
644
+ pNew[0] = p->yystk0;
645
+ }
646
+ } else {
647
+ pNew = realloc(p->yystack, newSize * sizeof(pNew[0]));
648
+ }
649
+
650
+ if ( pNew ) {
651
+ p->yystack = pNew;
652
+ p->yytos = &p->yystack[idx];
642
653
  #ifndef NDEBUG
643
- if( yyTraceFILE ){
644
- fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n",
645
- yyTracePrompt, p->yystksz, newSize);
646
- }
654
+
655
+ if ( yyTraceFILE ) {
656
+ fprintf(yyTraceFILE, "%sStack grows from %d to %d entries.\n",
657
+ yyTracePrompt, p->yystksz, newSize);
658
+ }
659
+
647
660
  #endif
648
- p->yystksz = newSize;
649
- }
650
- return pNew==0;
661
+ p->yystksz = newSize;
662
+ }
663
+
664
+ return pNew == 0;
651
665
  }
652
666
  #endif
653
667
 
@@ -657,10 +671,10 @@ static int yyGrowStack(yyParser *p){
657
671
  ** grammar.
658
672
  */
659
673
  #ifndef YYMALLOCARGTYPE
660
- # define YYMALLOCARGTYPE size_t
674
+ #define YYMALLOCARGTYPE size_t
661
675
  #endif
662
676
 
663
- /*
677
+ /*
664
678
  ** This function allocates a new parser.
665
679
  ** The only argument is a pointer to a function which works like
666
680
  ** malloc.
@@ -672,60 +686,66 @@ static int yyGrowStack(yyParser *p){
672
686
  ** A pointer to a parser. This pointer is used in subsequent calls
673
687
  ** to Parse and ParseFree.
674
688
  */
675
- void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){
676
- yyParser *pParser;
677
- pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
678
- if( pParser ){
689
+ void * ParseAlloc(void * (*mallocProc)(YYMALLOCARGTYPE)) {
690
+ yyParser * pParser;
691
+ pParser = (yyParser *)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
692
+
693
+ if ( pParser ) {
679
694
  #ifdef YYTRACKMAXSTACKDEPTH
680
- pParser->yyhwm = 0;
695
+ pParser->yyhwm = 0;
681
696
  #endif
682
697
  #if YYSTACKDEPTH<=0
683
- pParser->yytos = NULL;
684
- pParser->yystack = NULL;
685
- pParser->yystksz = 0;
686
- if( yyGrowStack(pParser) ){
687
- pParser->yystack = &pParser->yystk0;
688
- pParser->yystksz = 1;
689
- }
698
+ pParser->yytos = NULL;
699
+ pParser->yystack = NULL;
700
+ pParser->yystksz = 0;
701
+
702
+ if ( yyGrowStack(pParser) ) {
703
+ pParser->yystack = &pParser->yystk0;
704
+ pParser->yystksz = 1;
705
+ }
706
+
690
707
  #endif
691
708
  #ifndef YYNOERRORRECOVERY
692
- pParser->yyerrcnt = -1;
709
+ pParser->yyerrcnt = -1;
693
710
  #endif
694
- pParser->yytos = pParser->yystack;
695
- pParser->yystack[0].stateno = 0;
696
- pParser->yystack[0].major = 0;
697
- }
698
- return pParser;
711
+ pParser->yytos = pParser->yystack;
712
+ pParser->yystack[0].stateno = 0;
713
+ pParser->yystack[0].major = 0;
714
+ }
715
+
716
+ return pParser;
699
717
  }
700
718
 
701
719
  /* The following function deletes the "minor type" or semantic value
702
720
  ** associated with a symbol. The symbol can be either a terminal
703
721
  ** or nonterminal. "yymajor" is the symbol code, and "yypminor" is
704
- ** a pointer to the value to be deleted. The code used to do the
722
+ ** a pointer to the value to be deleted. The code used to do the
705
723
  ** deletions is derived from the %destructor and/or %token_destructor
706
724
  ** directives of the input grammar.
707
725
  */
708
726
  static void yy_destructor(
709
- yyParser *yypParser, /* The parser */
710
- YYCODETYPE yymajor, /* Type code for object to destroy */
711
- YYMINORTYPE *yypminor /* The object to be destroyed */
712
- ){
713
- ParseARG_FETCH;
714
- switch( yymajor ){
715
- /* Here is inserted the actions which take place when a
716
- ** terminal or non-terminal is destroyed. This can happen
717
- ** when the symbol is popped from the stack during a
718
- ** reduce or during error processing or when a parser is
719
- ** being destroyed before it is finished parsing.
720
- **
721
- ** Note: during a reduce, the only symbols destroyed are those
722
- ** which appear on the RHS of the rule, but which are *not* used
723
- ** inside the C code.
724
- */
725
- /********* Begin destructor definitions ***************************************/
726
- /********* End destructor definitions *****************************************/
727
- default: break; /* If no destructor action specified: do nothing */
728
- }
727
+ yyParser * yypParser, /* The parser */
728
+ YYCODETYPE yymajor, /* Type code for object to destroy */
729
+ YYMINORTYPE * yypminor /* The object to be destroyed */
730
+ ) {
731
+ ParseARG_FETCH;
732
+
733
+ switch ( yymajor ) {
734
+ /* Here is inserted the actions which take place when a
735
+ ** terminal or non-terminal is destroyed. This can happen
736
+ ** when the symbol is popped from the stack during a
737
+ ** reduce or during error processing or when a parser is
738
+ ** being destroyed before it is finished parsing.
739
+ **
740
+ ** Note: during a reduce, the only symbols destroyed are those
741
+ ** which appear on the RHS of the rule, but which are *not* used
742
+ ** inside the C code.
743
+ */
744
+ /********* Begin destructor definitions ***************************************/
745
+ /********* End destructor definitions *****************************************/
746
+ default:
747
+ break; /* If no destructor action specified: do nothing */
748
+ }
729
749
  }
730
750
 
731
751
  /*
@@ -734,22 +754,24 @@ static void yy_destructor(
734
754
  ** If there is a destructor routine associated with the token which
735
755
  ** is popped from the stack, then call it.
736
756
  */
737
- static void yy_pop_parser_stack(yyParser *pParser){
738
- yyStackEntry *yytos;
739
- assert( pParser->yytos!=0 );
740
- assert( pParser->yytos > pParser->yystack );
741
- yytos = pParser->yytos--;
757
+ static void yy_pop_parser_stack(yyParser * pParser) {
758
+ yyStackEntry * yytos;
759
+ assert( pParser->yytos != 0 );
760
+ assert( pParser->yytos > pParser->yystack );
761
+ yytos = pParser->yytos--;
742
762
  #ifndef NDEBUG
743
- if( yyTraceFILE ){
744
- fprintf(yyTraceFILE,"%sPopping %s\n",
745
- yyTracePrompt,
746
- yyTokenName[yytos->major]);
747
- }
763
+
764
+ if ( yyTraceFILE ) {
765
+ fprintf(yyTraceFILE, "%sPopping %s\n",
766
+ yyTracePrompt,
767
+ yyTokenName[yytos->major]);
768
+ }
769
+
748
770
  #endif
749
- yy_destructor(pParser, yytos->major, &yytos->minor);
771
+ yy_destructor(pParser, yytos->major, &yytos->minor);
750
772
  }
751
773
 
752
- /*
774
+ /*
753
775
  ** Deallocate and destroy a parser. Destructors are called for
754
776
  ** all stack elements before shutting the parser down.
755
777
  **
@@ -758,27 +780,39 @@ static void yy_pop_parser_stack(yyParser *pParser){
758
780
  ** assumed that the input pointer is never NULL.
759
781
  */
760
782
  void ParseFree(
761
- void *p, /* The parser to be deleted */
762
- void (*freeProc)(void*) /* Function used to reclaim memory */
763
- ){
764
- yyParser *pParser = (yyParser*)p;
783
+ void * p, /* The parser to be deleted */
784
+ void (*freeProc)(void *) /* Function used to reclaim memory */
785
+ ) {
786
+ yyParser * pParser = (yyParser *)p;
765
787
  #ifndef YYPARSEFREENEVERNULL
766
- if( pParser==0 ) return;
788
+
789
+ if ( pParser == 0 ) {
790
+ return;
791
+ }
792
+
767
793
  #endif
768
- while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser);
794
+
795
+ while ( pParser->yytos > pParser->yystack ) {
796
+ yy_pop_parser_stack(pParser);
797
+ }
798
+
769
799
  #if YYSTACKDEPTH<=0
770
- if( pParser->yystack!=&pParser->yystk0 ) free(pParser->yystack);
800
+
801
+ if ( pParser->yystack != &pParser->yystk0 ) {
802
+ free(pParser->yystack);
803
+ }
804
+
771
805
  #endif
772
- (*freeProc)((void*)pParser);
806
+ (*freeProc)((void *)pParser);
773
807
  }
774
808
 
775
809
  /*
776
810
  ** Return the peak depth of the stack for a parser.
777
811
  */
778
812
  #ifdef YYTRACKMAXSTACKDEPTH
779
- int ParseStackPeak(void *p){
780
- yyParser *pParser = (yyParser*)p;
781
- return pParser->yyhwm;
813
+ int ParseStackPeak(void * p) {
814
+ yyParser * pParser = (yyParser *)p;
815
+ return pParser->yyhwm;
782
816
  }
783
817
  #endif
784
818
 
@@ -787,62 +821,74 @@ int ParseStackPeak(void *p){
787
821
  ** look-ahead token iLookAhead.
788
822
  */
789
823
  static unsigned int yy_find_shift_action(
790
- yyParser *pParser, /* The parser */
791
- YYCODETYPE iLookAhead /* The look-ahead token */
792
- ){
793
- int i;
794
- int stateno = pParser->yytos->stateno;
795
-
796
- if( stateno>=YY_MIN_REDUCE ) return stateno;
797
- assert( stateno <= YY_SHIFT_COUNT );
798
- do{
799
- i = yy_shift_ofst[stateno];
800
- assert( iLookAhead!=YYNOCODE );
801
- i += iLookAhead;
802
- if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
824
+ yyParser * pParser, /* The parser */
825
+ YYCODETYPE iLookAhead /* The look-ahead token */
826
+ ) {
827
+ int i;
828
+ int stateno = pParser->yytos->stateno;
829
+
830
+ if ( stateno >= YY_MIN_REDUCE ) {
831
+ return stateno;
832
+ }
833
+
834
+ assert( stateno <= YY_SHIFT_COUNT );
835
+
836
+ do {
837
+ i = yy_shift_ofst[stateno];
838
+ assert( iLookAhead != YYNOCODE );
839
+ i += iLookAhead;
840
+
841
+ if ( i < 0 || i >= YY_ACTTAB_COUNT || yy_lookahead[i] != iLookAhead ) {
803
842
  #ifdef YYFALLBACK
804
- YYCODETYPE iFallback; /* Fallback token */
805
- if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
806
- && (iFallback = yyFallback[iLookAhead])!=0 ){
843
+ YYCODETYPE iFallback; /* Fallback token */
844
+
845
+ if ( iLookAhead < sizeof(yyFallback) / sizeof(yyFallback[0])
846
+ && (iFallback = yyFallback[iLookAhead]) != 0 ) {
807
847
  #ifndef NDEBUG
808
- if( yyTraceFILE ){
809
- fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
810
- yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
811
- }
848
+
849
+ if ( yyTraceFILE ) {
850
+ fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
851
+ yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
852
+ }
853
+
812
854
  #endif
813
- assert( yyFallback[iFallback]==0 ); /* Fallback loop must terminate */
814
- iLookAhead = iFallback;
815
- continue;
816
- }
855
+ assert( yyFallback[iFallback] == 0 ); /* Fallback loop must terminate */
856
+ iLookAhead = iFallback;
857
+ continue;
858
+ }
859
+
817
860
  #endif
818
861
  #ifdef YYWILDCARD
819
- {
820
- int j = i - iLookAhead + YYWILDCARD;
821
- if(
862
+ {
863
+ int j = i - iLookAhead + YYWILDCARD;
864
+
865
+ if (
822
866
  #if YY_SHIFT_MIN+YYWILDCARD<0
823
- j>=0 &&
867
+ j >= 0 &&
824
868
  #endif
825
869
  #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
826
- j<YY_ACTTAB_COUNT &&
870
+ j < YY_ACTTAB_COUNT &&
827
871
  #endif
828
- yy_lookahead[j]==YYWILDCARD && iLookAhead>0
829
- ){
872
+ yy_lookahead[j] == YYWILDCARD && iLookAhead > 0
873
+ ) {
830
874
  #ifndef NDEBUG
831
- if( yyTraceFILE ){
832
- fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
833
- yyTracePrompt, yyTokenName[iLookAhead],
834
- yyTokenName[YYWILDCARD]);
835
- }
875
+
876
+ if ( yyTraceFILE ) {
877
+ fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
878
+ yyTracePrompt, yyTokenName[iLookAhead],
879
+ yyTokenName[YYWILDCARD]);
880
+ }
881
+
836
882
  #endif /* NDEBUG */
837
- return yy_action[j];
838
- }
839
- }
883
+ return yy_action[j];
884
+ }
885
+ }
840
886
  #endif /* YYWILDCARD */
841
- return yy_default[stateno];
842
- }else{
843
- return yy_action[i];
844
- }
845
- }while(1);
887
+ return yy_default[stateno];
888
+ } else {
889
+ return yy_action[i];
890
+ }
891
+ } while (1);
846
892
  }
847
893
 
848
894
  /*
@@ -850,66 +896,76 @@ static unsigned int yy_find_shift_action(
850
896
  ** look-ahead token iLookAhead.
851
897
  */
852
898
  static int yy_find_reduce_action(
853
- int stateno, /* Current state number */
854
- YYCODETYPE iLookAhead /* The look-ahead token */
855
- ){
856
- int i;
899
+ int stateno, /* Current state number */
900
+ YYCODETYPE iLookAhead /* The look-ahead token */
901
+ ) {
902
+ int i;
857
903
  #ifdef YYERRORSYMBOL
858
- if( stateno>YY_REDUCE_COUNT ){
859
- return yy_default[stateno];
860
- }
904
+
905
+ if ( stateno > YY_REDUCE_COUNT ) {
906
+ return yy_default[stateno];
907
+ }
908
+
861
909
  #else
862
- assert( stateno<=YY_REDUCE_COUNT );
910
+ assert( stateno <= YY_REDUCE_COUNT );
863
911
  #endif
864
- i = yy_reduce_ofst[stateno];
865
- assert( i!=YY_REDUCE_USE_DFLT );
866
- assert( iLookAhead!=YYNOCODE );
867
- i += iLookAhead;
912
+ i = yy_reduce_ofst[stateno];
913
+ assert( i != YY_REDUCE_USE_DFLT );
914
+ assert( iLookAhead != YYNOCODE );
915
+ i += iLookAhead;
868
916
  #ifdef YYERRORSYMBOL
869
- if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
870
- return yy_default[stateno];
871
- }
917
+
918
+ if ( i < 0 || i >= YY_ACTTAB_COUNT || yy_lookahead[i] != iLookAhead ) {
919
+ return yy_default[stateno];
920
+ }
921
+
872
922
  #else
873
- assert( i>=0 && i<YY_ACTTAB_COUNT );
874
- assert( yy_lookahead[i]==iLookAhead );
923
+ assert( i >= 0 && i < YY_ACTTAB_COUNT );
924
+ assert( yy_lookahead[i] == iLookAhead );
875
925
  #endif
876
- return yy_action[i];
926
+ return yy_action[i];
877
927
  }
878
928
 
879
929
  /*
880
930
  ** The following routine is called if the stack overflows.
881
931
  */
882
- static void yyStackOverflow(yyParser *yypParser){
883
- ParseARG_FETCH;
884
- yypParser->yytos--;
932
+ static void yyStackOverflow(yyParser * yypParser) {
933
+ ParseARG_FETCH;
934
+ yypParser->yytos--;
885
935
  #ifndef NDEBUG
886
- if( yyTraceFILE ){
887
- fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
888
- }
936
+
937
+ if ( yyTraceFILE ) {
938
+ fprintf(yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt);
939
+ }
940
+
889
941
  #endif
890
- while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);
891
- /* Here code is inserted which will execute if the parser
892
- ** stack every overflows */
893
- /******** Begin %stack_overflow code ******************************************/
894
- /******** End %stack_overflow code ********************************************/
895
- ParseARG_STORE; /* Suppress warning about unused %extra_argument var */
942
+
943
+ while ( yypParser->yytos > yypParser->yystack ) {
944
+ yy_pop_parser_stack(yypParser);
945
+ }
946
+
947
+ /* Here code is inserted which will execute if the parser
948
+ ** stack every overflows */
949
+ /******** Begin %stack_overflow code ******************************************/
950
+ /******** End %stack_overflow code ********************************************/
951
+ ParseARG_STORE; /* Suppress warning about unused %extra_argument var */
896
952
  }
897
953
 
898
954
  /*
899
955
  ** Print tracing information for a SHIFT action
900
956
  */
901
957
  #ifndef NDEBUG
902
- static void yyTraceShift(yyParser *yypParser, int yyNewState){
903
- if( yyTraceFILE ){
904
- if( yyNewState<YYNSTATE ){
905
- fprintf(yyTraceFILE,"%sShift '%s', go to state %d\n",
906
- yyTracePrompt,yyTokenName[yypParser->yytos->major],
907
- yyNewState);
908
- }else{
909
- fprintf(yyTraceFILE,"%sShift '%s'\n",
910
- yyTracePrompt,yyTokenName[yypParser->yytos->major]);
911
- }
912
- }
958
+ static void yyTraceShift(yyParser * yypParser, int yyNewState) {
959
+ if ( yyTraceFILE ) {
960
+ if ( yyNewState < YYNSTATE ) {
961
+ fprintf(yyTraceFILE, "%sShift '%s', go to state %d\n",
962
+ yyTracePrompt, yyTokenName[yypParser->yytos->major],
963
+ yyNewState);
964
+ } else {
965
+ fprintf(yyTraceFILE, "%sShift '%s'\n",
966
+ yyTracePrompt, yyTokenName[yypParser->yytos->major]);
967
+ }
968
+ }
913
969
  }
914
970
  #else
915
971
  # define yyTraceShift(X,Y)
@@ -919,595 +975,886 @@ static void yyTraceShift(yyParser *yypParser, int yyNewState){
919
975
  ** Perform a shift action.
920
976
  */
921
977
  static void yy_shift(
922
- yyParser *yypParser, /* The parser to be shifted */
923
- int yyNewState, /* The new state to shift in */
924
- int yyMajor, /* The major token to shift in */
925
- ParseTOKENTYPE yyMinor /* The minor token to shift in */
926
- ){
927
- yyStackEntry *yytos;
928
- yypParser->yytos++;
978
+ yyParser * yypParser, /* The parser to be shifted */
979
+ int yyNewState, /* The new state to shift in */
980
+ int yyMajor, /* The major token to shift in */
981
+ ParseTOKENTYPE yyMinor /* The minor token to shift in */
982
+ ) {
983
+ yyStackEntry * yytos;
984
+ yypParser->yytos++;
929
985
  #ifdef YYTRACKMAXSTACKDEPTH
930
- if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
931
- yypParser->yyhwm++;
932
- assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) );
933
- }
986
+
987
+ if ( (int)(yypParser->yytos - yypParser->yystack) > yypParser->yyhwm ) {
988
+ yypParser->yyhwm++;
989
+ assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) );
990
+ }
991
+
934
992
  #endif
935
- #if YYSTACKDEPTH>0
936
- if( yypParser->yytos>=&yypParser->yystack[YYSTACKDEPTH] ){
937
- yyStackOverflow(yypParser);
938
- return;
939
- }
993
+ #if YYSTACKDEPTH>0
994
+
995
+ if ( yypParser->yytos >= &yypParser->yystack[YYSTACKDEPTH] ) {
996
+ yyStackOverflow(yypParser);
997
+ return;
998
+ }
999
+
940
1000
  #else
941
- if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz] ){
942
- if( yyGrowStack(yypParser) ){
943
- yyStackOverflow(yypParser);
944
- return;
945
- }
946
- }
1001
+
1002
+ if ( yypParser->yytos >= &yypParser->yystack[yypParser->yystksz] ) {
1003
+ if ( yyGrowStack(yypParser) ) {
1004
+ yyStackOverflow(yypParser);
1005
+ return;
1006
+ }
1007
+ }
1008
+
947
1009
  #endif
948
- if( yyNewState > YY_MAX_SHIFT ){
949
- yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
950
- }
951
- yytos = yypParser->yytos;
952
- yytos->stateno = (YYACTIONTYPE)yyNewState;
953
- yytos->major = (YYCODETYPE)yyMajor;
954
- yytos->minor.yy0 = yyMinor;
955
- yyTraceShift(yypParser, yyNewState);
1010
+
1011
+ if ( yyNewState > YY_MAX_SHIFT ) {
1012
+ yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
1013
+ }
1014
+
1015
+ yytos = yypParser->yytos;
1016
+ yytos->stateno = (YYACTIONTYPE)yyNewState;
1017
+ yytos->major = (YYCODETYPE)yyMajor;
1018
+ yytos->minor.yy0 = yyMinor;
1019
+ yyTraceShift(yypParser, yyNewState);
956
1020
  }
957
1021
 
958
1022
  /* The following table contains information about every rule that
959
1023
  ** is used during the reduce.
960
1024
  */
961
1025
  static const struct {
962
- YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
963
- unsigned char nrhs; /* Number of right-hand side symbols in the rule */
1026
+ YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
1027
+ unsigned char nrhs; /* Number of right-hand side symbols in the rule */
964
1028
  } yyRuleInfo[] = {
965
- { 41, 1 },
966
- { 42, 2 },
967
- { 42, 1 },
968
- { 43, 1 },
969
- { 43, 1 },
970
- { 43, 1 },
971
- { 43, 1 },
972
- { 43, 1 },
973
- { 43, 1 },
974
- { 43, 1 },
975
- { 43, 1 },
976
- { 43, 1 },
977
- { 43, 1 },
978
- { 43, 1 },
979
- { 43, 1 },
980
- { 43, 1 },
981
- { 43, 1 },
982
- { 43, 1 },
983
- { 43, 1 },
984
- { 43, 1 },
985
- { 43, 1 },
986
- { 43, 1 },
987
- { 43, 1 },
988
- { 43, 1 },
989
- { 43, 1 },
990
- { 43, 1 },
991
- { 43, 1 },
992
- { 43, 2 },
993
- { 43, 1 },
994
- { 43, 1 },
995
- { 43, 1 },
996
- { 43, 1 },
997
- { 63, 2 },
998
- { 65, 2 },
999
- { 66, 3 },
1000
- { 66, 2 },
1001
- { 68, 2 },
1002
- { 69, 2 },
1003
- { 44, 2 },
1004
- { 46, 2 },
1005
- { 47, 2 },
1006
- { 48, 2 },
1007
- { 49, 2 },
1008
- { 45, 2 },
1009
- { 50, 2 },
1010
- { 72, 2 },
1011
- { 73, 2 },
1012
- { 73, 1 },
1013
- { 51, 2 },
1014
- { 52, 2 },
1015
- { 52, 2 },
1016
- { 52, 2 },
1017
- { 74, 2 },
1018
- { 52, 2 },
1019
- { 52, 2 },
1020
- { 76, 2 },
1021
- { 76, 2 },
1022
- { 76, 2 },
1023
- { 52, 2 },
1024
- { 77, 2 },
1025
- { 77, 2 },
1026
- { 77, 2 },
1027
- { 77, 2 },
1028
- { 77, 2 },
1029
- { 53, 2 },
1030
- { 54, 2 },
1031
- { 79, 2 },
1032
- { 55, 2 },
1033
- { 55, 2 },
1034
- { 56, 2 },
1035
- { 81, 2 },
1036
- { 81, 2 },
1037
- { 81, 2 },
1038
- { 81, 1 },
1039
- { 57, 2 },
1040
- { 82, 2 },
1041
- { 82, 2 },
1042
- { 82, 2 },
1043
- { 82, 1 },
1044
- { 58, 2 },
1045
- { 58, 2 },
1046
- { 59, 2 },
1047
- { 60, 2 },
1048
- { 61, 2 },
1049
- { 62, 2 },
1050
- { 84, 2 },
1051
- { 84, 1 },
1052
- { 86, 2 },
1053
- { 85, 2 },
1054
- { 87, 2 },
1055
- { 87, 1 },
1056
- { 88, 2 },
1057
- { 59, 1 },
1058
- { 63, 1 },
1059
- { 64, 1 },
1060
- { 64, 1 },
1061
- { 65, 1 },
1062
- { 66, 1 },
1063
- { 67, 1 },
1064
- { 67, 1 },
1065
- { 69, 1 },
1066
- { 70, 1 },
1067
- { 70, 1 },
1068
- { 44, 1 },
1069
- { 71, 1 },
1070
- { 71, 1 },
1071
- { 46, 1 },
1072
- { 47, 1 },
1073
- { 48, 1 },
1074
- { 49, 1 },
1075
- { 45, 1 },
1076
- { 72, 1 },
1077
- { 51, 1 },
1078
- { 52, 1 },
1079
- { 74, 1 },
1080
- { 74, 1 },
1081
- { 52, 1 },
1082
- { 76, 1 },
1083
- { 76, 1 },
1084
- { 52, 1 },
1085
- { 77, 1 },
1086
- { 77, 1 },
1087
- { 75, 1 },
1088
- { 75, 1 },
1089
- { 75, 1 },
1090
- { 75, 1 },
1091
- { 75, 1 },
1092
- { 75, 1 },
1093
- { 75, 1 },
1094
- { 53, 1 },
1095
- { 78, 1 },
1096
- { 78, 1 },
1097
- { 78, 1 },
1098
- { 78, 1 },
1099
- { 54, 1 },
1100
- { 79, 1 },
1101
- { 80, 1 },
1102
- { 80, 1 },
1103
- { 80, 1 },
1104
- { 80, 1 },
1105
- { 80, 1 },
1106
- { 55, 1 },
1107
- { 56, 1 },
1108
- { 57, 1 },
1109
- { 58, 1 },
1110
- { 83, 1 },
1111
- { 83, 1 },
1112
- { 59, 1 },
1113
- { 59, 1 },
1114
- { 62, 1 },
1115
- { 86, 1 },
1116
- { 85, 1 },
1117
- { 88, 1 },
1118
- { 89, 1 },
1119
- { 89, 1 },
1120
- { 59, 1 },
1029
+ { 41, 1 },
1030
+ { 42, 2 },
1031
+ { 42, 1 },
1032
+ { 43, 1 },
1033
+ { 43, 1 },
1034
+ { 43, 1 },
1035
+ { 43, 1 },
1036
+ { 43, 1 },
1037
+ { 43, 1 },
1038
+ { 43, 1 },
1039
+ { 43, 1 },
1040
+ { 43, 1 },
1041
+ { 43, 1 },
1042
+ { 43, 1 },
1043
+ { 43, 1 },
1044
+ { 43, 1 },
1045
+ { 43, 1 },
1046
+ { 43, 1 },
1047
+ { 43, 1 },
1048
+ { 43, 1 },
1049
+ { 43, 1 },
1050
+ { 43, 1 },
1051
+ { 43, 1 },
1052
+ { 43, 1 },
1053
+ { 43, 1 },
1054
+ { 43, 1 },
1055
+ { 43, 1 },
1056
+ { 43, 2 },
1057
+ { 43, 1 },
1058
+ { 43, 1 },
1059
+ { 43, 1 },
1060
+ { 43, 1 },
1061
+ { 63, 2 },
1062
+ { 65, 2 },
1063
+ { 66, 3 },
1064
+ { 66, 2 },
1065
+ { 68, 2 },
1066
+ { 69, 2 },
1067
+ { 44, 2 },
1068
+ { 46, 2 },
1069
+ { 47, 2 },
1070
+ { 48, 2 },
1071
+ { 49, 2 },
1072
+ { 45, 2 },
1073
+ { 50, 2 },
1074
+ { 72, 2 },
1075
+ { 73, 2 },
1076
+ { 73, 1 },
1077
+ { 51, 2 },
1078
+ { 52, 2 },
1079
+ { 52, 2 },
1080
+ { 52, 2 },
1081
+ { 74, 2 },
1082
+ { 52, 2 },
1083
+ { 52, 2 },
1084
+ { 76, 2 },
1085
+ { 76, 2 },
1086
+ { 76, 2 },
1087
+ { 52, 2 },
1088
+ { 77, 2 },
1089
+ { 77, 2 },
1090
+ { 77, 2 },
1091
+ { 77, 2 },
1092
+ { 77, 2 },
1093
+ { 53, 2 },
1094
+ { 54, 2 },
1095
+ { 79, 2 },
1096
+ { 55, 2 },
1097
+ { 55, 2 },
1098
+ { 56, 2 },
1099
+ { 81, 2 },
1100
+ { 81, 2 },
1101
+ { 81, 2 },
1102
+ { 81, 1 },
1103
+ { 57, 2 },
1104
+ { 82, 2 },
1105
+ { 82, 2 },
1106
+ { 82, 2 },
1107
+ { 82, 1 },
1108
+ { 58, 2 },
1109
+ { 58, 2 },
1110
+ { 59, 2 },
1111
+ { 60, 2 },
1112
+ { 61, 2 },
1113
+ { 62, 2 },
1114
+ { 84, 2 },
1115
+ { 84, 1 },
1116
+ { 86, 2 },
1117
+ { 85, 2 },
1118
+ { 87, 2 },
1119
+ { 87, 1 },
1120
+ { 88, 2 },
1121
+ { 59, 1 },
1122
+ { 63, 1 },
1123
+ { 64, 1 },
1124
+ { 64, 1 },
1125
+ { 65, 1 },
1126
+ { 66, 1 },
1127
+ { 67, 1 },
1128
+ { 67, 1 },
1129
+ { 69, 1 },
1130
+ { 70, 1 },
1131
+ { 70, 1 },
1132
+ { 44, 1 },
1133
+ { 71, 1 },
1134
+ { 71, 1 },
1135
+ { 46, 1 },
1136
+ { 47, 1 },
1137
+ { 48, 1 },
1138
+ { 49, 1 },
1139
+ { 45, 1 },
1140
+ { 72, 1 },
1141
+ { 51, 1 },
1142
+ { 52, 1 },
1143
+ { 74, 1 },
1144
+ { 74, 1 },
1145
+ { 52, 1 },
1146
+ { 76, 1 },
1147
+ { 76, 1 },
1148
+ { 52, 1 },
1149
+ { 77, 1 },
1150
+ { 77, 1 },
1151
+ { 75, 1 },
1152
+ { 75, 1 },
1153
+ { 75, 1 },
1154
+ { 75, 1 },
1155
+ { 75, 1 },
1156
+ { 75, 1 },
1157
+ { 75, 1 },
1158
+ { 53, 1 },
1159
+ { 78, 1 },
1160
+ { 78, 1 },
1161
+ { 78, 1 },
1162
+ { 78, 1 },
1163
+ { 54, 1 },
1164
+ { 79, 1 },
1165
+ { 80, 1 },
1166
+ { 80, 1 },
1167
+ { 80, 1 },
1168
+ { 80, 1 },
1169
+ { 80, 1 },
1170
+ { 55, 1 },
1171
+ { 56, 1 },
1172
+ { 57, 1 },
1173
+ { 58, 1 },
1174
+ { 83, 1 },
1175
+ { 83, 1 },
1176
+ { 83, 1 },
1177
+ { 59, 1 },
1178
+ { 59, 1 },
1179
+ { 62, 1 },
1180
+ { 86, 1 },
1181
+ { 85, 1 },
1182
+ { 88, 1 },
1183
+ { 89, 1 },
1184
+ { 89, 1 },
1185
+ { 59, 1 },
1121
1186
  };
1122
1187
 
1123
- static void yy_accept(yyParser*); /* Forward Declaration */
1188
+ static void yy_accept(yyParser *); /* Forward Declaration */
1124
1189
 
1125
1190
  /*
1126
1191
  ** Perform a reduce action and the shift that must immediately
1127
1192
  ** follow the reduce.
1128
1193
  */
1129
1194
  static void yy_reduce(
1130
- yyParser *yypParser, /* The parser */
1131
- unsigned int yyruleno /* Number of the rule by which to reduce */
1132
- ){
1133
- int yygoto; /* The next state */
1134
- int yyact; /* The next action */
1135
- yyStackEntry *yymsp; /* The top of the parser's stack */
1136
- int yysize; /* Amount to pop the stack */
1137
- ParseARG_FETCH;
1138
- yymsp = yypParser->yytos;
1195
+ yyParser * yypParser, /* The parser */
1196
+ unsigned int yyruleno /* Number of the rule by which to reduce */
1197
+ ) {
1198
+ int yygoto; /* The next state */
1199
+ int yyact; /* The next action */
1200
+ yyStackEntry * yymsp; /* The top of the parser's stack */
1201
+ int yysize; /* Amount to pop the stack */
1202
+ ParseARG_FETCH;
1203
+ yymsp = yypParser->yytos;
1139
1204
  #ifndef NDEBUG
1140
- if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
1141
- yysize = yyRuleInfo[yyruleno].nrhs;
1142
- fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt,
1143
- yyRuleName[yyruleno], yymsp[-yysize].stateno);
1144
- }
1205
+
1206
+ if ( yyTraceFILE && yyruleno < (int)(sizeof(yyRuleName) / sizeof(yyRuleName[0])) ) {
1207
+ yysize = yyRuleInfo[yyruleno].nrhs;
1208
+ fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt,
1209
+ yyRuleName[yyruleno], yymsp[-yysize].stateno);
1210
+ }
1211
+
1145
1212
  #endif /* NDEBUG */
1146
1213
 
1147
- /* Check that the stack is large enough to grow by a single entry
1148
- ** if the RHS of the rule is empty. This ensures that there is room
1149
- ** enough on the stack to push the LHS value */
1150
- if( yyRuleInfo[yyruleno].nrhs==0 ){
1214
+ /* Check that the stack is large enough to grow by a single entry
1215
+ ** if the RHS of the rule is empty. This ensures that there is room
1216
+ ** enough on the stack to push the LHS value */
1217
+ if ( yyRuleInfo[yyruleno].nrhs == 0 ) {
1151
1218
  #ifdef YYTRACKMAXSTACKDEPTH
1152
- if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
1153
- yypParser->yyhwm++;
1154
- assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
1155
- }
1219
+
1220
+ if ( (int)(yypParser->yytos - yypParser->yystack) > yypParser->yyhwm ) {
1221
+ yypParser->yyhwm++;
1222
+ assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
1223
+ }
1224
+
1156
1225
  #endif
1157
- #if YYSTACKDEPTH>0
1158
- if( yypParser->yytos>=&yypParser->yystack[YYSTACKDEPTH-1] ){
1159
- yyStackOverflow(yypParser);
1160
- return;
1161
- }
1226
+ #if YYSTACKDEPTH>0
1227
+
1228
+ if ( yypParser->yytos >= &yypParser->yystack[YYSTACKDEPTH - 1] ) {
1229
+ yyStackOverflow(yypParser);
1230
+ return;
1231
+ }
1232
+
1162
1233
  #else
1163
- if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
1164
- if( yyGrowStack(yypParser) ){
1165
- yyStackOverflow(yypParser);
1166
- return;
1167
- }
1168
- yymsp = yypParser->yytos;
1169
- }
1234
+
1235
+ if ( yypParser->yytos >= &yypParser->yystack[yypParser->yystksz - 1] ) {
1236
+ if ( yyGrowStack(yypParser) ) {
1237
+ yyStackOverflow(yypParser);
1238
+ return;
1239
+ }
1240
+
1241
+ yymsp = yypParser->yytos;
1242
+ }
1243
+
1170
1244
  #endif
1171
- }
1172
-
1173
- switch( yyruleno ){
1174
- /* Beginning here are the reduction cases. A typical example
1175
- ** follows:
1176
- ** case 0:
1177
- ** #line <lineno> <grammarfile>
1178
- ** { ... } // User supplied code
1179
- ** #line <lineno> <thisfile>
1180
- ** break;
1181
- */
1182
- /********** Begin reduce actions **********************************************/
1183
- YYMINORTYPE yylhsminor;
1184
- case 0: /* doc ::= blocks */
1185
- { engine->root = yymsp[0].minor.yy0; }
1186
- break;
1187
- case 1: /* blocks ::= blocks block */
1188
- {
1189
- strip_line_tokens_from_block(engine, yymsp[0].minor.yy0);
1190
- if (yymsp[-1].minor.yy0 == NULL) { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; yymsp[0].minor.yy0 = NULL;}
1191
- yylhsminor.yy0 = yymsp[-1].minor.yy0;
1192
- token_chain_append(yylhsminor.yy0, yymsp[0].minor.yy0);
1193
- #ifndef NDEBUG
1194
- fprintf(stderr, "Next block %d\n", yylhsminor.yy0->tail->type);
1195
- #endif
1196
1245
  }
1197
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1198
- break;
1199
- case 2: /* blocks ::= block */
1200
- {
1201
- engine->root = yymsp[0].minor.yy0; // In case the first block is metadata and we just want to know if it exists
1202
- strip_line_tokens_from_block(engine, yymsp[0].minor.yy0);
1203
- #ifndef NDEBUG
1204
- fprintf(stderr, "First block %d\n", yymsp[0].minor.yy0->type);
1205
- #endif
1206
- yylhsminor.yy0 = yymsp[0].minor.yy0;
1246
+
1247
+ switch ( yyruleno ) {
1248
+ /* Beginning here are the reduction cases. A typical example
1249
+ ** follows:
1250
+ ** case 0:
1251
+ ** #line <lineno> <grammarfile>
1252
+ ** { ... } // User supplied code
1253
+ ** #line <lineno> <thisfile>
1254
+ ** break;
1255
+ */
1256
+ /********** Begin reduce actions **********************************************/
1257
+ YYMINORTYPE yylhsminor;
1258
+
1259
+ case 0: { /* doc ::= blocks */
1260
+ engine->root = yymsp[0].minor.yy0;
1261
+ }
1262
+ break;
1263
+
1264
+ case 1: { /* blocks ::= blocks block */
1265
+ strip_line_tokens_from_block(engine, yymsp[0].minor.yy0);
1266
+
1267
+ if (yymsp[-1].minor.yy0 == NULL) {
1268
+ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;
1269
+ yymsp[0].minor.yy0 = NULL;
1270
+ }
1271
+
1272
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1273
+ token_chain_append(yylhsminor.yy0, yymsp[0].minor.yy0);
1274
+ }
1275
+
1276
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1277
+ break;
1278
+
1279
+ case 2: { /* blocks ::= block */
1280
+ engine->root = yymsp[0].minor.yy0; // In case the first block is metadata and we just want to know if it exists
1281
+ strip_line_tokens_from_block(engine, yymsp[0].minor.yy0);
1282
+ yylhsminor.yy0 = yymsp[0].minor.yy0;
1283
+ }
1284
+
1285
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1286
+ break;
1287
+
1288
+ case 3: { /* block ::= LINE_ATX_1 */
1289
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H1);
1290
+ stack_push(engine->header_stack, yylhsminor.yy0);
1291
+ }
1292
+
1293
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1294
+ break;
1295
+
1296
+ case 4: { /* block ::= LINE_ATX_2 */
1297
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H2);
1298
+ stack_push(engine->header_stack, yylhsminor.yy0);
1299
+ }
1300
+
1301
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1302
+ break;
1303
+
1304
+ case 5: { /* block ::= LINE_ATX_3 */
1305
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H3);
1306
+ stack_push(engine->header_stack, yylhsminor.yy0);
1307
+ }
1308
+
1309
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1310
+ break;
1311
+
1312
+ case 6: { /* block ::= LINE_ATX_4 */
1313
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H4);
1314
+ stack_push(engine->header_stack, yylhsminor.yy0);
1315
+ }
1316
+
1317
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1318
+ break;
1319
+
1320
+ case 7: { /* block ::= LINE_ATX_5 */
1321
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H5);
1322
+ stack_push(engine->header_stack, yylhsminor.yy0);
1323
+ }
1324
+
1325
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1326
+ break;
1327
+
1328
+ case 8: { /* block ::= LINE_ATX_6 */
1329
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H6);
1330
+ stack_push(engine->header_stack, yylhsminor.yy0);
1331
+ }
1332
+
1333
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1334
+ break;
1335
+
1336
+ case 9: /* block ::= LINE_HR */
1337
+ case 10: /* block ::= LINE_YAML */
1338
+ yytestcase(yyruleno == 10);
1339
+ {
1340
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HR);
1341
+ }
1342
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1343
+ break;
1344
+
1345
+ case 11: { /* block ::= LINE_TOC */
1346
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TOC);
1347
+ }
1348
+
1349
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1350
+ break;
1351
+
1352
+ case 12: { /* block ::= blockquote */
1353
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_BLOCKQUOTE);
1354
+ recursive_parse_blockquote(engine, yylhsminor.yy0);
1355
+ }
1356
+
1357
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1358
+ break;
1359
+
1360
+ case 13: { /* block ::= def_abbreviation */
1361
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_ABBREVIATION);
1362
+ stack_push(engine->definition_stack, yylhsminor.yy0);
1363
+ }
1364
+
1365
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1366
+ break;
1367
+
1368
+ case 14: { /* block ::= def_citation */
1369
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_CITATION);
1370
+ stack_push(engine->definition_stack, yylhsminor.yy0);
1371
+ }
1372
+
1373
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1374
+ break;
1375
+
1376
+ case 15: { /* block ::= def_footnote */
1377
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_FOOTNOTE);
1378
+ stack_push(engine->definition_stack, yylhsminor.yy0);
1379
+ recursive_parse_indent(engine, yylhsminor.yy0);
1380
+ }
1381
+
1382
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1383
+ break;
1384
+
1385
+ case 16: { /* block ::= def_glossary */
1386
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_GLOSSARY);
1387
+ stack_push(engine->definition_stack, yylhsminor.yy0);
1388
+ recursive_parse_indent(engine, yylhsminor.yy0);
1389
+ }
1390
+
1391
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1392
+ break;
1393
+
1394
+ case 17: { /* block ::= def_link */
1395
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_LINK);
1396
+ stack_push(engine->definition_stack, yylhsminor.yy0);
1397
+ }
1398
+
1399
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1400
+ break;
1401
+
1402
+ case 18: { /* block ::= definition_block */
1403
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFLIST);
1404
+ }
1405
+
1406
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1407
+ break;
1408
+
1409
+ case 19: { /* block ::= empty */
1410
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_EMPTY);
1411
+ }
1412
+
1413
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1414
+ break;
1415
+
1416
+ case 20: { /* block ::= fenced_block */
1417
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_FENCED);
1418
+ yymsp[0].minor.yy0->child->type = CODE_FENCE;
1419
+ }
1420
+
1421
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1422
+ break;
1423
+
1424
+ case 21: /* block ::= html_block */
1425
+ case 22: /* block ::= html_com_block */
1426
+ yytestcase(yyruleno == 22);
1427
+ {
1428
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HTML);
1429
+ }
1430
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1431
+ break;
1432
+
1433
+ case 23: { /* block ::= indented_code */
1434
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_INDENTED);
1435
+ }
1436
+
1437
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1438
+ break;
1439
+
1440
+ case 24: { /* block ::= list_bullet */
1441
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_BULLETED);
1442
+ is_list_loose(yylhsminor.yy0);
1443
+ }
1444
+
1445
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1446
+ break;
1447
+
1448
+ case 25: { /* block ::= list_enum */
1449
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ENUMERATED);
1450
+ is_list_loose(yylhsminor.yy0);
1451
+ }
1452
+
1453
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1454
+ break;
1455
+
1456
+ case 26: { /* block ::= meta_block */
1457
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_META);
1458
+ }
1459
+
1460
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1461
+ break;
1462
+
1463
+ case 27: { /* block ::= meta_block LINE_SETEXT_2 */
1464
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_META);
1465
+ token_append_child(yylhsminor.yy0, yymsp[0].minor.yy0);
1466
+ }
1467
+
1468
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1469
+ break;
1470
+
1471
+ case 28: { /* block ::= para */
1472
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_PARA);
1473
+ is_para_html(engine, yylhsminor.yy0);
1474
+ }
1475
+
1476
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1477
+ break;
1478
+
1479
+ case 29: { /* block ::= setext_1 */
1480
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_1);
1481
+ stack_push(engine->header_stack, yylhsminor.yy0);
1482
+ }
1483
+
1484
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1485
+ break;
1486
+
1487
+ case 30: { /* block ::= setext_2 */
1488
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_2);
1489
+ stack_push(engine->header_stack, yylhsminor.yy0);
1490
+ }
1491
+
1492
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1493
+ break;
1494
+
1495
+ case 31: { /* block ::= table */
1496
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE);
1497
+ stack_push(engine->table_stack, yylhsminor.yy0);
1498
+ }
1499
+
1500
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1501
+ break;
1502
+
1503
+ case 32: /* chunk ::= chunk chunk_line */
1504
+ case 33: /* nested_chunks ::= nested_chunks nested_chunk */
1505
+ yytestcase(yyruleno == 33);
1506
+
1507
+ case 36: /* ext_chunk ::= chunk nested_chunks */
1508
+ yytestcase(yyruleno == 36);
1509
+
1510
+ case 37: /* opt_ext_chunk ::= chunk nested_chunks */
1511
+ yytestcase(yyruleno == 37);
1512
+
1513
+ case 38: /* blockquote ::= blockquote quote_line */
1514
+ yytestcase(yyruleno == 38);
1515
+
1516
+ case 39: /* def_citation ::= LINE_DEF_CITATION tail */
1517
+ yytestcase(yyruleno == 39);
1518
+
1519
+ case 40: /* def_footnote ::= LINE_DEF_FOOTNOTE tail */
1520
+ yytestcase(yyruleno == 40);
1521
+
1522
+ case 41: /* def_glossary ::= LINE_DEF_GLOSSARY tail */
1523
+ yytestcase(yyruleno == 41);
1524
+
1525
+ case 42: /* def_link ::= LINE_DEF_LINK chunk */
1526
+ yytestcase(yyruleno == 42);
1527
+
1528
+ case 43: /* def_abbreviation ::= LINE_DEF_ABBREVIATION chunk */
1529
+ yytestcase(yyruleno == 43);
1530
+
1531
+ case 45: /* defs ::= defs def */
1532
+ yytestcase(yyruleno == 45);
1533
+
1534
+ case 48: /* empty ::= empty LINE_EMPTY */
1535
+ yytestcase(yyruleno == 48);
1536
+
1537
+ case 64: /* html_block ::= html_block html_line */
1538
+ yytestcase(yyruleno == 64);
1539
+
1540
+ case 65: /* html_com_block ::= html_comment LINE_STOP_COMMENT */
1541
+ yytestcase(yyruleno == 65);
1542
+
1543
+ case 66: /* html_comment ::= html_comment comment_line */
1544
+ yytestcase(yyruleno == 66);
1545
+
1546
+ case 67: /* indented_code ::= indented_code indented_line */
1547
+ yytestcase(yyruleno == 67);
1548
+
1549
+ case 68: /* indented_code ::= indented_code LINE_EMPTY */
1550
+ yytestcase(yyruleno == 68);
1551
+
1552
+ case 69: /* list_bullet ::= list_bullet item_bullet */
1553
+ yytestcase(yyruleno == 69);
1554
+
1555
+ case 74: /* list_enum ::= list_enum item_enum */
1556
+ yytestcase(yyruleno == 74);
1557
+
1558
+ case 79: /* meta_block ::= meta_block meta_line */
1559
+ yytestcase(yyruleno == 79);
1560
+
1561
+ case 80: /* meta_block ::= LINE_YAML LINE_META */
1562
+ yytestcase(yyruleno == 80);
1563
+
1564
+ case 81: /* para ::= LINE_PLAIN chunk */
1565
+ yytestcase(yyruleno == 81);
1566
+
1567
+ case 82: /* setext_1 ::= para LINE_SETEXT_1 */
1568
+ yytestcase(yyruleno == 82);
1569
+
1570
+ case 83: /* setext_2 ::= para LINE_SETEXT_2 */
1571
+ yytestcase(yyruleno == 83);
1572
+
1573
+ case 84: /* table ::= table_header table_body */
1574
+ yytestcase(yyruleno == 84);
1575
+
1576
+ case 87: /* header_rows ::= header_rows LINE_TABLE */
1577
+ yytestcase(yyruleno == 87);
1578
+
1579
+ case 88: /* table_body ::= table_body table_section */
1580
+ yytestcase(yyruleno == 88);
1581
+
1582
+ case 91: /* all_rows ::= all_rows row */
1583
+ yytestcase(yyruleno == 91);
1584
+ {
1585
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1586
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1587
+ }
1588
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1589
+ break;
1590
+
1591
+ case 34: { /* nested_chunk ::= empty indented_line chunk */
1592
+ yylhsminor.yy0 = yymsp[-2].minor.yy0;
1593
+ token_chain_append(yymsp[-2].minor.yy0, yymsp[-1].minor.yy0);
1594
+ token_chain_append(yymsp[-2].minor.yy0, yymsp[0].minor.yy0);
1595
+ yymsp[-1].minor.yy0->type = LINE_CONTINUATION;
1596
+ }
1597
+
1598
+ yymsp[-2].minor.yy0 = yylhsminor.yy0;
1599
+ break;
1600
+
1601
+ case 35: { /* nested_chunk ::= empty indented_line */
1602
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1603
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1604
+ yymsp[0].minor.yy0->type = LINE_CONTINUATION;
1605
+ }
1606
+
1607
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1608
+ break;
1609
+
1610
+ case 44: { /* definition_block ::= para defs */
1611
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1612
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1613
+ yymsp[-1].minor.yy0->type = BLOCK_TERM;
1614
+ }
1615
+
1616
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1617
+ break;
1618
+
1619
+ case 46: { /* def ::= LINE_DEFINITION tail */
1620
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_DEFINITION);
1621
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1622
+ recursive_parse_indent(engine, yylhsminor.yy0);
1623
+ }
1624
+
1625
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1626
+ break;
1627
+
1628
+ case 47: { /* def ::= LINE_DEFINITION */
1629
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFINITION);
1630
+ }
1631
+
1632
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1633
+ break;
1634
+
1635
+ case 49: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3 */
1636
+ case 50: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4 */
1637
+ yytestcase(yyruleno == 50);
1638
+
1639
+ case 51: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5 */
1640
+ yytestcase(yyruleno == 51);
1641
+
1642
+ case 53: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4 */
1643
+ yytestcase(yyruleno == 53);
1644
+
1645
+ case 54: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5 */
1646
+ yytestcase(yyruleno == 54);
1647
+
1648
+ case 58: /* fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5 */
1649
+ yytestcase(yyruleno == 58);
1650
+ {
1651
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1652
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1653
+ yymsp[0].minor.yy0->type = CODE_FENCE_LINE;
1654
+ yymsp[0].minor.yy0->child->type = CODE_FENCE;
1655
+ }
1656
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1657
+ break;
1658
+
1659
+ case 52: /* fenced_3 ::= fenced_3 fenced_line */
1660
+ case 55: /* fenced_4 ::= fenced_4 fenced_line */
1661
+ yytestcase(yyruleno == 55);
1662
+
1663
+ case 56: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3 */
1664
+ yytestcase(yyruleno == 56);
1665
+
1666
+ case 57: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3 */
1667
+ yytestcase(yyruleno == 57);
1668
+
1669
+ case 59: /* fenced_5 ::= fenced_5 fenced_line */
1670
+ yytestcase(yyruleno == 59);
1671
+
1672
+ case 60: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3 */
1673
+ yytestcase(yyruleno == 60);
1674
+
1675
+ case 61: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3 */
1676
+ yytestcase(yyruleno == 61);
1677
+
1678
+ case 62: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4 */
1679
+ yytestcase(yyruleno == 62);
1680
+
1681
+ case 63: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4 */
1682
+ yytestcase(yyruleno == 63);
1683
+ {
1684
+ yylhsminor.yy0 = yymsp[-1].minor.yy0;
1685
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1686
+ yymsp[-1].minor.yy0->type = CODE_FENCE_LINE;
1687
+ }
1688
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1689
+ break;
1690
+
1691
+ case 70: /* item_bullet ::= LINE_LIST_BULLETED ext_chunk */
1692
+ case 72: /* item_bullet ::= LINE_LIST_BULLETED nested_chunks */
1693
+ yytestcase(yyruleno == 72);
1694
+
1695
+ case 75: /* item_enum ::= LINE_LIST_ENUMERATED ext_chunk */
1696
+ yytestcase(yyruleno == 75);
1697
+
1698
+ case 77: /* item_enum ::= LINE_LIST_ENUMERATED nested_chunks */
1699
+ yytestcase(yyruleno == 77);
1700
+ {
1701
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM);
1702
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1703
+ recursive_parse_list_item(engine, yylhsminor.yy0);
1704
+ }
1705
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1706
+ break;
1707
+
1708
+ case 71: /* item_bullet ::= LINE_LIST_BULLETED chunk */
1709
+ case 76: /* item_enum ::= LINE_LIST_ENUMERATED chunk */
1710
+ yytestcase(yyruleno == 76);
1711
+ {
1712
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM_TIGHT);
1713
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1714
+ recursive_parse_list_item(engine, yylhsminor.yy0);
1715
+ }
1716
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1717
+ break;
1718
+
1719
+ case 73: /* item_bullet ::= LINE_LIST_BULLETED */
1720
+ case 78: /* item_enum ::= LINE_LIST_ENUMERATED */
1721
+ yytestcase(yyruleno == 78);
1722
+ {
1723
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ITEM_TIGHT);
1724
+ }
1725
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1726
+ break;
1727
+
1728
+ case 85: { /* table_header ::= header_rows LINE_TABLE_SEPARATOR */
1729
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_HEADER);
1730
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1731
+ }
1732
+
1733
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1734
+ break;
1735
+
1736
+ case 86: { /* table_header ::= LINE_TABLE_SEPARATOR */
1737
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_HEADER);
1738
+ }
1739
+
1740
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1741
+ break;
1742
+
1743
+ case 89: { /* table_section ::= all_rows LINE_EMPTY */
1744
+ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_SECTION);
1745
+ token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
1746
+ }
1747
+
1748
+ yymsp[-1].minor.yy0 = yylhsminor.yy0;
1749
+ break;
1750
+
1751
+ case 90: { /* table_section ::= all_rows */
1752
+ yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_SECTION);
1753
+ }
1754
+
1755
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1756
+ break;
1757
+
1758
+ case 92: { /* para ::= all_rows */
1759
+ yylhsminor.yy0 = yymsp[0].minor.yy0;
1760
+ }
1761
+
1762
+ yymsp[0].minor.yy0 = yylhsminor.yy0;
1763
+ break;
1764
+
1765
+ default:
1766
+ /* (93) chunk ::= chunk_line (OPTIMIZED OUT) */
1767
+ assert(yyruleno != 93);
1768
+ /* (94) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 94);
1769
+ /* (95) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno == 95);
1770
+ /* (96) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno != 96);
1771
+ /* (97) nested_chunk ::= empty */ yytestcase(yyruleno == 97);
1772
+ /* (98) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno == 98);
1773
+ /* (99) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno == 99);
1774
+ /* (100) opt_ext_chunk ::= chunk */ yytestcase(yyruleno == 100);
1775
+ /* (101) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno != 101);
1776
+ /* (102) tail ::= nested_chunks */ yytestcase(yyruleno == 102);
1777
+ /* (103) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno == 103);
1778
+ /* (104) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno == 104);
1779
+ /* (105) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 105);
1780
+ /* (106) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno == 106);
1781
+ /* (107) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno == 107);
1782
+ /* (108) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno == 108);
1783
+ /* (109) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno == 109);
1784
+ /* (110) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno == 110);
1785
+ /* (111) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno != 111);
1786
+ /* (112) empty ::= LINE_EMPTY */ yytestcase(yyruleno == 112);
1787
+ /* (113) fenced_block ::= fenced_3 */ yytestcase(yyruleno == 113);
1788
+ /* (114) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno == 114);
1789
+ /* (115) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno == 115);
1790
+ /* (116) fenced_block ::= fenced_4 */ yytestcase(yyruleno == 116);
1791
+ /* (117) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno == 117);
1792
+ /* (118) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno == 118);
1793
+ /* (119) fenced_block ::= fenced_5 */ yytestcase(yyruleno == 119);
1794
+ /* (120) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno == 120);
1795
+ /* (121) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno == 121);
1796
+ /* (122) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 122);
1797
+ /* (123) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno == 123);
1798
+ /* (124) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno == 124);
1799
+ /* (125) fenced_line ::= LINE_HR */ yytestcase(yyruleno == 125);
1800
+ /* (126) fenced_line ::= LINE_HTML */ yytestcase(yyruleno == 126);
1801
+ /* (127) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno == 127);
1802
+ /* (128) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno == 128);
1803
+ /* (129) html_block ::= LINE_HTML */ yytestcase(yyruleno == 129);
1804
+ /* (130) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 130);
1805
+ /* (131) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno == 131);
1806
+ /* (132) html_line ::= LINE_HR */ yytestcase(yyruleno == 132);
1807
+ /* (133) html_line ::= LINE_HTML */ yytestcase(yyruleno == 133);
1808
+ /* (134) html_com_block ::= html_comment */ yytestcase(yyruleno == 134);
1809
+ /* (135) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno == 135);
1810
+ /* (136) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 136);
1811
+ /* (137) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno == 137);
1812
+ /* (138) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno == 138);
1813
+ /* (139) comment_line ::= LINE_HR */ yytestcase(yyruleno == 139);
1814
+ /* (140) comment_line ::= LINE_HTML */ yytestcase(yyruleno == 140);
1815
+ /* (141) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno != 141);
1816
+ /* (142) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno != 142);
1817
+ /* (143) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno != 143);
1818
+ /* (144) meta_block ::= LINE_META */ yytestcase(yyruleno == 144);
1819
+ /* (145) meta_line ::= LINE_META */ yytestcase(yyruleno == 145);
1820
+ /* (146) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno == 146);
1821
+ /* (147) meta_line ::= LINE_FALLBACK */ yytestcase(yyruleno == 147);
1822
+ /* (148) para ::= LINE_PLAIN */ yytestcase(yyruleno == 148);
1823
+ /* (149) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno == 149);
1824
+ /* (150) table ::= table_header */ yytestcase(yyruleno == 150);
1825
+ /* (151) header_rows ::= LINE_TABLE */ yytestcase(yyruleno == 151);
1826
+ /* (152) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno != 152);
1827
+ /* (153) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno != 153);
1828
+ /* (154) row ::= header_rows */ yytestcase(yyruleno == 154);
1829
+ /* (155) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno == 155);
1830
+ /* (156) para ::= defs */ yytestcase(yyruleno == 156);
1831
+ break;
1832
+ /********** End reduce actions ************************************************/
1833
+ };
1834
+
1835
+ assert( yyruleno < sizeof(yyRuleInfo) / sizeof(yyRuleInfo[0]) );
1836
+
1837
+ yygoto = yyRuleInfo[yyruleno].lhs;
1838
+
1839
+ yysize = yyRuleInfo[yyruleno].nrhs;
1840
+
1841
+ yyact = yy_find_reduce_action(yymsp[-yysize].stateno, (YYCODETYPE)yygoto);
1842
+
1843
+ if ( yyact <= YY_MAX_SHIFTREDUCE ) {
1844
+ if ( yyact > YY_MAX_SHIFT ) {
1845
+ yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
1846
+ }
1847
+
1848
+ yymsp -= yysize - 1;
1849
+ yypParser->yytos = yymsp;
1850
+ yymsp->stateno = (YYACTIONTYPE)yyact;
1851
+ yymsp->major = (YYCODETYPE)yygoto;
1852
+ yyTraceShift(yypParser, yyact);
1853
+ } else {
1854
+ assert( yyact == YY_ACCEPT_ACTION );
1855
+ yypParser->yytos -= yysize;
1856
+ yy_accept(yypParser);
1207
1857
  }
1208
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1209
- break;
1210
- case 3: /* block ::= LINE_ATX_1 */
1211
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H1); stack_push(engine->header_stack, yylhsminor.yy0); }
1212
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1213
- break;
1214
- case 4: /* block ::= LINE_ATX_2 */
1215
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H2); stack_push(engine->header_stack, yylhsminor.yy0); }
1216
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1217
- break;
1218
- case 5: /* block ::= LINE_ATX_3 */
1219
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H3); stack_push(engine->header_stack, yylhsminor.yy0); }
1220
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1221
- break;
1222
- case 6: /* block ::= LINE_ATX_4 */
1223
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H4); stack_push(engine->header_stack, yylhsminor.yy0); }
1224
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1225
- break;
1226
- case 7: /* block ::= LINE_ATX_5 */
1227
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H5); stack_push(engine->header_stack, yylhsminor.yy0); }
1228
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1229
- break;
1230
- case 8: /* block ::= LINE_ATX_6 */
1231
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_H6); stack_push(engine->header_stack, yylhsminor.yy0); }
1232
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1233
- break;
1234
- case 9: /* block ::= LINE_HR */
1235
- case 10: /* block ::= LINE_YAML */ yytestcase(yyruleno==10);
1236
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HR); }
1237
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1238
- break;
1239
- case 11: /* block ::= LINE_TOC */
1240
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TOC); }
1241
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1242
- break;
1243
- case 12: /* block ::= blockquote */
1244
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_BLOCKQUOTE); recursive_parse_blockquote(engine, yylhsminor.yy0); }
1245
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1246
- break;
1247
- case 13: /* block ::= def_abbreviation */
1248
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_ABBREVIATION); stack_push(engine->definition_stack, yylhsminor.yy0); }
1249
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1250
- break;
1251
- case 14: /* block ::= def_citation */
1252
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_CITATION); stack_push(engine->definition_stack, yylhsminor.yy0); }
1253
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1254
- break;
1255
- case 15: /* block ::= def_footnote */
1256
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_FOOTNOTE); stack_push(engine->definition_stack, yylhsminor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
1257
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1258
- break;
1259
- case 16: /* block ::= def_glossary */
1260
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_GLOSSARY); stack_push(engine->definition_stack, yylhsminor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
1261
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1262
- break;
1263
- case 17: /* block ::= def_link */
1264
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_LINK); stack_push(engine->definition_stack, yylhsminor.yy0); }
1265
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1266
- break;
1267
- case 18: /* block ::= definition_block */
1268
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFLIST); }
1269
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1270
- break;
1271
- case 19: /* block ::= empty */
1272
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_EMPTY); }
1273
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1274
- break;
1275
- case 20: /* block ::= fenced_block */
1276
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_FENCED); yymsp[0].minor.yy0->child->type = CODE_FENCE; }
1277
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1278
- break;
1279
- case 21: /* block ::= html_block */
1280
- case 22: /* block ::= html_com_block */ yytestcase(yyruleno==22);
1281
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HTML); }
1282
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1283
- break;
1284
- case 23: /* block ::= indented_code */
1285
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_INDENTED); }
1286
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1287
- break;
1288
- case 24: /* block ::= list_bullet */
1289
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_BULLETED); is_list_loose(yylhsminor.yy0); }
1290
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1291
- break;
1292
- case 25: /* block ::= list_enum */
1293
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ENUMERATED); is_list_loose(yylhsminor.yy0); }
1294
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1295
- break;
1296
- case 26: /* block ::= meta_block */
1297
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_META); }
1298
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1299
- break;
1300
- case 27: /* block ::= meta_block LINE_SETEXT_2 */
1301
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_META); token_append_child(yylhsminor.yy0, yymsp[0].minor.yy0); }
1302
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1303
- break;
1304
- case 28: /* block ::= para */
1305
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_PARA); is_para_html(engine, yylhsminor.yy0); }
1306
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1307
- break;
1308
- case 29: /* block ::= setext_1 */
1309
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_1); stack_push(engine->header_stack, yylhsminor.yy0); }
1310
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1311
- break;
1312
- case 30: /* block ::= setext_2 */
1313
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_2); stack_push(engine->header_stack, yylhsminor.yy0); }
1314
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1315
- break;
1316
- case 31: /* block ::= table */
1317
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE); stack_push(engine->table_stack, yylhsminor.yy0); }
1318
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1319
- break;
1320
- case 32: /* chunk ::= chunk chunk_line */
1321
- case 33: /* nested_chunks ::= nested_chunks nested_chunk */ yytestcase(yyruleno==33);
1322
- case 36: /* ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==36);
1323
- case 37: /* opt_ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==37);
1324
- case 38: /* blockquote ::= blockquote quote_line */ yytestcase(yyruleno==38);
1325
- case 39: /* def_citation ::= LINE_DEF_CITATION tail */ yytestcase(yyruleno==39);
1326
- case 40: /* def_footnote ::= LINE_DEF_FOOTNOTE tail */ yytestcase(yyruleno==40);
1327
- case 41: /* def_glossary ::= LINE_DEF_GLOSSARY tail */ yytestcase(yyruleno==41);
1328
- case 42: /* def_link ::= LINE_DEF_LINK chunk */ yytestcase(yyruleno==42);
1329
- case 43: /* def_abbreviation ::= LINE_DEF_ABBREVIATION chunk */ yytestcase(yyruleno==43);
1330
- case 45: /* defs ::= defs def */ yytestcase(yyruleno==45);
1331
- case 48: /* empty ::= empty LINE_EMPTY */ yytestcase(yyruleno==48);
1332
- case 52: /* fenced_3 ::= fenced_3 fenced_line */ yytestcase(yyruleno==52);
1333
- case 55: /* fenced_4 ::= fenced_4 fenced_line */ yytestcase(yyruleno==55);
1334
- case 56: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==56);
1335
- case 57: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==57);
1336
- case 59: /* fenced_5 ::= fenced_5 fenced_line */ yytestcase(yyruleno==59);
1337
- case 60: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==60);
1338
- case 61: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==61);
1339
- case 62: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==62);
1340
- case 63: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==63);
1341
- case 64: /* html_block ::= html_block html_line */ yytestcase(yyruleno==64);
1342
- case 65: /* html_com_block ::= html_comment LINE_STOP_COMMENT */ yytestcase(yyruleno==65);
1343
- case 66: /* html_comment ::= html_comment comment_line */ yytestcase(yyruleno==66);
1344
- case 67: /* indented_code ::= indented_code indented_line */ yytestcase(yyruleno==67);
1345
- case 68: /* indented_code ::= indented_code LINE_EMPTY */ yytestcase(yyruleno==68);
1346
- case 69: /* list_bullet ::= list_bullet item_bullet */ yytestcase(yyruleno==69);
1347
- case 74: /* list_enum ::= list_enum item_enum */ yytestcase(yyruleno==74);
1348
- case 79: /* meta_block ::= meta_block meta_line */ yytestcase(yyruleno==79);
1349
- case 80: /* meta_block ::= LINE_YAML LINE_META */ yytestcase(yyruleno==80);
1350
- case 81: /* para ::= LINE_PLAIN chunk */ yytestcase(yyruleno==81);
1351
- case 82: /* setext_1 ::= para LINE_SETEXT_1 */ yytestcase(yyruleno==82);
1352
- case 83: /* setext_2 ::= para LINE_SETEXT_2 */ yytestcase(yyruleno==83);
1353
- case 84: /* table ::= table_header table_body */ yytestcase(yyruleno==84);
1354
- case 87: /* header_rows ::= header_rows LINE_TABLE */ yytestcase(yyruleno==87);
1355
- case 88: /* table_body ::= table_body table_section */ yytestcase(yyruleno==88);
1356
- case 91: /* all_rows ::= all_rows row */ yytestcase(yyruleno==91);
1357
- { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
1358
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1359
- break;
1360
- case 34: /* nested_chunk ::= empty indented_line chunk */
1361
- { yylhsminor.yy0 = yymsp[-2].minor.yy0; token_chain_append(yymsp[-2].minor.yy0, yymsp[-1].minor.yy0); token_chain_append(yymsp[-2].minor.yy0, yymsp[0].minor.yy0); yymsp[-1].minor.yy0->type = LINE_CONTINUATION; }
1362
- yymsp[-2].minor.yy0 = yylhsminor.yy0;
1363
- break;
1364
- case 35: /* nested_chunk ::= empty indented_line */
1365
- { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[0].minor.yy0->type = LINE_CONTINUATION; }
1366
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1367
- break;
1368
- case 44: /* definition_block ::= para defs */
1369
- { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[-1].minor.yy0->type = BLOCK_TERM; }
1370
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1371
- break;
1372
- case 46: /* def ::= LINE_DEFINITION tail */
1373
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_DEFINITION); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
1374
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1375
- break;
1376
- case 47: /* def ::= LINE_DEFINITION */
1377
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFINITION); }
1378
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1379
- break;
1380
- case 49: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3 */
1381
- case 50: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==50);
1382
- case 51: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==51);
1383
- case 53: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==53);
1384
- case 54: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==54);
1385
- case 58: /* fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==58);
1386
- { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[0].minor.yy0->child->type = CODE_FENCE; }
1387
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1388
- break;
1389
- case 70: /* item_bullet ::= LINE_LIST_BULLETED ext_chunk */
1390
- case 72: /* item_bullet ::= LINE_LIST_BULLETED nested_chunks */ yytestcase(yyruleno==72);
1391
- case 75: /* item_enum ::= LINE_LIST_ENUMERATED ext_chunk */ yytestcase(yyruleno==75);
1392
- case 77: /* item_enum ::= LINE_LIST_ENUMERATED nested_chunks */ yytestcase(yyruleno==77);
1393
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_list_item(engine, yylhsminor.yy0); }
1394
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1395
- break;
1396
- case 71: /* item_bullet ::= LINE_LIST_BULLETED chunk */
1397
- case 76: /* item_enum ::= LINE_LIST_ENUMERATED chunk */ yytestcase(yyruleno==76);
1398
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM_TIGHT); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_list_item(engine, yylhsminor.yy0); }
1399
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1400
- break;
1401
- case 73: /* item_bullet ::= LINE_LIST_BULLETED */
1402
- case 78: /* item_enum ::= LINE_LIST_ENUMERATED */ yytestcase(yyruleno==78);
1403
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ITEM_TIGHT); }
1404
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1405
- break;
1406
- case 85: /* table_header ::= header_rows LINE_TABLE_SEPARATOR */
1407
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_HEADER); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
1408
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1409
- break;
1410
- case 86: /* table_header ::= LINE_TABLE_SEPARATOR */
1411
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_HEADER); }
1412
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1413
- break;
1414
- case 89: /* table_section ::= all_rows LINE_EMPTY */
1415
- { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_SECTION); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
1416
- yymsp[-1].minor.yy0 = yylhsminor.yy0;
1417
- break;
1418
- case 90: /* table_section ::= all_rows */
1419
- { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_SECTION); }
1420
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1421
- break;
1422
- case 92: /* para ::= all_rows */
1423
- { yylhsminor.yy0 = yymsp[0].minor.yy0; }
1424
- yymsp[0].minor.yy0 = yylhsminor.yy0;
1425
- break;
1426
- default:
1427
- /* (93) chunk ::= chunk_line (OPTIMIZED OUT) */ assert(yyruleno!=93);
1428
- /* (94) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==94);
1429
- /* (95) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==95);
1430
- /* (96) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno!=96);
1431
- /* (97) nested_chunk ::= empty */ yytestcase(yyruleno==97);
1432
- /* (98) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno==98);
1433
- /* (99) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno==99);
1434
- /* (100) opt_ext_chunk ::= chunk */ yytestcase(yyruleno==100);
1435
- /* (101) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno!=101);
1436
- /* (102) tail ::= nested_chunks */ yytestcase(yyruleno==102);
1437
- /* (103) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==103);
1438
- /* (104) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==104);
1439
- /* (105) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==105);
1440
- /* (106) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno==106);
1441
- /* (107) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno==107);
1442
- /* (108) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno==108);
1443
- /* (109) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno==109);
1444
- /* (110) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno==110);
1445
- /* (111) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno!=111);
1446
- /* (112) empty ::= LINE_EMPTY */ yytestcase(yyruleno==112);
1447
- /* (113) fenced_block ::= fenced_3 */ yytestcase(yyruleno==113);
1448
- /* (114) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==114);
1449
- /* (115) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==115);
1450
- /* (116) fenced_block ::= fenced_4 */ yytestcase(yyruleno==116);
1451
- /* (117) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==117);
1452
- /* (118) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==118);
1453
- /* (119) fenced_block ::= fenced_5 */ yytestcase(yyruleno==119);
1454
- /* (120) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==120);
1455
- /* (121) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno==121);
1456
- /* (122) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==122);
1457
- /* (123) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno==123);
1458
- /* (124) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno==124);
1459
- /* (125) fenced_line ::= LINE_HR */ yytestcase(yyruleno==125);
1460
- /* (126) fenced_line ::= LINE_HTML */ yytestcase(yyruleno==126);
1461
- /* (127) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno==127);
1462
- /* (128) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==128);
1463
- /* (129) html_block ::= LINE_HTML */ yytestcase(yyruleno==129);
1464
- /* (130) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==130);
1465
- /* (131) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno==131);
1466
- /* (132) html_line ::= LINE_HR */ yytestcase(yyruleno==132);
1467
- /* (133) html_line ::= LINE_HTML */ yytestcase(yyruleno==133);
1468
- /* (134) html_com_block ::= html_comment */ yytestcase(yyruleno==134);
1469
- /* (135) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno==135);
1470
- /* (136) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==136);
1471
- /* (137) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno==137);
1472
- /* (138) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno==138);
1473
- /* (139) comment_line ::= LINE_HR */ yytestcase(yyruleno==139);
1474
- /* (140) comment_line ::= LINE_HTML */ yytestcase(yyruleno==140);
1475
- /* (141) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno!=141);
1476
- /* (142) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno!=142);
1477
- /* (143) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno!=143);
1478
- /* (144) meta_block ::= LINE_META */ yytestcase(yyruleno==144);
1479
- /* (145) meta_line ::= LINE_META */ yytestcase(yyruleno==145);
1480
- /* (146) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==146);
1481
- /* (147) para ::= LINE_PLAIN */ yytestcase(yyruleno==147);
1482
- /* (148) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==148);
1483
- /* (149) table ::= table_header */ yytestcase(yyruleno==149);
1484
- /* (150) header_rows ::= LINE_TABLE */ yytestcase(yyruleno==150);
1485
- /* (151) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno!=151);
1486
- /* (152) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno!=152);
1487
- /* (153) row ::= header_rows */ yytestcase(yyruleno==153);
1488
- /* (154) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno==154);
1489
- /* (155) para ::= defs */ yytestcase(yyruleno==155);
1490
- break;
1491
- /********** End reduce actions ************************************************/
1492
- };
1493
- assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
1494
- yygoto = yyRuleInfo[yyruleno].lhs;
1495
- yysize = yyRuleInfo[yyruleno].nrhs;
1496
- yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
1497
- if( yyact <= YY_MAX_SHIFTREDUCE ){
1498
- if( yyact>YY_MAX_SHIFT ){
1499
- yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
1500
- }
1501
- yymsp -= yysize-1;
1502
- yypParser->yytos = yymsp;
1503
- yymsp->stateno = (YYACTIONTYPE)yyact;
1504
- yymsp->major = (YYCODETYPE)yygoto;
1505
- yyTraceShift(yypParser, yyact);
1506
- }else{
1507
- assert( yyact == YY_ACCEPT_ACTION );
1508
- yypParser->yytos -= yysize;
1509
- yy_accept(yypParser);
1510
- }
1511
1858
  }
1512
1859
 
1513
1860
  /*
@@ -1515,22 +1862,28 @@ static void yy_reduce(
1515
1862
  */
1516
1863
  #ifndef YYNOERRORRECOVERY
1517
1864
  static void yy_parse_failed(
1518
- yyParser *yypParser /* The parser */
1519
- ){
1520
- ParseARG_FETCH;
1865
+ yyParser * yypParser /* The parser */
1866
+ ) {
1867
+ ParseARG_FETCH;
1521
1868
  #ifndef NDEBUG
1522
- if( yyTraceFILE ){
1523
- fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
1524
- }
1869
+
1870
+ if ( yyTraceFILE ) {
1871
+ fprintf(yyTraceFILE, "%sFail!\n", yyTracePrompt);
1872
+ }
1873
+
1525
1874
  #endif
1526
- while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);
1527
- /* Here code is inserted which will be executed whenever the
1528
- ** parser fails */
1529
- /************ Begin %parse_failure code ***************************************/
1875
+
1876
+ while ( yypParser->yytos > yypParser->yystack ) {
1877
+ yy_pop_parser_stack(yypParser);
1878
+ }
1879
+
1880
+ /* Here code is inserted which will be executed whenever the
1881
+ ** parser fails */
1882
+ /************ Begin %parse_failure code ***************************************/
1530
1883
 
1531
1884
  fprintf(stderr, "Parser failed to successfully parse.\n");
1532
- /************ End %parse_failure code *****************************************/
1533
- ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1885
+ /************ End %parse_failure code *****************************************/
1886
+ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1534
1887
  }
1535
1888
  #endif /* YYNOERRORRECOVERY */
1536
1889
 
@@ -1538,51 +1891,56 @@ static void yy_parse_failed(
1538
1891
  ** The following code executes when a syntax error first occurs.
1539
1892
  */
1540
1893
  static void yy_syntax_error(
1541
- yyParser *yypParser, /* The parser */
1542
- int yymajor, /* The major type of the error token */
1543
- ParseTOKENTYPE yyminor /* The minor type of the error token */
1544
- ){
1545
- ParseARG_FETCH;
1894
+ yyParser * yypParser, /* The parser */
1895
+ int yymajor, /* The major type of the error token */
1896
+ ParseTOKENTYPE yyminor /* The minor type of the error token */
1897
+ ) {
1898
+ ParseARG_FETCH;
1546
1899
  #define TOKEN yyminor
1547
- /************ Begin %syntax_error code ****************************************/
1900
+ /************ Begin %syntax_error code ****************************************/
1548
1901
 
1549
1902
  #ifndef NDEBUG
1550
- fprintf(stderr,"Parser syntax error.\n");
1903
+ fprintf(stderr, "Parser syntax error.\n");
1551
1904
  int n = sizeof(yyTokenName) / sizeof(yyTokenName[0]);
1905
+
1552
1906
  for (int i = 0; i < n; ++i) {
1553
1907
  int a = yy_find_shift_action(yypParser, (YYCODETYPE)i);
1908
+
1554
1909
  if (a < YYNSTATE + YYNRULE) {
1555
- fprintf(stderr,"expected token: %s\n", yyTokenName[i]);
1910
+ fprintf(stderr, "expected token: %s\n", yyTokenName[i]);
1556
1911
  }
1557
1912
  }
1913
+
1558
1914
  #endif
1559
- /************ End %syntax_error code ******************************************/
1560
- ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1915
+ /************ End %syntax_error code ******************************************/
1916
+ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1561
1917
  }
1562
1918
 
1563
1919
  /*
1564
1920
  ** The following is executed when the parser accepts
1565
1921
  */
1566
1922
  static void yy_accept(
1567
- yyParser *yypParser /* The parser */
1568
- ){
1569
- ParseARG_FETCH;
1923
+ yyParser * yypParser /* The parser */
1924
+ ) {
1925
+ ParseARG_FETCH;
1570
1926
  #ifndef NDEBUG
1571
- if( yyTraceFILE ){
1572
- fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
1573
- }
1927
+
1928
+ if ( yyTraceFILE ) {
1929
+ fprintf(yyTraceFILE, "%sAccept!\n", yyTracePrompt);
1930
+ }
1931
+
1574
1932
  #endif
1575
1933
  #ifndef YYNOERRORRECOVERY
1576
- yypParser->yyerrcnt = -1;
1934
+ yypParser->yyerrcnt = -1;
1577
1935
  #endif
1578
- assert( yypParser->yytos==yypParser->yystack );
1579
- /* Here code is inserted which will be executed whenever the
1580
- ** parser accepts */
1581
- /*********** Begin %parse_accept code *****************************************/
1936
+ assert( yypParser->yytos == yypParser->yystack );
1937
+ /* Here code is inserted which will be executed whenever the
1938
+ ** parser accepts */
1939
+ /*********** Begin %parse_accept code *****************************************/
1582
1940
 
1583
1941
  // printf("parsing completed successfully!\n");
1584
- /*********** End %parse_accept code *******************************************/
1585
- ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1942
+ /*********** End %parse_accept code *******************************************/
1943
+ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
1586
1944
  }
1587
1945
 
1588
1946
  /* The main parser program.
@@ -1605,158 +1963,179 @@ static void yy_accept(
1605
1963
  ** None.
1606
1964
  */
1607
1965
  void Parse(
1608
- void *yyp, /* The parser */
1609
- int yymajor, /* The major token code number */
1610
- ParseTOKENTYPE yyminor /* The value for the token */
1611
- ParseARG_PDECL /* Optional %extra_argument parameter */
1612
- ){
1613
- YYMINORTYPE yyminorunion;
1614
- unsigned int yyact; /* The parser action. */
1966
+ void * yyp, /* The parser */
1967
+ int yymajor, /* The major token code number */
1968
+ ParseTOKENTYPE yyminor /* The value for the token */
1969
+ ParseARG_PDECL /* Optional %extra_argument parameter */
1970
+ ) {
1971
+ YYMINORTYPE yyminorunion;
1972
+ unsigned int yyact; /* The parser action. */
1615
1973
  #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1616
- int yyendofinput; /* True if we are at the end of input */
1974
+ int yyendofinput; /* True if we are at the end of input */
1617
1975
  #endif
1618
1976
  #ifdef YYERRORSYMBOL
1619
- int yyerrorhit = 0; /* True if yymajor has invoked an error */
1977
+ int yyerrorhit = 0; /* True if yymajor has invoked an error */
1620
1978
  #endif
1621
- yyParser *yypParser; /* The parser */
1979
+ yyParser * yypParser; /* The parser */
1622
1980
 
1623
- yypParser = (yyParser*)yyp;
1624
- assert( yypParser->yytos!=0 );
1981
+ yypParser = (yyParser *)yyp;
1982
+ assert( yypParser->yytos != 0 );
1625
1983
  #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1626
- yyendofinput = (yymajor==0);
1984
+ yyendofinput = (yymajor == 0);
1627
1985
  #endif
1628
- ParseARG_STORE;
1986
+ ParseARG_STORE;
1629
1987
 
1630
1988
  #ifndef NDEBUG
1631
- if( yyTraceFILE ){
1632
- fprintf(yyTraceFILE,"%sInput '%s'\n",yyTracePrompt,yyTokenName[yymajor]);
1633
- }
1989
+
1990
+ if ( yyTraceFILE ) {
1991
+ fprintf(yyTraceFILE, "%sInput '%s'\n", yyTracePrompt, yyTokenName[yymajor]);
1992
+ }
1993
+
1634
1994
  #endif
1635
1995
 
1636
- do{
1637
- yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
1638
- if( yyact <= YY_MAX_SHIFTREDUCE ){
1639
- yy_shift(yypParser,yyact,yymajor,yyminor);
1996
+ do {
1997
+ yyact = yy_find_shift_action(yypParser, (YYCODETYPE)yymajor);
1998
+
1999
+ if ( yyact <= YY_MAX_SHIFTREDUCE ) {
2000
+ yy_shift(yypParser, yyact, yymajor, yyminor);
1640
2001
  #ifndef YYNOERRORRECOVERY
1641
- yypParser->yyerrcnt--;
2002
+ yypParser->yyerrcnt--;
1642
2003
  #endif
1643
- yymajor = YYNOCODE;
1644
- }else if( yyact <= YY_MAX_REDUCE ){
1645
- yy_reduce(yypParser,yyact-YY_MIN_REDUCE);
1646
- }else{
1647
- assert( yyact == YY_ERROR_ACTION );
1648
- yyminorunion.yy0 = yyminor;
2004
+ yymajor = YYNOCODE;
2005
+ } else if ( yyact <= YY_MAX_REDUCE ) {
2006
+ yy_reduce(yypParser, yyact - YY_MIN_REDUCE);
2007
+ } else {
2008
+ assert( yyact == YY_ERROR_ACTION );
2009
+ yyminorunion.yy0 = yyminor;
1649
2010
  #ifdef YYERRORSYMBOL
1650
- int yymx;
2011
+ int yymx;
1651
2012
  #endif
1652
2013
  #ifndef NDEBUG
1653
- if( yyTraceFILE ){
1654
- fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
1655
- }
2014
+
2015
+ if ( yyTraceFILE ) {
2016
+ fprintf(yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt);
2017
+ }
2018
+
1656
2019
  #endif
1657
2020
  #ifdef YYERRORSYMBOL
1658
- /* A syntax error has occurred.
1659
- ** The response to an error depends upon whether or not the
1660
- ** grammar defines an error token "ERROR".
1661
- **
1662
- ** This is what we do if the grammar does define ERROR:
1663
- **
1664
- ** * Call the %syntax_error function.
1665
- **
1666
- ** * Begin popping the stack until we enter a state where
1667
- ** it is legal to shift the error symbol, then shift
1668
- ** the error symbol.
1669
- **
1670
- ** * Set the error count to three.
1671
- **
1672
- ** * Begin accepting and shifting new tokens. No new error
1673
- ** processing will occur until three tokens have been
1674
- ** shifted successfully.
1675
- **
1676
- */
1677
- if( yypParser->yyerrcnt<0 ){
1678
- yy_syntax_error(yypParser,yymajor,yyminor);
1679
- }
1680
- yymx = yypParser->yytos->major;
1681
- if( yymx==YYERRORSYMBOL || yyerrorhit ){
2021
+
2022
+ /* A syntax error has occurred.
2023
+ ** The response to an error depends upon whether or not the
2024
+ ** grammar defines an error token "ERROR".
2025
+ **
2026
+ ** This is what we do if the grammar does define ERROR:
2027
+ **
2028
+ ** * Call the %syntax_error function.
2029
+ **
2030
+ ** * Begin popping the stack until we enter a state where
2031
+ ** it is legal to shift the error symbol, then shift
2032
+ ** the error symbol.
2033
+ **
2034
+ ** * Set the error count to three.
2035
+ **
2036
+ ** * Begin accepting and shifting new tokens. No new error
2037
+ ** processing will occur until three tokens have been
2038
+ ** shifted successfully.
2039
+ **
2040
+ */
2041
+ if ( yypParser->yyerrcnt < 0 ) {
2042
+ yy_syntax_error(yypParser, yymajor, yyminor);
2043
+ }
2044
+
2045
+ yymx = yypParser->yytos->major;
2046
+
2047
+ if ( yymx == YYERRORSYMBOL || yyerrorhit ) {
1682
2048
  #ifndef NDEBUG
1683
- if( yyTraceFILE ){
1684
- fprintf(yyTraceFILE,"%sDiscard input token %s\n",
1685
- yyTracePrompt,yyTokenName[yymajor]);
1686
- }
2049
+
2050
+ if ( yyTraceFILE ) {
2051
+ fprintf(yyTraceFILE, "%sDiscard input token %s\n",
2052
+ yyTracePrompt, yyTokenName[yymajor]);
2053
+ }
2054
+
1687
2055
  #endif
1688
- yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
1689
- yymajor = YYNOCODE;
1690
- }else{
1691
- while( yypParser->yytos >= yypParser->yystack
1692
- && yymx != YYERRORSYMBOL
1693
- && (yyact = yy_find_reduce_action(
1694
- yypParser->yytos->stateno,
1695
- YYERRORSYMBOL)) >= YY_MIN_REDUCE
1696
- ){
1697
- yy_pop_parser_stack(yypParser);
1698
- }
1699
- if( yypParser->yytos < yypParser->yystack || yymajor==0 ){
1700
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
1701
- yy_parse_failed(yypParser);
2056
+ yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
2057
+ yymajor = YYNOCODE;
2058
+ } else {
2059
+ while ( yypParser->yytos >= yypParser->yystack
2060
+ && yymx != YYERRORSYMBOL
2061
+ && (yyact = yy_find_reduce_action(
2062
+ yypParser->yytos->stateno,
2063
+ YYERRORSYMBOL)) >= YY_MIN_REDUCE
2064
+ ) {
2065
+ yy_pop_parser_stack(yypParser);
2066
+ }
2067
+
2068
+ if ( yypParser->yytos < yypParser->yystack || yymajor == 0 ) {
2069
+ yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
2070
+ yy_parse_failed(yypParser);
1702
2071
  #ifndef YYNOERRORRECOVERY
1703
- yypParser->yyerrcnt = -1;
2072
+ yypParser->yyerrcnt = -1;
1704
2073
  #endif
1705
- yymajor = YYNOCODE;
1706
- }else if( yymx!=YYERRORSYMBOL ){
1707
- yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor);
1708
- }
1709
- }
1710
- yypParser->yyerrcnt = 3;
1711
- yyerrorhit = 1;
2074
+ yymajor = YYNOCODE;
2075
+ } else if ( yymx != YYERRORSYMBOL ) {
2076
+ yy_shift(yypParser, yyact, YYERRORSYMBOL, yyminor);
2077
+ }
2078
+ }
2079
+
2080
+ yypParser->yyerrcnt = 3;
2081
+ yyerrorhit = 1;
1712
2082
  #elif defined(YYNOERRORRECOVERY)
1713
- /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
1714
- ** do any kind of error recovery. Instead, simply invoke the syntax
1715
- ** error routine and continue going as if nothing had happened.
1716
- **
1717
- ** Applications can set this macro (for example inside %include) if
1718
- ** they intend to abandon the parse upon the first syntax error seen.
1719
- */
1720
- yy_syntax_error(yypParser,yymajor, yyminor);
1721
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
1722
- yymajor = YYNOCODE;
1723
-
2083
+ /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
2084
+ ** do any kind of error recovery. Instead, simply invoke the syntax
2085
+ ** error routine and continue going as if nothing had happened.
2086
+ **
2087
+ ** Applications can set this macro (for example inside %include) if
2088
+ ** they intend to abandon the parse upon the first syntax error seen.
2089
+ */
2090
+ yy_syntax_error(yypParser, yymajor, yyminor);
2091
+ yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
2092
+ yymajor = YYNOCODE;
2093
+
1724
2094
  #else /* YYERRORSYMBOL is not defined */
1725
- /* This is what we do if the grammar does not define ERROR:
1726
- **
1727
- ** * Report an error message, and throw away the input token.
1728
- **
1729
- ** * If the input token is $, then fail the parse.
1730
- **
1731
- ** As before, subsequent error messages are suppressed until
1732
- ** three input tokens have been successfully shifted.
1733
- */
1734
- if( yypParser->yyerrcnt<=0 ){
1735
- yy_syntax_error(yypParser,yymajor, yyminor);
1736
- }
1737
- yypParser->yyerrcnt = 3;
1738
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
1739
- if( yyendofinput ){
1740
- yy_parse_failed(yypParser);
2095
+
2096
+ /* This is what we do if the grammar does not define ERROR:
2097
+ **
2098
+ ** * Report an error message, and throw away the input token.
2099
+ **
2100
+ ** * If the input token is $, then fail the parse.
2101
+ **
2102
+ ** As before, subsequent error messages are suppressed until
2103
+ ** three input tokens have been successfully shifted.
2104
+ */
2105
+ if ( yypParser->yyerrcnt <= 0 ) {
2106
+ yy_syntax_error(yypParser, yymajor, yyminor);
2107
+ }
2108
+
2109
+ yypParser->yyerrcnt = 3;
2110
+ yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
2111
+
2112
+ if ( yyendofinput ) {
2113
+ yy_parse_failed(yypParser);
1741
2114
  #ifndef YYNOERRORRECOVERY
1742
- yypParser->yyerrcnt = -1;
2115
+ yypParser->yyerrcnt = -1;
1743
2116
  #endif
1744
- }
1745
- yymajor = YYNOCODE;
2117
+ }
2118
+
2119
+ yymajor = YYNOCODE;
1746
2120
  #endif
1747
- }
1748
- }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack );
2121
+ }
2122
+ } while ( yymajor != YYNOCODE && yypParser->yytos > yypParser->yystack );
2123
+
1749
2124
  #ifndef NDEBUG
1750
- if( yyTraceFILE ){
1751
- yyStackEntry *i;
1752
- char cDiv = '[';
1753
- fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt);
1754
- for(i=&yypParser->yystack[1]; i<=yypParser->yytos; i++){
1755
- fprintf(yyTraceFILE,"%c%s", cDiv, yyTokenName[i->major]);
1756
- cDiv = ' ';
1757
- }
1758
- fprintf(yyTraceFILE,"]\n");
1759
- }
2125
+
2126
+ if ( yyTraceFILE ) {
2127
+ yyStackEntry * i;
2128
+ char cDiv = '[';
2129
+ fprintf(yyTraceFILE, "%sReturn. Stack=", yyTracePrompt);
2130
+
2131
+ for (i = &yypParser->yystack[1]; i <= yypParser->yytos; i++) {
2132
+ fprintf(yyTraceFILE, "%c%s", cDiv, yyTokenName[i->major]);
2133
+ cDiv = ' ';
2134
+ }
2135
+
2136
+ fprintf(yyTraceFILE, "]\n");
2137
+ }
2138
+
1760
2139
  #endif
1761
- return;
2140
+ return;
1762
2141
  }