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.
- checksums.yaml +5 -5
- data/Rakefile +7 -13
- data/ext/Makefile +67 -55
- data/ext/extconf.rb +8 -6
- data/ext/mmd/aho-corasick.c +8 -8
- data/ext/mmd/aho-corasick.h +3 -3
- data/ext/mmd/argtable3.c +6537 -0
- data/ext/mmd/argtable3.h +273 -0
- data/ext/mmd/beamer.c +12 -1
- data/ext/mmd/char.c +120 -27
- data/ext/mmd/char.h +23 -23
- data/ext/mmd/critic_markup.c +7 -6
- data/ext/mmd/d_string.c +88 -32
- data/ext/mmd/{include/d_string.h → d_string.h} +50 -38
- data/ext/mmd/epub.c +36 -12
- data/ext/mmd/epub.h +2 -2
- data/ext/mmd/file.c +50 -40
- data/ext/mmd/file.h +2 -2
- data/ext/mmd/html.c +164 -99
- data/ext/mmd/html.h +3 -2
- data/ext/mmd/i18n.h +15 -11
- data/ext/mmd/itmz-lexer.c +16978 -0
- data/ext/mmd/itmz-lexer.h +132 -0
- data/ext/mmd/itmz-parser.c +1189 -0
- data/ext/mmd/itmz-parser.h +11 -0
- data/ext/mmd/itmz-reader.c +388 -0
- data/ext/mmd/itmz-reader.h +111 -0
- data/ext/mmd/itmz.c +567 -0
- data/ext/mmd/itmz.h +117 -0
- data/ext/mmd/latex.c +93 -41
- data/ext/mmd/lexer.c +3506 -2774
- data/ext/mmd/{include/libMultiMarkdown.h → libMultiMarkdown.h} +49 -2
- data/ext/mmd/main.c +612 -0
- data/ext/mmd/memoir.c +4 -1
- data/ext/mmd/miniz.c +6905 -6680
- data/ext/mmd/miniz.h +456 -476
- data/ext/mmd/mmd.c +399 -94
- data/ext/mmd/mmd.h +25 -25
- data/ext/mmd/object_pool.h +3 -3
- data/ext/mmd/opendocument-content.c +137 -69
- data/ext/mmd/opendocument-content.h +2 -2
- data/ext/mmd/opendocument.c +35 -14
- data/ext/mmd/opendocument.h +2 -2
- data/ext/mmd/opml-lexer.c +259 -637
- data/ext/mmd/opml-lexer.h +1 -17
- data/ext/mmd/opml-parser.c +194 -188
- data/ext/mmd/opml-reader.c +72 -142
- data/ext/mmd/opml-reader.h +1 -1
- data/ext/mmd/opml.c +13 -13
- data/ext/mmd/opml.h +1 -1
- data/ext/mmd/parser.c +1623 -1244
- data/ext/mmd/rng.c +8 -3
- data/ext/mmd/scanners.c +66625 -103198
- data/ext/mmd/scanners.h +1 -0
- data/ext/mmd/stack.c +62 -20
- data/ext/mmd/stack.h +10 -21
- data/ext/mmd/textbundle.c +23 -7
- data/ext/mmd/textbundle.h +2 -2
- data/ext/mmd/token.c +42 -16
- data/ext/mmd/{include/token.h → token.h} +22 -8
- data/ext/mmd/token_pairs.c +0 -16
- data/ext/mmd/transclude.c +6 -2
- data/ext/mmd/uthash.h +745 -745
- data/ext/mmd/version.h +8 -8
- data/ext/mmd/writer.c +225 -63
- data/ext/mmd/writer.h +50 -36
- data/ext/mmd/xml.c +855 -0
- data/ext/mmd/xml.h +134 -0
- data/ext/mmd/zip.c +71 -4
- data/ext/mmd/zip.h +7 -1
- data/ext/ruby_multi_markdown.c +9 -18
- data/lib/multi_markdown/version.rb +1 -1
- data/lib/multi_markdown.bundle +0 -0
- data/rmultimarkdown.gemspec +0 -2
- metadata +22 -28
- 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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
#include <assert.h>
|
|
29
|
+
#include <stdio.h>
|
|
30
|
+
#include <stdlib.h>
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
100
|
-
|
|
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
|
|
112
|
+
#define YYNRULE 157
|
|
112
113
|
#define YY_MAX_SHIFT 46
|
|
113
|
-
#define YY_MIN_SHIFTREDUCE
|
|
114
|
-
#define YY_MAX_SHIFTREDUCE
|
|
115
|
-
#define YY_MIN_REDUCE
|
|
116
|
-
#define YY_MAX_REDUCE
|
|
117
|
-
#define YY_ERROR_ACTION
|
|
118
|
-
#define YY_ACCEPT_ACTION
|
|
119
|
-
#define YY_NO_ACTION
|
|
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
|
-
#
|
|
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 (
|
|
192
|
+
#define YY_ACTTAB_COUNT (322)
|
|
192
193
|
static const YYACTIONTYPE yy_action[] = {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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 (
|
|
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 (
|
|
266
|
+
#define YY_SHIFT_MAX (300)
|
|
266
267
|
static const short yy_shift_ofst[] = {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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
|
-
|
|
367
|
-
|
|
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
|
-
|
|
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
|
-
|
|
378
|
+
yyStackEntry * yytos; /* Pointer to top element of the stack */
|
|
378
379
|
#ifdef YYTRACKMAXSTACKDEPTH
|
|
379
|
-
|
|
380
|
+
int yyhwm; /* High-water mark of the stack */
|
|
380
381
|
#endif
|
|
381
382
|
#ifndef YYNOERRORRECOVERY
|
|
382
|
-
|
|
383
|
+
int yyerrcnt; /* Shifts left before out of the error */
|
|
383
384
|
#endif
|
|
384
|
-
|
|
385
|
+
ParseARG_SDECL /* A place to hold %extra_argument */
|
|
385
386
|
#if YYSTACKDEPTH<=0
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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
|
-
|
|
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
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
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
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
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
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
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
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
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
|
-
|
|
644
|
-
|
|
645
|
-
|
|
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
|
-
|
|
649
|
-
|
|
650
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
677
|
-
|
|
678
|
-
|
|
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
|
-
|
|
695
|
+
pParser->yyhwm = 0;
|
|
681
696
|
#endif
|
|
682
697
|
#if YYSTACKDEPTH<=0
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
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
|
-
|
|
709
|
+
pParser->yyerrcnt = -1;
|
|
693
710
|
#endif
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
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
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
){
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
/*********
|
|
727
|
-
|
|
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
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
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
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
763
|
+
|
|
764
|
+
if ( yyTraceFILE ) {
|
|
765
|
+
fprintf(yyTraceFILE, "%sPopping %s\n",
|
|
766
|
+
yyTracePrompt,
|
|
767
|
+
yyTokenName[yytos->major]);
|
|
768
|
+
}
|
|
769
|
+
|
|
748
770
|
#endif
|
|
749
|
-
|
|
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
|
-
|
|
762
|
-
|
|
763
|
-
){
|
|
764
|
-
|
|
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
|
-
|
|
788
|
+
|
|
789
|
+
if ( pParser == 0 ) {
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
|
|
767
793
|
#endif
|
|
768
|
-
|
|
794
|
+
|
|
795
|
+
while ( pParser->yytos > pParser->yystack ) {
|
|
796
|
+
yy_pop_parser_stack(pParser);
|
|
797
|
+
}
|
|
798
|
+
|
|
769
799
|
#if YYSTACKDEPTH<=0
|
|
770
|
-
|
|
800
|
+
|
|
801
|
+
if ( pParser->yystack != &pParser->yystk0 ) {
|
|
802
|
+
free(pParser->yystack);
|
|
803
|
+
}
|
|
804
|
+
|
|
771
805
|
#endif
|
|
772
|
-
|
|
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
|
-
|
|
781
|
-
|
|
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
|
-
|
|
791
|
-
|
|
792
|
-
){
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
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
|
-
|
|
805
|
-
|
|
806
|
-
|
|
843
|
+
YYCODETYPE iFallback; /* Fallback token */
|
|
844
|
+
|
|
845
|
+
if ( iLookAhead < sizeof(yyFallback) / sizeof(yyFallback[0])
|
|
846
|
+
&& (iFallback = yyFallback[iLookAhead]) != 0 ) {
|
|
807
847
|
#ifndef NDEBUG
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
848
|
+
|
|
849
|
+
if ( yyTraceFILE ) {
|
|
850
|
+
fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
|
|
851
|
+
yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
|
|
852
|
+
}
|
|
853
|
+
|
|
812
854
|
#endif
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
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
|
-
|
|
821
|
-
|
|
862
|
+
{
|
|
863
|
+
int j = i - iLookAhead + YYWILDCARD;
|
|
864
|
+
|
|
865
|
+
if (
|
|
822
866
|
#if YY_SHIFT_MIN+YYWILDCARD<0
|
|
823
|
-
|
|
867
|
+
j >= 0 &&
|
|
824
868
|
#endif
|
|
825
869
|
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
|
|
826
|
-
|
|
870
|
+
j < YY_ACTTAB_COUNT &&
|
|
827
871
|
#endif
|
|
828
|
-
|
|
829
|
-
|
|
872
|
+
yy_lookahead[j] == YYWILDCARD && iLookAhead > 0
|
|
873
|
+
) {
|
|
830
874
|
#ifndef NDEBUG
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
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
|
-
|
|
838
|
-
|
|
839
|
-
|
|
883
|
+
return yy_action[j];
|
|
884
|
+
}
|
|
885
|
+
}
|
|
840
886
|
#endif /* YYWILDCARD */
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
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
|
-
|
|
854
|
-
|
|
855
|
-
){
|
|
856
|
-
|
|
899
|
+
int stateno, /* Current state number */
|
|
900
|
+
YYCODETYPE iLookAhead /* The look-ahead token */
|
|
901
|
+
) {
|
|
902
|
+
int i;
|
|
857
903
|
#ifdef YYERRORSYMBOL
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
904
|
+
|
|
905
|
+
if ( stateno > YY_REDUCE_COUNT ) {
|
|
906
|
+
return yy_default[stateno];
|
|
907
|
+
}
|
|
908
|
+
|
|
861
909
|
#else
|
|
862
|
-
|
|
910
|
+
assert( stateno <= YY_REDUCE_COUNT );
|
|
863
911
|
#endif
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
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
|
-
|
|
870
|
-
|
|
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
|
-
|
|
874
|
-
|
|
923
|
+
assert( i >= 0 && i < YY_ACTTAB_COUNT );
|
|
924
|
+
assert( yy_lookahead[i] == iLookAhead );
|
|
875
925
|
#endif
|
|
876
|
-
|
|
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
|
-
|
|
884
|
-
|
|
932
|
+
static void yyStackOverflow(yyParser * yypParser) {
|
|
933
|
+
ParseARG_FETCH;
|
|
934
|
+
yypParser->yytos--;
|
|
885
935
|
#ifndef NDEBUG
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
936
|
+
|
|
937
|
+
if ( yyTraceFILE ) {
|
|
938
|
+
fprintf(yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt);
|
|
939
|
+
}
|
|
940
|
+
|
|
889
941
|
#endif
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
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
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
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
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
){
|
|
927
|
-
|
|
928
|
-
|
|
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
|
-
|
|
931
|
-
|
|
932
|
-
|
|
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
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
993
|
+
#if YYSTACKDEPTH>0
|
|
994
|
+
|
|
995
|
+
if ( yypParser->yytos >= &yypParser->yystack[YYSTACKDEPTH] ) {
|
|
996
|
+
yyStackOverflow(yypParser);
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
|
|
940
1000
|
#else
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
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
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
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
|
-
|
|
963
|
-
|
|
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
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
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*);
|
|
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
|
-
|
|
1131
|
-
|
|
1132
|
-
){
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
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
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
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
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
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
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
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
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
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
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
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
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
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
|
-
|
|
1519
|
-
){
|
|
1520
|
-
|
|
1865
|
+
yyParser * yypParser /* The parser */
|
|
1866
|
+
) {
|
|
1867
|
+
ParseARG_FETCH;
|
|
1521
1868
|
#ifndef NDEBUG
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1869
|
+
|
|
1870
|
+
if ( yyTraceFILE ) {
|
|
1871
|
+
fprintf(yyTraceFILE, "%sFail!\n", yyTracePrompt);
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1525
1874
|
#endif
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
){
|
|
1545
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1568
|
-
){
|
|
1569
|
-
|
|
1923
|
+
yyParser * yypParser /* The parser */
|
|
1924
|
+
) {
|
|
1925
|
+
ParseARG_FETCH;
|
|
1570
1926
|
#ifndef NDEBUG
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1927
|
+
|
|
1928
|
+
if ( yyTraceFILE ) {
|
|
1929
|
+
fprintf(yyTraceFILE, "%sAccept!\n", yyTracePrompt);
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1574
1932
|
#endif
|
|
1575
1933
|
#ifndef YYNOERRORRECOVERY
|
|
1576
|
-
|
|
1934
|
+
yypParser->yyerrcnt = -1;
|
|
1577
1935
|
#endif
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
){
|
|
1613
|
-
|
|
1614
|
-
|
|
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
|
-
|
|
1974
|
+
int yyendofinput; /* True if we are at the end of input */
|
|
1617
1975
|
#endif
|
|
1618
1976
|
#ifdef YYERRORSYMBOL
|
|
1619
|
-
|
|
1977
|
+
int yyerrorhit = 0; /* True if yymajor has invoked an error */
|
|
1620
1978
|
#endif
|
|
1621
|
-
|
|
1979
|
+
yyParser * yypParser; /* The parser */
|
|
1622
1980
|
|
|
1623
|
-
|
|
1624
|
-
|
|
1981
|
+
yypParser = (yyParser *)yyp;
|
|
1982
|
+
assert( yypParser->yytos != 0 );
|
|
1625
1983
|
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
|
|
1626
|
-
|
|
1984
|
+
yyendofinput = (yymajor == 0);
|
|
1627
1985
|
#endif
|
|
1628
|
-
|
|
1986
|
+
ParseARG_STORE;
|
|
1629
1987
|
|
|
1630
1988
|
#ifndef NDEBUG
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1989
|
+
|
|
1990
|
+
if ( yyTraceFILE ) {
|
|
1991
|
+
fprintf(yyTraceFILE, "%sInput '%s'\n", yyTracePrompt, yyTokenName[yymajor]);
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1634
1994
|
#endif
|
|
1635
1995
|
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
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
|
-
|
|
2002
|
+
yypParser->yyerrcnt--;
|
|
1642
2003
|
#endif
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
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
|
-
|
|
2011
|
+
int yymx;
|
|
1651
2012
|
#endif
|
|
1652
2013
|
#ifndef NDEBUG
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
2014
|
+
|
|
2015
|
+
if ( yyTraceFILE ) {
|
|
2016
|
+
fprintf(yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt);
|
|
2017
|
+
}
|
|
2018
|
+
|
|
1656
2019
|
#endif
|
|
1657
2020
|
#ifdef YYERRORSYMBOL
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
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
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
2049
|
+
|
|
2050
|
+
if ( yyTraceFILE ) {
|
|
2051
|
+
fprintf(yyTraceFILE, "%sDiscard input token %s\n",
|
|
2052
|
+
yyTracePrompt, yyTokenName[yymajor]);
|
|
2053
|
+
}
|
|
2054
|
+
|
|
1687
2055
|
#endif
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
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
|
-
|
|
2072
|
+
yypParser->yyerrcnt = -1;
|
|
1704
2073
|
#endif
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
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
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
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
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
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
|
-
|
|
2115
|
+
yypParser->yyerrcnt = -1;
|
|
1743
2116
|
#endif
|
|
1744
|
-
|
|
1745
|
-
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
yymajor = YYNOCODE;
|
|
1746
2120
|
#endif
|
|
1747
|
-
|
|
1748
|
-
|
|
2121
|
+
}
|
|
2122
|
+
} while ( yymajor != YYNOCODE && yypParser->yytos > yypParser->yystack );
|
|
2123
|
+
|
|
1749
2124
|
#ifndef NDEBUG
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
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
|
-
|
|
2140
|
+
return;
|
|
1762
2141
|
}
|