/*
 * DO NOT EDIT THIS FILE!
 *
 * Parser generated by BisonGen on Tue Aug 24 16:26:03 2004.
 */


#include <Python.h>

/* token definitions */
#define NOTHING 257
#define LEADINGWS 258
#define LIST 259
#define NL 260
#define H_START 261
#define H_END 262
#define TICKS 263
#define LINK_START 264
#define LINK_END 265
#define URL 266
#define THREEBRACE_START 267
#define THREEBRACE_END 268
#define MACRO_START 269
#define MACRO_END 270
#define TABLE_START 271
#define TD 272
#define TR 273
#define TR_TD 274
#define TABLE_END 275
#define HR 276
#define FIVETILDE 277
#define FOURTILDE 278
#define THREETILDE 279
#define SMALLOPEN 280
#define SMALLCLOSE 281
#define BIGOPEN 282
#define BIGCLOSE 283
#define SUB 284
#define SUP 285
#define DLIST_MOIN 286
#define DLIST_MW 287
#define XMLLT 288
#define XML_CLOSE 289
#define XML_TAGTYPE 290
#define XML_ATTRS 291
#define XMLGT 292
#define PRE_CONTENT 293
#define NOWIKI_CONTENT 294
#define PROCESSOR_CONTENT 295
#define XML_TABLE 296
#define XML_TABLE_CLOSE 297
#define XML_BR 298
#define XML_DIV 299
#define XML_DIV_CLOSE 300
#define XML_TR 301
#define XML_TR_CLOSE 302
#define XML_TD 303
#define XML_TD_CLOSE 304
#define XML_LI 305
#define XML_LI_CLOSE 306
#define XML_UL 307
#define XML_UL_CLOSE 308
#define XML_OL 309
#define XML_OL_CLOSE 310
#define XML_DL 311
#define XML_DL_CLOSE 312
#define XML_DT 313
#define XML_DT_CLOSE 314
#define XML_HR 315
#define ANY 316

/* vector mapping lexer token numbers into internal token numbers */
static const int token_translations[] = {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 
54, 55, 56, 57, 58, 59, 60, 61, 62};

#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? token_translations[x] : 80)

/* vector of items of all rules. */
static const int rhs_tokens[] = {0, 64, 0, 64, 63, 0, 69, 0, 65, 0, 79, 0, 
66, 0, 66, 65, 0, 9, 0, 23, 0, 25, 0, 12, 0, 62, 0, 40, 0, 74, 0, 75, 0, 
76, 0, 78, 0, 68, 0, 68, 67, 0, 72, 0, 24, 0, 65, 0, 0, 0, 0, 0, 0, 39, 
0, 41, 0, 24, 0, 67, 0, 70, 0, 70, 69, 0, 71, 0, 39, 0, 77, 0, 0, 0, 7, 
67, 8, 0, 7, 65, 0, 10, 67, 11, 0, 10, 65, 11, 0, 10, 65, 0, 10, 67, 0, 
62, 0, 62, 73, 0, 26, 65, 27, 0, 26, 65, 0, 28, 65, 29, 0, 28, 65, 0, 15, 
73, 16, 0, 15, 73, 0, 4, 5, 0, 0, 5, 0, 32, 0, 0, 33, 0, 0, 34, 36, 35, 
38, 0, 34, 36, 37, 35, 38, 0, 34, 36, 37, 38, 0, 34, 36, 38, 0, 34, 35, 
36, 38, 0, 34, 35, 36, 38, 0, 34, 36, 0, 4, 0, 6, 0, 9, 0, 10, 0, 11, 0, 
12, 0, 32, 0, 33, 0, 5, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 
0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 
30, 0, 31, 0, 7, 0, 8, 0, 3, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38, 0, 41, 
0, 39, 0, 40, 0, 62, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 
49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 
0, 60, 0, 61, 0, 62, 0};

/* vector of line numbers and filename of all rules */
static const char* const rule_info[] = {": line 0",
                                      "wikishort.bgen: line 73",
                                      "wikishort.bgen: line 77",
                                      "wikishort.bgen: line 87",
                                      "wikishort.bgen: line 88",
                                      "wikishort.bgen: line 89",
                                      "wikishort.bgen: line 94",
                                      "wikishort.bgen: line 95",
                                      "wikishort.bgen: line 99",
                                      "wikishort.bgen: line 100",
                                      "wikishort.bgen: line 101",
                                      "wikishort.bgen: line 102",
                                      "wikishort.bgen: line 103",
                                      "wikishort.bgen: line 104",
                                      "wikishort.bgen: line 105",
                                      "wikishort.bgen: line 106",
                                      "wikishort.bgen: line 107",
                                      "wikishort.bgen: line 108",
                                      "wikishort.bgen: line 113",
                                      "wikishort.bgen: line 114",
                                      "wikishort.bgen: line 118",
                                      "wikishort.bgen: line 119",
                                      "wikishort.bgen: line 120",
                                      "wikishort.bgen: line 125",
                                      "wikishort.bgen: line 126",
                                      "wikishort.bgen: line 130",
                                      "wikishort.bgen: line 131",
                                      "wikishort.bgen: line 132",
                                      "wikishort.bgen: line 133",
                                      "wikishort.bgen: line 138",
                                      "wikishort.bgen: line 139",
                                      "wikishort.bgen: line 143",
                                      "wikishort.bgen: line 144",
                                      "wikishort.bgen: line 145",
                                      "wikishort.bgen: line 146",
                                      "wikishort.bgen: line 151",
                                      "wikishort.bgen: line 169",
                                      "wikishort.bgen: line 173",
                                      "wikishort.bgen: line 179",
                                      "wikishort.bgen: line 185",
                                      "wikishort.bgen: line 186",
                                      "wikishort.bgen: line 191",
                                      "wikishort.bgen: line 192",
                                      "wikishort.bgen: line 196",
                                      "wikishort.bgen: line 202",
                                      "wikishort.bgen: line 206",
                                      "wikishort.bgen: line 212",
                                      "wikishort.bgen: line 216",
                                      "wikishort.bgen: line 222",
                                      "wikishort.bgen: line 226",
                                      "wikishort.bgen: line 232",
                                      "wikishort.bgen: line 234",
                                      "wikishort.bgen: line 239",
                                      "wikishort.bgen: line 247",
                                      "wikishort.bgen: line 254",
                                      "wikishort.bgen: line 262",
                                      "wikishort.bgen: line 269",
                                      "wikishort.bgen: line 275",
                                      "wikishort.bgen: line 282",
                                      "wikishort.bgen: line 290",
                                      "wikishort.bgen: line 295",
                                      "wikishort.bgen: line 296",
                                      "wikishort.bgen: line 297",
                                      "wikishort.bgen: line 298",
                                      "wikishort.bgen: line 299",
                                      "wikishort.bgen: line 300",
                                      "wikishort.bgen: line 301",
                                      "wikishort.bgen: line 302",
                                      "wikishort.bgen: line 303",
                                      "wikishort.bgen: line 304",
                                      "wikishort.bgen: line 305",
                                      "wikishort.bgen: line 306",
                                      "wikishort.bgen: line 307",
                                      "wikishort.bgen: line 308",
                                      "wikishort.bgen: line 309",
                                      "wikishort.bgen: line 310",
                                      "wikishort.bgen: line 311",
                                      "wikishort.bgen: line 312",
                                      "wikishort.bgen: line 313",
                                      "wikishort.bgen: line 314",
                                      "wikishort.bgen: line 315",
                                      "wikishort.bgen: line 316",
                                      "wikishort.bgen: line 317",
                                      "wikishort.bgen: line 318",
                                      "wikishort.bgen: line 319",
                                      "wikishort.bgen: line 320",
                                      "wikishort.bgen: line 321",
                                      "wikishort.bgen: line 322",
                                      "wikishort.bgen: line 323",
                                      "wikishort.bgen: line 324",
                                      "wikishort.bgen: line 325",
                                      "wikishort.bgen: line 326",
                                      "wikishort.bgen: line 327",
                                      "wikishort.bgen: line 328",
                                      "wikishort.bgen: line 329",
                                      "wikishort.bgen: line 330",
                                      "wikishort.bgen: line 331",
                                      "wikishort.bgen: line 332",
                                      "wikishort.bgen: line 333",
                                      "wikishort.bgen: line 334",
                                      "wikishort.bgen: line 335",
                                      "wikishort.bgen: line 336",
                                      "wikishort.bgen: line 337",
                                      "wikishort.bgen: line 338",
                                      "wikishort.bgen: line 339",
                                      "wikishort.bgen: line 340",
                                      "wikishort.bgen: line 341",
                                      "wikishort.bgen: line 342",
                                      "wikishort.bgen: line 343",
                                      "wikishort.bgen: line 344",
                                      "wikishort.bgen: line 345",
                                      "wikishort.bgen: line 346",
                                      "wikishort.bgen: line 347",
                                      "wikishort.bgen: line 348",
                                      "wikishort.bgen: line 349",
                                      "wikishort.bgen: line 350",
                                      "wikishort.bgen: line 351",
                                      "wikishort.bgen: line 352",
                                      "wikishort.bgen: line 353",
                                      "wikishort.bgen: line 354",
                                      "wikishort.bgen: line 355",
                                      };

/* vector of string-names indexed by token number */
static const char* const token_names[] = {"<EOF>",
                                        "error",
                                        "$undefined.",
                                        "NOTHING",
                                        "LEADINGWS",
                                        "LIST",
                                        "NL",
                                        "H_START",
                                        "H_END",
                                        "TICKS",
                                        "LINK_START",
                                        "LINK_END",
                                        "URL",
                                        "THREEBRACE_START",
                                        "THREEBRACE_END",
                                        "MACRO_START",
                                        "MACRO_END",
                                        "TABLE_START",
                                        "TD",
                                        "TR",
                                        "TR_TD",
                                        "TABLE_END",
                                        "HR",
                                        "FIVETILDE",
                                        "FOURTILDE",
                                        "THREETILDE",
                                        "SMALLOPEN",
                                        "SMALLCLOSE",
                                        "BIGOPEN",
                                        "BIGCLOSE",
                                        "SUB",
                                        "SUP",
                                        "DLIST_MOIN",
                                        "DLIST_MW",
                                        "XMLLT",
                                        "XML_CLOSE",
                                        "XML_TAGTYPE",
                                        "XML_ATTRS",
                                        "XMLGT",
                                        "PRE_CONTENT",
                                        "NOWIKI_CONTENT",
                                        "PROCESSOR_CONTENT",
                                        "XML_TABLE",
                                        "XML_TABLE_CLOSE",
                                        "XML_BR",
                                        "XML_DIV",
                                        "XML_DIV_CLOSE",
                                        "XML_TR",
                                        "XML_TR_CLOSE",
                                        "XML_TD",
                                        "XML_TD_CLOSE",
                                        "XML_LI",
                                        "XML_LI_CLOSE",
                                        "XML_UL",
                                        "XML_UL_CLOSE",
                                        "XML_OL",
                                        "XML_OL_CLOSE",
                                        "XML_DL",
                                        "XML_DL_CLOSE",
                                        "XML_DT",
                                        "XML_DT_CLOSE",
                                        "XML_HR",
                                        "ANY",
                                        "Root",
                                        "Toplevel",
                                        "Inlines",
                                        "Inline",
                                        "Inlines_pluslink",
                                        "Inline_pluslink",
                                        "BlocklevelS",
                                        "Blocklevel",
                                        "Header",
                                        "Link",
                                        "ANYs",
                                        "Small",
                                        "Big",
                                        "Macro",
                                        "ListItem",
                                        "XMLTag",
                                        "Catchall",
                                        "XMLTag",
                                        "Catchall",
                                        "None",
                                        "0",
                                        };

/* symbol number of symbol that rule derives. */
static const int derives[] = {0, 63, 63, 64, 64, 64, 65, 65, 66, 66, 66, 
66, 66, 66, 66, 66, 66, 66, 67, 67, 68, 68, 68, -1, -1, -1, -1, -1, -1, 
69, 69, 70, 70, 70, -1, 71, 71, 72, 72, 72, 72, 73, 73, 74, 74, 75, 75, 
76, 76, -1, 77, -1, -1, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 
79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 
79, 79};

/* number of symbols composing right hand side of rule. */
static const int rhs_size[] = {0, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 3, 2, 3, 
3, 2, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 1, 2, 2, 4, 5, 4, 3, 4, 4, 2, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};

/* default rule to reduce with in state. 0 means the default is an error.
   indexed by state number */
static const int default_action[] = {0, 90, 60, 50, 61, 88, 89, 8, 63, 64, 
11, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 9, 80, 10, 82, 83, 84, 85, 
86, 87, 66, 67, 91, 92, 93, 94, 95, 32, 13, 96, 100, 101, 102, 103, 104, 
105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 
12, 1, 4, 6, 3, 29, 31, 14, 15, 16, 33, 17, 5, 8, 0, 11, 0, 9, 21, 10, 
0, 0, 0, 13, 12, 36, 0, 18, 20, 41, 48, 44, 46, 0, 59, 2, 7, 50, 0, 32, 
30, 22, 40, 35, 22, 19, 42, 47, 43, 45, 0, 0, 0, 56, 38, 37, 57, 53, 0, 
55, 54, 0, 0, 0};

/* default state to go to after a reduction of a rule.
   indexed by variable number (lhs token) */
static const int default_goto[] = {95, 61, 62, 63, 86, 87, 64, 65, 66, 88, 
90, 67, 68, 69, 70, 71, 72};

/* index in yytable of the portion describing state (indexed by state number)
   If the value in yytable is positive, we shift the token and go to that state.
   If the value is negative, it is minus a rule number to reduce by.
   If the value is zero, the default action from yydefact[s] is used. */
static const int action_idx[] = {91, -32768, -32768, -32768, -32768, 19, 
-32768, -32768, -32768, -32768, -32768, -32768, -32768, -61, -32768, -32768, 
-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 23, -32768, 
23, -32768, -32768, -32768, -32768, -32768, -30, -32768, -32768, -32768, 
-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 
-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 
-32768, -32768, -32768, -32768, -32768, -32768, -32768, 91, -32768, 23, 
-32768, -3, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 
145, -32768, -61, -32768, -32768, -32768, 149, 149, -30, -32768, -32768, 
-1, 9, 172, -32768, -61, 4, 3, 8, -10, -25, -32768, -32768, -32768, 172, 
-32768, -32768, 29, 30, -32768, -32768, -32768, -32768, -32768, -32768, 
-32768, 12, 14, -20, -32768, -32768, -32768, -32768, -32768, 16, -32768, 
-32768, 55, 56, -32768};

/* The index in yytable of the portion describing what to do after reducing a rule.
   The value from yytable is the state to go to. */
static const int goto_idx[] = {60, -32768, -5, -32768, -71, -32768, 0, -32768, 
-32768, -32768, -27, -32768, -32768, -32768, -32768, -32768, -32768};

/* A vector filled with portions for different uses.
   (using action_idx and goto_idx) */
static const int yytable[] = {85, 89, 97, 102, 98, 93, 94, -22, -22, -22, 
111, -22, 112, 113, -22, 118, 105, 103, 119, 91, 107, 92, -22, -22, -22, 
-22, 110, -22, 73, 74, 108, 75, 73, -22, 76, 75, 99, 109, 76, -22, 114, 
115, 77, 78, 79, 80, 77, 81, 79, 80, 116, 81, 117, 82, 120, 122, 123, 82, 
96, 83, 121, -22, 106, 83, 0, 100, 0, 0, 0, 101, 0, 0, 0, 0, 0, 91, 92, 
0, 0, 0, 0, 84, 104, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 85, 1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 
73, 74, 0, 75, 73, 0, 76, 75, 0, 0, 76, 0, 0, 0, 77, 78, 79, 80, 77, 81, 
79, 80, 0, 81, 0, 82, 0, 73, 74, 82, 75, 83, 0, 76, 0, 83, 0, 0, 0, 0, 
0, 77, 78, 79, 80, 0, 81, 0, 0, 0, 0, 0, 82, 84, 0, 0, 0, 84, 83, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84};

/* a vector indexed in parallel with yytable.
   It indicates the bounds of the portion you are trying to examine. */
static const int yycheck[] = {5, 62, 5, 74, 7, 35, 36, 8, 9, 10, 35, 12, 
37, 38, 15, 35, 87, 8, 38, 24, 16, 26, 23, 24, 25, 26, 36, 28, 9, 10, 27, 
12, 9, 34, 15, 12, 39, 29, 15, 40, 11, 11, 23, 24, 25, 26, 23, 28, 25, 
26, 38, 28, 38, 34, 38, 0, 0, 34, 63, 40, 0, 62, 89, 40, -1, 65, -1, -1, 
-1, 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, 62, 87, -1, -1, 62, 
-1, -1, -1, -1, -1, -1, -1, 98, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 
51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 9, 10, -1, 12, 9, -1, 15, 
12, -1, -1, 15, -1, -1, -1, 23, 24, 25, 26, 23, 28, 25, 26, -1, 28, -1, 
34, -1, 9, 10, 34, 12, 40, -1, 15, -1, 40, -1, -1, -1, -1, -1, 23, 24, 
25, 26, -1, 28, -1, -1, -1, -1, -1, 34, 62, -1, -1, -1, 62, 40, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, 62};

#define YYLAST 234
#define YYFINAL 123
#define YYFLAG -32768
#define YYNTBASE 63

/* modules required for action routines */

/* the expressions and information for each rule */

/* the patterns will be created in the module init */
static PyObject *patterns[] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static const int pattern_actions[] = {2, 7, 257, 2, 1, 316, 2, 1, 268, 
2, 0, 293, 2, 0, 293, 2, 0, 289, 2, 0, 290, 2, 0, 291, 2, 1, 292, 2, 1, 
266, 2, 1, 316, 2, 1, 259, 2, 1, 257, 2, 3, 267, 2, 11, 267, 2, 0, 288, 
2, 4, 296, 2, 4, 297, 2, 4, 298, 2, 4, 299, 2, 4, 300, 2, 4, 301, 2, 4, 
302, 2, 4, 303, 2, 4, 304, 2, 4, 305, 2, 4, 306, 2, 4, 307, 2, 4, 308, 
2, 4, 309, 2, 4, 310, 2, 4, 311, 2, 4, 312, 2, 4, 313, 2, 4, 314, 2, 4, 
315, 2, 4, 257, 2, 12, 260, 2, 0, 316, 2, 0, 266, 2, 0, 262, 2, 0, 263, 
2, 0, 264, 2, 0, 265, 2, 0, 286, 2, 0, 287, 2, 10, 267, 2, 0, 272, 2, 0, 
269, 2, 0, 270, 2, 2, 257, 2, 8, 257, 2, 0, 281, 2, 0, 283, 2, 0, 284, 
2, 0, 285, 2, 0, 316, 2, 1, 277, 2, 1, 278, 2, 1, 279, 2, 1, 280, 2, 1, 
282, 2, 1, 316, 2, 1, 274, 2, 1, 273, 2, 1, 275, 2, 1, 272, 2, 1, 316, 
2, 1, 268, 2, 0, 295, 2, 0, 295, 2, 1, 268, 2, 0, 294, 2, 0, 294, 2, 9, 
257, 2, 1, 259, 2, 6, 258, 2, 1, 261, 2, 1, 271, 2, 1, 276, 2, 1, 257};

#if PY_MAJOR_VERSION < 2
#error "Python 2.0 or later required"
#endif

/* Static Definitions */
#define YYEMPTY -2
#define YYERROR -1
#define YYEOF 0
#define YYINITDEPTH 1000

#define LEXER_ACTION_SIZE 3
#define LEXER_INITIAL 1


/* Parsing objects */
typedef struct {
  PyObject_HEAD
  int verbose;
} parserobject;

typedef struct {
  PyObject *text;
  int position;
  int last;
  int end;
  int state;
} lexerobject;


/* Forward Declarations */
staticforward PyTypeObject ParserType;

static char *unicode_escape_slice(PyObject *, int, int);
static int parser_yylex(parserobject *, lexerobject *, PyObject **);
static void lexer_error(lexerobject *lexer);
static PyObject *report_error(int state, PyObject *lval, lexerobject *lexer);
static void print_reduce(int ruleno);
static void print_state_stack(int *stack, int *end);


/* Parser Creation */
static char parserobject__doc__[] = "This object represents a generated parser.";

static PyObject *newparserobject(int verbose)
{
  parserobject *po;

  ParserType.ob_type = &PyType_Type;
  po = PyObject_New(parserobject, &ParserType);
  if (po == NULL) return NULL;
  po->verbose = verbose;
  return (PyObject *)po;
}

/* Parser Methods */

static void parser_dealloc(register parserobject *self)
{
  PyObject_Del(self);
}

static char parser_parse__doc__[] = "\
parse(string) -> object\n\
Converts the given string to a parse tree and return the top-most\n\
element of the tree.";

static PyObject* parser_parse(register parserobject *self, PyObject *args)
{
  PyObject *arg0;

  register int yystate;
  register int yyn;

  PyObject *yylval = NULL;
  PyObject *yyval = NULL;

  int state_stack[YYINITDEPTH];
  int *state_ptr;
  PyObject *value_stack[YYINITDEPTH];
  PyObject **value_ptr;

  int yylen;
  int yychar = YYEMPTY;         /* cause a token to be read */
  int yychar1 = 0;

  lexerobject lexer;

  if (!PyArg_ParseTuple(args, "O:parse", &arg0)) return NULL;

  /* attempt to coerce given object to unicode using default rules */
  /* existing unicode object is increfed, else new reference */
  if (!(lexer.text = PyUnicode_FromObject(arg0))) return NULL;

  /* setup the lexer object */
  lexer.end = PyUnicode_GET_SIZE(lexer.text);
  lexer.position = lexer.last = 0;
  lexer.state = LEXER_INITIAL;

  if (self->verbose) PySys_WriteStderr("Starting parse\n");

  /* Initialize stack pointers
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized. */
  state_ptr = state_stack - 1;
  value_ptr = value_stack;

  yystate = 0;

  while (1) {
    /* Push a new state, which is found in yystate. */
    /* In all cases, when you get here, the value and location stacks
       have just been pushed.  So pushing a state here evens the stacks. */
    *++state_ptr = yystate;

    if (self->verbose) PySys_WriteStderr("Entering state %d\n", yystate);

    /* Do appropriate processing given the current state. */
    /* Read a lookahead token if we need one and don't already have one. */

    /* First try to decide what to do without reference to lookahead token. */
    yyn = action_idx[yystate];
    if (yyn == YYFLAG) {
      yyn = default_action[yystate];
      if (yyn == 0) {
        return report_error(yystate, yylval, &lexer);
      }

      /* Do a reduction. yyn is the number of a rule to reduce with. */
      if (self->verbose) print_reduce(yyn);

      yylen = rhs_size[yyn];
      state_ptr -= yylen;
      value_ptr -= yylen;
      if (yylen > 0) yyval = value_ptr[1];

      /* Action routines */
      switch (yyn) {
case 1: {
  /* from wikishort.bgen, line 73
   * Root: Toplevel
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 2: {
  /* from wikishort.bgen, line 77
   * Root: Toplevel Root
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 8: {
  /* from wikishort.bgen, line 99
   * Inline: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 9: {
  /* from wikishort.bgen, line 100
   * Inline: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 10: {
  /* from wikishort.bgen, line 101
   * Inline: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 11: {
  /* from wikishort.bgen, line 102
   * Inline: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 12: {
  /* from wikishort.bgen, line 103
   * Inline: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 13: {
  /* from wikishort.bgen, line 104
   * Inline: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 14: {
  /* from wikishort.bgen, line 105
   * Inline: Small
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 15: {
  /* from wikishort.bgen, line 106
   * Inline: Big
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 16: {
  /* from wikishort.bgen, line 107
   * Inline: Macro
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 17: {
  /* from wikishort.bgen, line 108
   * Inline: XMLTag
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 19: {
  /* from wikishort.bgen, line 114
   * Inlines_pluslink: Inline_pluslink Inlines_pluslink
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inlines_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 21: {
  /* from wikishort.bgen, line 119
   * Inline_pluslink: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 24: {
  /* from wikishort.bgen, line 126
   * Flows: Flow Flows
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flows(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 25: {
  /* from wikishort.bgen, line 130
   * Flow: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 26: {
  /* from wikishort.bgen, line 131
   * Flow: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 27: {
  /* from wikishort.bgen, line 132
   * Flow: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 30: {
  /* from wikishort.bgen, line 139
   * BlocklevelS: Blocklevel BlocklevelS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--BlocklevelS(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 32: {
  /* from wikishort.bgen, line 144
   * Blocklevel: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 33: {
  /* from wikishort.bgen, line 145
   * Blocklevel: ListItem
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 35: {
  /* from wikishort.bgen, line 151
   * Header: H_START Inlines_pluslink H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Header(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 37: {
  /* from wikishort.bgen, line 173
   * Link: LINK_START Inlines_pluslink LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 38: {
  /* from wikishort.bgen, line 179
   * Link: LINK_START Inlines LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 42: {
  /* from wikishort.bgen, line 192
   * ANYs: ANY ANYs
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ANYs(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 43: {
  /* from wikishort.bgen, line 196
   * Small: SMALLOPEN Inlines SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Small(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 45: {
  /* from wikishort.bgen, line 206
   * Big: BIGOPEN Inlines BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Big(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 47: {
  /* from wikishort.bgen, line 216
   * Macro: MACRO_START ANYs MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Macro(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 49: {
  /* from wikishort.bgen, line 226
   * ListItem: LEADINGWS LIST Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 51: {
  /* from wikishort.bgen, line 234
   * ListItem: DLIST_MOIN Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 52: {
  /* from wikishort.bgen, line 239
   * ListItem: DLIST_MW Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 53: {
  /* from wikishort.bgen, line 247
   * XMLTag: XMLLT XML_TAGTYPE XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 54: {
  /* from wikishort.bgen, line 254
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[5], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  
  break;
}
case 55: {
  /* from wikishort.bgen, line 262
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 56: {
  /* from wikishort.bgen, line 269
   * XMLTag: XMLLT XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 57: {
  /* from wikishort.bgen, line 275
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 58: {
  /* from wikishort.bgen, line 282
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 60: {
  /* from wikishort.bgen, line 295
   * Catchall: LEADINGWS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 62: {
  /* from wikishort.bgen, line 297
   * Catchall: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 63: {
  /* from wikishort.bgen, line 298
   * Catchall: LINK_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 64: {
  /* from wikishort.bgen, line 299
   * Catchall: LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 65: {
  /* from wikishort.bgen, line 300
   * Catchall: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 66: {
  /* from wikishort.bgen, line 301
   * Catchall: DLIST_MOIN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 67: {
  /* from wikishort.bgen, line 302
   * Catchall: DLIST_MW
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 68: {
  /* from wikishort.bgen, line 303
   * Catchall: LIST
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 69: {
  /* from wikishort.bgen, line 304
   * Catchall: THREEBRACE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 70: {
  /* from wikishort.bgen, line 305
   * Catchall: THREEBRACE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 71: {
  /* from wikishort.bgen, line 306
   * Catchall: MACRO_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 72: {
  /* from wikishort.bgen, line 307
   * Catchall: MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 73: {
  /* from wikishort.bgen, line 308
   * Catchall: TABLE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 74: {
  /* from wikishort.bgen, line 309
   * Catchall: TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 75: {
  /* from wikishort.bgen, line 310
   * Catchall: TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 76: {
  /* from wikishort.bgen, line 311
   * Catchall: TR_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 77: {
  /* from wikishort.bgen, line 312
   * Catchall: TABLE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 78: {
  /* from wikishort.bgen, line 313
   * Catchall: HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 79: {
  /* from wikishort.bgen, line 314
   * Catchall: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 80: {
  /* from wikishort.bgen, line 315
   * Catchall: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 81: {
  /* from wikishort.bgen, line 316
   * Catchall: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 82: {
  /* from wikishort.bgen, line 317
   * Catchall: SMALLOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 83: {
  /* from wikishort.bgen, line 318
   * Catchall: SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 84: {
  /* from wikishort.bgen, line 319
   * Catchall: BIGOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 85: {
  /* from wikishort.bgen, line 320
   * Catchall: BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 86: {
  /* from wikishort.bgen, line 321
   * Catchall: SUB
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 87: {
  /* from wikishort.bgen, line 322
   * Catchall: SUP
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 88: {
  /* from wikishort.bgen, line 323
   * Catchall: H_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 89: {
  /* from wikishort.bgen, line 324
   * Catchall: H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 90: {
  /* from wikishort.bgen, line 325
   * Catchall: NOTHING
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 91: {
  /* from wikishort.bgen, line 326
   * Catchall: XMLLT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 92: {
  /* from wikishort.bgen, line 327
   * Catchall: XML_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 93: {
  /* from wikishort.bgen, line 328
   * Catchall: XML_TAGTYPE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 94: {
  /* from wikishort.bgen, line 329
   * Catchall: XML_ATTRS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 95: {
  /* from wikishort.bgen, line 330
   * Catchall: XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 96: {
  /* from wikishort.bgen, line 331
   * Catchall: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 97: {
  /* from wikishort.bgen, line 332
   * Catchall: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 98: {
  /* from wikishort.bgen, line 333
   * Catchall: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 99: {
  /* from wikishort.bgen, line 334
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 100: {
  /* from wikishort.bgen, line 335
   * Catchall: XML_TABLE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 101: {
  /* from wikishort.bgen, line 336
   * Catchall: XML_TABLE_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 102: {
  /* from wikishort.bgen, line 337
   * Catchall: XML_BR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 103: {
  /* from wikishort.bgen, line 338
   * Catchall: XML_DIV
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 104: {
  /* from wikishort.bgen, line 339
   * Catchall: XML_DIV_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 105: {
  /* from wikishort.bgen, line 340
   * Catchall: XML_TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 106: {
  /* from wikishort.bgen, line 341
   * Catchall: XML_TR_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 107: {
  /* from wikishort.bgen, line 342
   * Catchall: XML_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 108: {
  /* from wikishort.bgen, line 343
   * Catchall: XML_TD_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 109: {
  /* from wikishort.bgen, line 344
   * Catchall: XML_LI
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 110: {
  /* from wikishort.bgen, line 345
   * Catchall: XML_LI_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 111: {
  /* from wikishort.bgen, line 346
   * Catchall: XML_UL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 112: {
  /* from wikishort.bgen, line 347
   * Catchall: XML_UL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 113: {
  /* from wikishort.bgen, line 348
   * Catchall: XML_OL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 114: {
  /* from wikishort.bgen, line 349
   * Catchall: XML_OL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 115: {
  /* from wikishort.bgen, line 350
   * Catchall: XML_DL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 116: {
  /* from wikishort.bgen, line 351
   * Catchall: XML_DL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 117: {
  /* from wikishort.bgen, line 352
   * Catchall: XML_DT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 118: {
  /* from wikishort.bgen, line 353
   * Catchall: XML_DT_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 119: {
  /* from wikishort.bgen, line 354
   * Catchall: XML_HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 120: {
  /* from wikishort.bgen, line 355
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
      }
      if (!yyval) {
		Py_DECREF(lexer.text);
		return NULL;
	  }
      *++value_ptr = yyval;

      if (self->verbose) print_state_stack(state_stack, state_ptr);


      /* Now "shift" the result of the reduction. */
      /* Determine what state that goes to, based on the state
         we popped back to and the rule number reduced by. */

      yyn = derives[yyn] - YYNTBASE;
      yystate = goto_idx[yyn] + *state_ptr;
      if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *state_ptr) {
        yystate = yytable[yystate];
      } else {
        yystate = default_goto[yyn];
      }
      continue;
    } /* if (yyn == YYFLAG) */

    /* Not known => get a lookahead token if don't already have one. */

    /* yychar is either YYEMPTY, YYEOF or a valid token in external form */
    if (yychar == YYEMPTY) {
      if (self->verbose) PySys_WriteStderr("Reading a token: ");
      yychar = parser_yylex(self, &lexer, &yylval);
    }

    /* Convert token to internal form (in yychar1) for indexing tables with */

    if (yychar <= 0) {
      if (yychar == YYERROR) {
        Py_DECREF(lexer.text);
        return NULL;
      }
      /* This means end-of-input. */
      yychar1 = 0;
      if (self->verbose) PySys_WriteStderr("Now at end of input.\n");
    } else {
      yychar1 = YYTRANSLATE(yychar);
      if (self->verbose) {
        PySys_WriteStderr("Next token is %d (%s)\n", yychar, token_names[yychar1]);
      }
      yyn += yychar1;
    }
    if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) {
      /* comes here after end of input */
      yyn = default_action[yystate];
      if (yyn == 0) {
        return report_error(yystate, NULL, &lexer);
      }

      /* Do a reduction. yyn is the number of a rule to reduce with. */
      if (self->verbose) print_reduce(yyn);

      yylen = rhs_size[yyn];
      state_ptr -= yylen;
      value_ptr -= yylen;
      if (yylen > 0) yyval = value_ptr[1];

      /* Action routines */
      switch (yyn) {
case 1: {
  /* from wikishort.bgen, line 73
   * Root: Toplevel
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 2: {
  /* from wikishort.bgen, line 77
   * Root: Toplevel Root
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 8: {
  /* from wikishort.bgen, line 99
   * Inline: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 9: {
  /* from wikishort.bgen, line 100
   * Inline: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 10: {
  /* from wikishort.bgen, line 101
   * Inline: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 11: {
  /* from wikishort.bgen, line 102
   * Inline: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 12: {
  /* from wikishort.bgen, line 103
   * Inline: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 13: {
  /* from wikishort.bgen, line 104
   * Inline: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 14: {
  /* from wikishort.bgen, line 105
   * Inline: Small
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 15: {
  /* from wikishort.bgen, line 106
   * Inline: Big
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 16: {
  /* from wikishort.bgen, line 107
   * Inline: Macro
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 17: {
  /* from wikishort.bgen, line 108
   * Inline: XMLTag
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 19: {
  /* from wikishort.bgen, line 114
   * Inlines_pluslink: Inline_pluslink Inlines_pluslink
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inlines_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 21: {
  /* from wikishort.bgen, line 119
   * Inline_pluslink: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 24: {
  /* from wikishort.bgen, line 126
   * Flows: Flow Flows
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flows(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 25: {
  /* from wikishort.bgen, line 130
   * Flow: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 26: {
  /* from wikishort.bgen, line 131
   * Flow: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 27: {
  /* from wikishort.bgen, line 132
   * Flow: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 30: {
  /* from wikishort.bgen, line 139
   * BlocklevelS: Blocklevel BlocklevelS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--BlocklevelS(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 32: {
  /* from wikishort.bgen, line 144
   * Blocklevel: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 33: {
  /* from wikishort.bgen, line 145
   * Blocklevel: ListItem
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 35: {
  /* from wikishort.bgen, line 151
   * Header: H_START Inlines_pluslink H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Header(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 37: {
  /* from wikishort.bgen, line 173
   * Link: LINK_START Inlines_pluslink LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 38: {
  /* from wikishort.bgen, line 179
   * Link: LINK_START Inlines LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 42: {
  /* from wikishort.bgen, line 192
   * ANYs: ANY ANYs
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ANYs(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 43: {
  /* from wikishort.bgen, line 196
   * Small: SMALLOPEN Inlines SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Small(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 45: {
  /* from wikishort.bgen, line 206
   * Big: BIGOPEN Inlines BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Big(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 47: {
  /* from wikishort.bgen, line 216
   * Macro: MACRO_START ANYs MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Macro(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 49: {
  /* from wikishort.bgen, line 226
   * ListItem: LEADINGWS LIST Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 51: {
  /* from wikishort.bgen, line 234
   * ListItem: DLIST_MOIN Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 52: {
  /* from wikishort.bgen, line 239
   * ListItem: DLIST_MW Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 53: {
  /* from wikishort.bgen, line 247
   * XMLTag: XMLLT XML_TAGTYPE XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 54: {
  /* from wikishort.bgen, line 254
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[5], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  
  break;
}
case 55: {
  /* from wikishort.bgen, line 262
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 56: {
  /* from wikishort.bgen, line 269
   * XMLTag: XMLLT XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 57: {
  /* from wikishort.bgen, line 275
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 58: {
  /* from wikishort.bgen, line 282
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 60: {
  /* from wikishort.bgen, line 295
   * Catchall: LEADINGWS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 62: {
  /* from wikishort.bgen, line 297
   * Catchall: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 63: {
  /* from wikishort.bgen, line 298
   * Catchall: LINK_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 64: {
  /* from wikishort.bgen, line 299
   * Catchall: LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 65: {
  /* from wikishort.bgen, line 300
   * Catchall: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 66: {
  /* from wikishort.bgen, line 301
   * Catchall: DLIST_MOIN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 67: {
  /* from wikishort.bgen, line 302
   * Catchall: DLIST_MW
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 68: {
  /* from wikishort.bgen, line 303
   * Catchall: LIST
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 69: {
  /* from wikishort.bgen, line 304
   * Catchall: THREEBRACE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 70: {
  /* from wikishort.bgen, line 305
   * Catchall: THREEBRACE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 71: {
  /* from wikishort.bgen, line 306
   * Catchall: MACRO_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 72: {
  /* from wikishort.bgen, line 307
   * Catchall: MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 73: {
  /* from wikishort.bgen, line 308
   * Catchall: TABLE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 74: {
  /* from wikishort.bgen, line 309
   * Catchall: TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 75: {
  /* from wikishort.bgen, line 310
   * Catchall: TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 76: {
  /* from wikishort.bgen, line 311
   * Catchall: TR_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 77: {
  /* from wikishort.bgen, line 312
   * Catchall: TABLE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 78: {
  /* from wikishort.bgen, line 313
   * Catchall: HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 79: {
  /* from wikishort.bgen, line 314
   * Catchall: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 80: {
  /* from wikishort.bgen, line 315
   * Catchall: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 81: {
  /* from wikishort.bgen, line 316
   * Catchall: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 82: {
  /* from wikishort.bgen, line 317
   * Catchall: SMALLOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 83: {
  /* from wikishort.bgen, line 318
   * Catchall: SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 84: {
  /* from wikishort.bgen, line 319
   * Catchall: BIGOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 85: {
  /* from wikishort.bgen, line 320
   * Catchall: BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 86: {
  /* from wikishort.bgen, line 321
   * Catchall: SUB
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 87: {
  /* from wikishort.bgen, line 322
   * Catchall: SUP
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 88: {
  /* from wikishort.bgen, line 323
   * Catchall: H_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 89: {
  /* from wikishort.bgen, line 324
   * Catchall: H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 90: {
  /* from wikishort.bgen, line 325
   * Catchall: NOTHING
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 91: {
  /* from wikishort.bgen, line 326
   * Catchall: XMLLT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 92: {
  /* from wikishort.bgen, line 327
   * Catchall: XML_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 93: {
  /* from wikishort.bgen, line 328
   * Catchall: XML_TAGTYPE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 94: {
  /* from wikishort.bgen, line 329
   * Catchall: XML_ATTRS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 95: {
  /* from wikishort.bgen, line 330
   * Catchall: XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 96: {
  /* from wikishort.bgen, line 331
   * Catchall: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 97: {
  /* from wikishort.bgen, line 332
   * Catchall: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 98: {
  /* from wikishort.bgen, line 333
   * Catchall: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 99: {
  /* from wikishort.bgen, line 334
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 100: {
  /* from wikishort.bgen, line 335
   * Catchall: XML_TABLE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 101: {
  /* from wikishort.bgen, line 336
   * Catchall: XML_TABLE_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 102: {
  /* from wikishort.bgen, line 337
   * Catchall: XML_BR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 103: {
  /* from wikishort.bgen, line 338
   * Catchall: XML_DIV
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 104: {
  /* from wikishort.bgen, line 339
   * Catchall: XML_DIV_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 105: {
  /* from wikishort.bgen, line 340
   * Catchall: XML_TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 106: {
  /* from wikishort.bgen, line 341
   * Catchall: XML_TR_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 107: {
  /* from wikishort.bgen, line 342
   * Catchall: XML_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 108: {
  /* from wikishort.bgen, line 343
   * Catchall: XML_TD_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 109: {
  /* from wikishort.bgen, line 344
   * Catchall: XML_LI
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 110: {
  /* from wikishort.bgen, line 345
   * Catchall: XML_LI_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 111: {
  /* from wikishort.bgen, line 346
   * Catchall: XML_UL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 112: {
  /* from wikishort.bgen, line 347
   * Catchall: XML_UL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 113: {
  /* from wikishort.bgen, line 348
   * Catchall: XML_OL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 114: {
  /* from wikishort.bgen, line 349
   * Catchall: XML_OL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 115: {
  /* from wikishort.bgen, line 350
   * Catchall: XML_DL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 116: {
  /* from wikishort.bgen, line 351
   * Catchall: XML_DL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 117: {
  /* from wikishort.bgen, line 352
   * Catchall: XML_DT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 118: {
  /* from wikishort.bgen, line 353
   * Catchall: XML_DT_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 119: {
  /* from wikishort.bgen, line 354
   * Catchall: XML_HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 120: {
  /* from wikishort.bgen, line 355
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
      }
      if (!yyval) {
		Py_DECREF(lexer.text);
		return NULL;
	  }
      *++value_ptr = yyval;

      if (self->verbose) print_state_stack(state_stack, state_ptr);

      /* Now "shift" the result of the reduction. */
      /* Determine what state that goes to, based on the state
         we popped back to and the rule number reduced by. */

      yyn = derives[yyn] - YYNTBASE;
      yystate = goto_idx[yyn] + *state_ptr;
      if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *state_ptr) {
        yystate = yytable[yystate];
      } else {
        yystate = default_goto[yyn];
      }
      continue;
    }

    yyn = yytable[yyn];

    /* yyn is what to do for this token type in this state.
       Negative => reduce, -yyn is rule number.
       Positive => shift, yyn is new state.
         New state is final state => don't bother to shift
         just return success.
       0, or max negative number => error. */

    if (yyn > YYFLAG && yyn < 0) {
      yyn = -yyn;

      /* Do a reduction. yyn is the number of a rule to reduce with. */
      if (self->verbose) print_reduce(yyn);

      yylen = rhs_size[yyn];
      state_ptr -= yylen;
      value_ptr -= yylen;
      if (yylen > 0) yyval = value_ptr[1];

      /* Action routines */
      switch (yyn) {
case 1: {
  /* from wikishort.bgen, line 73
   * Root: Toplevel
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 2: {
  /* from wikishort.bgen, line 77
   * Root: Toplevel Root
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Root(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 8: {
  /* from wikishort.bgen, line 99
   * Inline: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 9: {
  /* from wikishort.bgen, line 100
   * Inline: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 10: {
  /* from wikishort.bgen, line 101
   * Inline: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 11: {
  /* from wikishort.bgen, line 102
   * Inline: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 12: {
  /* from wikishort.bgen, line 103
   * Inline: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 13: {
  /* from wikishort.bgen, line 104
   * Inline: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 14: {
  /* from wikishort.bgen, line 105
   * Inline: Small
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 15: {
  /* from wikishort.bgen, line 106
   * Inline: Big
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 16: {
  /* from wikishort.bgen, line 107
   * Inline: Macro
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 17: {
  /* from wikishort.bgen, line 108
   * Inline: XMLTag
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 19: {
  /* from wikishort.bgen, line 114
   * Inlines_pluslink: Inline_pluslink Inlines_pluslink
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inlines_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 21: {
  /* from wikishort.bgen, line 119
   * Inline_pluslink: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Inline_pluslink(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 24: {
  /* from wikishort.bgen, line 126
   * Flows: Flow Flows
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flows(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 25: {
  /* from wikishort.bgen, line 130
   * Flow: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 26: {
  /* from wikishort.bgen, line 131
   * Flow: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 27: {
  /* from wikishort.bgen, line 132
   * Flow: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Flow(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 30: {
  /* from wikishort.bgen, line 139
   * BlocklevelS: Blocklevel BlocklevelS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--BlocklevelS(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 32: {
  /* from wikishort.bgen, line 144
   * Blocklevel: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 33: {
  /* from wikishort.bgen, line 145
   * Blocklevel: ListItem
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Blocklevel(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 35: {
  /* from wikishort.bgen, line 151
   * Header: H_START Inlines_pluslink H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Header(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 37: {
  /* from wikishort.bgen, line 173
   * Link: LINK_START Inlines_pluslink LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 38: {
  /* from wikishort.bgen, line 179
   * Link: LINK_START Inlines LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Link(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 42: {
  /* from wikishort.bgen, line 192
   * ANYs: ANY ANYs
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ANYs(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 43: {
  /* from wikishort.bgen, line 196
   * Small: SMALLOPEN Inlines SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Small(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 45: {
  /* from wikishort.bgen, line 206
   * Big: BIGOPEN Inlines BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Big(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 47: {
  /* from wikishort.bgen, line 216
   * Macro: MACRO_START ANYs MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Macro(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 49: {
  /* from wikishort.bgen, line 226
   * ListItem: LEADINGWS LIST Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 51: {
  /* from wikishort.bgen, line 234
   * ListItem: DLIST_MOIN Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 52: {
  /* from wikishort.bgen, line 239
   * ListItem: DLIST_MW Inlines_extended
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--ListItem(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  break;
}
case 53: {
  /* from wikishort.bgen, line 247
   * XMLTag: XMLLT XML_TAGTYPE XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 54: {
  /* from wikishort.bgen, line 254
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XML_CLOSE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[5], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  
  break;
}
case 55: {
  /* from wikishort.bgen, line 262
   * XMLTag: XMLLT XML_TAGTYPE XML_ATTRS XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 56: {
  /* from wikishort.bgen, line 269
   * XMLTag: XMLLT XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  break;
}
case 57: {
  /* from wikishort.bgen, line 275
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 58: {
  /* from wikishort.bgen, line 282
   * XMLTag: XMLLT XML_CLOSE XML_TAGTYPE XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--XMLTag(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[2], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[3], stderr, Py_PRINT_RAW);
    fprintf(stderr, ", ");
    PyObject_Print(value_ptr[4], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  
  
  
  break;
}
case 60: {
  /* from wikishort.bgen, line 295
   * Catchall: LEADINGWS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 62: {
  /* from wikishort.bgen, line 297
   * Catchall: TICKS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 63: {
  /* from wikishort.bgen, line 298
   * Catchall: LINK_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 64: {
  /* from wikishort.bgen, line 299
   * Catchall: LINK_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 65: {
  /* from wikishort.bgen, line 300
   * Catchall: URL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 66: {
  /* from wikishort.bgen, line 301
   * Catchall: DLIST_MOIN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 67: {
  /* from wikishort.bgen, line 302
   * Catchall: DLIST_MW
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 68: {
  /* from wikishort.bgen, line 303
   * Catchall: LIST
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 69: {
  /* from wikishort.bgen, line 304
   * Catchall: THREEBRACE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 70: {
  /* from wikishort.bgen, line 305
   * Catchall: THREEBRACE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 71: {
  /* from wikishort.bgen, line 306
   * Catchall: MACRO_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 72: {
  /* from wikishort.bgen, line 307
   * Catchall: MACRO_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 73: {
  /* from wikishort.bgen, line 308
   * Catchall: TABLE_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 74: {
  /* from wikishort.bgen, line 309
   * Catchall: TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 75: {
  /* from wikishort.bgen, line 310
   * Catchall: TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 76: {
  /* from wikishort.bgen, line 311
   * Catchall: TR_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 77: {
  /* from wikishort.bgen, line 312
   * Catchall: TABLE_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 78: {
  /* from wikishort.bgen, line 313
   * Catchall: HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 79: {
  /* from wikishort.bgen, line 314
   * Catchall: FIVETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 80: {
  /* from wikishort.bgen, line 315
   * Catchall: FOURTILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 81: {
  /* from wikishort.bgen, line 316
   * Catchall: THREETILDE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 82: {
  /* from wikishort.bgen, line 317
   * Catchall: SMALLOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 83: {
  /* from wikishort.bgen, line 318
   * Catchall: SMALLCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 84: {
  /* from wikishort.bgen, line 319
   * Catchall: BIGOPEN
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 85: {
  /* from wikishort.bgen, line 320
   * Catchall: BIGCLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 86: {
  /* from wikishort.bgen, line 321
   * Catchall: SUB
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 87: {
  /* from wikishort.bgen, line 322
   * Catchall: SUP
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 88: {
  /* from wikishort.bgen, line 323
   * Catchall: H_START
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 89: {
  /* from wikishort.bgen, line 324
   * Catchall: H_END
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 90: {
  /* from wikishort.bgen, line 325
   * Catchall: NOTHING
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 91: {
  /* from wikishort.bgen, line 326
   * Catchall: XMLLT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 92: {
  /* from wikishort.bgen, line 327
   * Catchall: XML_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 93: {
  /* from wikishort.bgen, line 328
   * Catchall: XML_TAGTYPE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 94: {
  /* from wikishort.bgen, line 329
   * Catchall: XML_ATTRS
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 95: {
  /* from wikishort.bgen, line 330
   * Catchall: XMLGT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 96: {
  /* from wikishort.bgen, line 331
   * Catchall: PROCESSOR_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 97: {
  /* from wikishort.bgen, line 332
   * Catchall: PRE_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 98: {
  /* from wikishort.bgen, line 333
   * Catchall: NOWIKI_CONTENT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 99: {
  /* from wikishort.bgen, line 334
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 100: {
  /* from wikishort.bgen, line 335
   * Catchall: XML_TABLE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 101: {
  /* from wikishort.bgen, line 336
   * Catchall: XML_TABLE_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 102: {
  /* from wikishort.bgen, line 337
   * Catchall: XML_BR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 103: {
  /* from wikishort.bgen, line 338
   * Catchall: XML_DIV
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 104: {
  /* from wikishort.bgen, line 339
   * Catchall: XML_DIV_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 105: {
  /* from wikishort.bgen, line 340
   * Catchall: XML_TR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 106: {
  /* from wikishort.bgen, line 341
   * Catchall: XML_TR_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 107: {
  /* from wikishort.bgen, line 342
   * Catchall: XML_TD
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 108: {
  /* from wikishort.bgen, line 343
   * Catchall: XML_TD_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 109: {
  /* from wikishort.bgen, line 344
   * Catchall: XML_LI
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 110: {
  /* from wikishort.bgen, line 345
   * Catchall: XML_LI_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 111: {
  /* from wikishort.bgen, line 346
   * Catchall: XML_UL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 112: {
  /* from wikishort.bgen, line 347
   * Catchall: XML_UL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 113: {
  /* from wikishort.bgen, line 348
   * Catchall: XML_OL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 114: {
  /* from wikishort.bgen, line 349
   * Catchall: XML_OL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 115: {
  /* from wikishort.bgen, line 350
   * Catchall: XML_DL
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 116: {
  /* from wikishort.bgen, line 351
   * Catchall: XML_DL_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 117: {
  /* from wikishort.bgen, line 352
   * Catchall: XML_DT
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 118: {
  /* from wikishort.bgen, line 353
   * Catchall: XML_DT_CLOSE
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 119: {
  /* from wikishort.bgen, line 354
   * Catchall: XML_HR
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
case 120: {
  /* from wikishort.bgen, line 355
   * Catchall: ANY
   */
  yyval = value_ptr[1];
  if (self->verbose) {
    fprintf(stderr, "--Catchall(");
    PyObject_Print(value_ptr[1], stderr, Py_PRINT_RAW);
    fprintf(stderr, ")\n");
  }
  
  break;
}
      }
      if (!yyval) {
		Py_DECREF(lexer.text);
		return NULL;
	  }
      *++value_ptr = yyval;

      if (self->verbose) print_state_stack(state_stack, state_ptr);

      /* Now "shift" the result of the reduction. */
      /* Determine what state that goes to, based on the state
         we popped back to and the rule number reduced by. */

      yyn = derives[yyn] - YYNTBASE;
      yystate = goto_idx[yyn] + *state_ptr;
      if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *state_ptr) {
        yystate = yytable[yystate];
      } else {
        yystate = default_goto[yyn];
      }
      continue;
    } else if (yyn == YYFINAL) {
      /* Hooray!  Process complete. */
      Py_DECREF(lexer.text);
      return value_ptr[-1];
    } else if (yyn <= 0) {
      /* Now it is either 0 or YYFLAG */
      return report_error(yystate, yylval, &lexer);
    }

    /* Shift the lookahead token. */

    if (self->verbose) {
      PySys_WriteStderr("Shifting token %d (%s), ", yychar, token_names[yychar1]);
    }

    if (yychar != YYEOF) {
      yychar = YYEMPTY;
    }

    *++value_ptr = yylval;

    yystate = yyn;
    continue;
  }

  /* should never get here */
  Py_INCREF(Py_None);
  Py_DECREF(lexer.text);
  return Py_None;
}

static int parser_yylex(parserobject *self, lexerobject *lexer, PyObject **yylval)
{
  int yychar = YYEMPTY;

  while (lexer->last < lexer->end) {
    PyObject *match, *groupdict;
    PyObject *key;
    int pos;
    const int *action;

    lexer->position = lexer->last;
    match = PyObject_CallMethod(patterns[lexer->state], "match", "Oi",
                                lexer->text, lexer->position);
    if (match == Py_None) {
      Py_DECREF(match);
      lexer_error(lexer);
      return -1;
    }

    groupdict = PyObject_CallMethod(match, "groupdict", NULL);
    Py_DECREF(match);
    pos = 0;
    action = NULL;
    while (PyDict_Next(groupdict, &pos, &key, yylval)) {
      /* sre only allows strings as group names */
      if (*yylval != Py_None) {
        lexer->last += PyUnicode_GET_SIZE(*yylval);
        pos = atoi(PyString_AsString(key) + 1);
        action = pattern_actions + (pos * LEXER_ACTION_SIZE);
        Py_INCREF(*yylval);
        break;
      }
    }
    Py_DECREF(groupdict);

    if (action[0]) {
      lexer->state = action[1] ? action[1] : lexer->state;

      if (self->verbose && action[1]) {
        PySys_WriteStderr("switching to start condition %d, ", action[1]);
      }

      if (action[0] == 1) {
        /* Just a state change, reprocess the text */
        lexer->last = lexer->position;
      } else {
        yychar = action[2] ? action[2] : (int)*PyUnicode_AS_UNICODE(*yylval);
        if (self->verbose) {
          char *repr = unicode_escape_slice(*yylval, 0,
                                            PyUnicode_GET_SIZE(*yylval));
          PySys_WriteStderr("accepting '%s' (%d)\n", repr, yychar);
          PyMem_Del(repr);
        }
        break;
      }
    }
    /* simply throw away matched text */
    Py_DECREF(*yylval);
  }

  if (lexer->last >= lexer->end && yychar == YYEMPTY) {
    /* Reached end of input */
    yychar = YYEOF;
  }

  return yychar;
}

static PyMethodDef parser_methods[] = {
     { "parse", (PyCFunction)parser_parse, METH_VARARGS, parser_parse__doc__ },
     { NULL, NULL }
};

static PyObject* parser_getattr(parserobject *self, char *name)
{
  if (strcmp(name, "debug") == 0)
    return PyInt_FromLong(self->verbose);

  if (strcmp(name, "__members__") == 0) {
    PyObject *members = PyList_New(1);
    PyList_SET_ITEM(members, 0, PyString_FromString("debug"));
    return members;
  }
  return Py_FindMethod(parser_methods, (PyObject *)self, name);
}

static int parser_setattr(parserobject *self, char *name, PyObject *value)
{
  /* Set attribute 'name' to value 'v'. v==NULL means delete */
  if (strcmp(name, "debug") == 0) {
    if (value == NULL) {
      PyErr_Format(PyExc_TypeError, "attribute can't be deleted: %s", name);
      return -1;
    } else {
      if (PyObject_IsTrue(value))
        self->verbose = 1;
      else
        self->verbose = 0;
      return 0;
    }
  }
  PyErr_SetString(PyExc_AttributeError, name);
  return -1;
}

static PyTypeObject ParserType = {
  PyObject_HEAD_INIT(0)
  0,                           /*ob_size*/
  "parser",                    /*tp_name*/
  sizeof(parserobject),        /*tp_basicsize*/
  0,                           /*tp_itemsize*/
  (destructor)parser_dealloc,  /*tp_dealloc*/
  0,                           /*tp_print*/
  (getattrfunc)parser_getattr, /*tp_getattr*/
  (setattrfunc)parser_setattr, /*tp_setattr*/
  0,                           /*tp_compare*/
  0,                           /*tp_repr*/
  0,                           /*tp_as_number*/
  0,                           /*tp_as_sequence*/
  0,                           /*tp_as_mapping*/
  0,                           /*tp_hash*/
  0,                           /*tp_call*/
  0,                           /*tp_str*/
  0,                           /*tp_getattro*/
  0,                           /*tp_setattro*/
  0,                           /*tp_as_buffer*/
  0,                           /*tp_flags*/
  parserobject__doc__,         /*tp_doc*/
  0,                           /*tp_traverse*/
  0,                           /*tp_clear*/
};

/* Helper functions */

static char *unicode_escape_slice(PyObject *unicode, int start, int end)
{
  static const char *hexdigit = "0123456789abcdef";
  char *repr, *p;
  Py_UNICODE *s;
  int size;

  /* make ass-slices front-slices (hey, Python/C terminology) */
  if (start < 0 || end < 0) {
    size = PyUnicode_GET_SIZE(unicode);
    if (size < 0)
      return NULL;
    if (start < 0)
      start += size;
    if (end < 0)
      end += size;
  }

  /* make sure we are walking forward */
  if (start > end) {
    int t = start;
    start = end;
    end = t;
  }

  size = end - start;
  repr = PyMem_New(char, 6*size + 1);
  if (repr == NULL) return NULL;

  p = repr;
  s = PyUnicode_AS_UNICODE(unicode) + start;

  while (size-- > 0) {
    Py_UNICODE ch = *s++;
    /* Map 16-bit characters to '\uxxxx' */
    if (ch >= 256) {
      *p++ = '\\';
      *p++ = 'u';
      *p++ = hexdigit[(ch >> 12) & 0xf];
      *p++ = hexdigit[(ch >> 8) & 0xf];
      *p++ = hexdigit[(ch >> 4) & 0xf];
      *p++ = hexdigit[ch & 15];
    }
    /* Map special whitespace to '\t', \n', '\r' */
    else if (ch == '\t') {
      *p++ = '\\';
      *p++ = 't';
    }
    else if (ch == '\n') {
      *p++ = '\\';
      *p++ = 'n';
    }
    else if (ch == '\r') {
      *p++ = '\\';
      *p++ = 'r';
    }
    /* Map non-printable US ASCII to '\xhh' */
    else if (ch < ' ' || ch >= 128) {
      *p++ = '\\';
      *p++ = 'x';
      *p++ = hexdigit[(ch >> 4) & 0xf];
      *p++ = hexdigit[ch & 15];
    }
    /* Copy everything else as-is */
    else
      *p++ = (char) ch;
  }

  *p = '\0';

  return repr;
}

static void calculate_position(lexerobject *lexer, int *line, int *column) {
  /* Update line and column numbers */
  Py_UNICODE *start = PyUnicode_AS_UNICODE(lexer->text);
  Py_UNICODE *end = start + lexer->position;
  Py_UNICODE *p;

  *line = 1;
  *column = 1;

  for (p = start; p < end; p++) {
    if ((char)*p == '\n') {
      *line += 1;
      *column = 1;
    } else {
      *column += 1;
    }
  }
}

static const char error_format_str[] = "parse error at line %d, column %d: matched '%s'";
static const char error_format_eof_str[] = "parse error at line %d, column %d: reached end-of-input";

static PyObject *report_error(int state, PyObject* lval, lexerobject *lexer) {
  int line, column;
  int ruleno = action_idx[state];
  char *matched = NULL;

  if (lval) {
    matched = unicode_escape_slice(lval, 0, PyUnicode_GET_SIZE(lval));
    if (matched == NULL) return NULL;
  }

  calculate_position(lexer, &line, &column);
  Py_DECREF(lexer->text);

  if (ruleno > YYFLAG && ruleno < YYLAST) {
    /* There are expected tokens */
    int x, count;
    int size = 60;  /* Initial format string */
    char *msg;

    /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
    for (x = (ruleno < 0 ? -ruleno : 0);
         x < (sizeof(token_names) / sizeof(char *)); x++) {
      if (yycheck[x + ruleno] == x) {
        size += strlen(token_names[x]) + 15;
      }
    }

    msg = PyMem_New(char, size);
    if (msg == NULL) {
      PyMem_Del(matched);
      return NULL;
    }

    if (lval) {
      strcpy(msg, error_format_str);
    } else {
      strcpy(msg, error_format_eof_str);
    }

    count = 0;
    for (x = (ruleno < 0 ? -ruleno : 0);
         x < (sizeof(token_names) / sizeof(char *)); x++) {
      if (yycheck[x + ruleno] == x) {
        strcat(msg, count == 0 ? ", expecting '" : " or '");
        strcat(msg, token_names[x]);
        strcat(msg, "'");
        count++;
      }
    }
    if (matched) {
      PyErr_Format(PyExc_SyntaxError, msg, line, column, matched);
    } else {
      PyErr_Format(PyExc_SyntaxError, msg, line, column);
    }
    PyMem_Del(msg);
  } else {
    if (matched) {
      PyErr_Format(PyExc_SyntaxError, error_format_str, line, column, matched);
    } else {
      PyErr_Format(PyExc_SyntaxError, error_format_eof_str, line, column);
    }
  }

  if (matched) {
    PyMem_Del(matched);
  }

  return NULL;
}

static const char lexer_error_str[] = "lexical error at line %d, column %d: no action found for '%s'";

static void lexer_error(lexerobject *lexer)
{
  int line, column;
  char *repr = unicode_escape_slice(lexer->text, lexer->position, lexer->end);
  if (repr == NULL) return;

  calculate_position(lexer, &line, &column);

  PyErr_Format(PyExc_SyntaxError, lexer_error_str, line, column, repr);

  PyMem_Del(repr);
  return;
}

static void print_reduce(int ruleno) {
  int count;
  const int *token;

  PySys_WriteStderr("Reducing via rule %d (%s), ", ruleno, rule_info[ruleno]);
  /* print the symbols being reduced and their result. */

  count = ruleno;
  token = rhs_tokens;
  while (--count) while (*++token);

  while (*++token) {
    PySys_WriteStderr("%s ", token_names[*token]);
  }
  PySys_WriteStderr("-> %s\n", token_names[derives[ruleno]]);
}

static void print_state_stack(int *stack, int *end) {
  int *curr = stack;

  PySys_WriteStderr("state stack now");
  while (curr <= end) {
    PySys_WriteStderr(" %d", *curr++);
  }
  PySys_WriteStderr("\n");
}

static char module_new_parser__doc__[] = "\
CreateParser([debug]) -> parser\n\
Create a new parser object.\n\
\n\
The optional debug argument, when true, enables the builtin trace facility.\n\
The trace facility uses stderr to display each step taken by the parser.";

static PyObject *module_new_parser(PyObject *self, PyObject *args)
{
  int debug = 0;

  if (!PyArg_ParseTuple(args, "|i:new", &debug)) return NULL;

  return newparserobject(debug ? 1 : 0);
}

static PyMethodDef module_methods[] = {
  {"new", module_new_parser, METH_VARARGS, module_new_parser__doc__},
  {NULL, NULL}
};
DL_EXPORT(void) initwikic(void) {
  PyObject *m, *dict;
  PyObject *modules;
  PyObject *re, *multiline;

  m = Py_InitModule("wikic", module_methods);
  modules = PyImport_GetModuleDict();
  ParserType.ob_type = &PyType_Type;

  re = PyDict_GetItemString(modules, "re");
  if (!re) {
    re = PyImport_ImportModule("re");
  }
  dict = PyModule_GetDict(re);
  multiline = PyDict_GetItemString(dict, "MULTILINE");
  patterns[1] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p37>\\r?\\n|\\A)|(?P<p38>[^}{\\[\\]\\n\\r=~:'*#^,_\\-+|<hfi]+)|(?P<p39>(http|https|ftp|nntp|news|mailto|telnet|wiki|file)://[^/\\s]+\\.[^/\\s':,]+/?[^\\s]*(?=([,\\.:'\"\\)\\(]+\\s)|\\s))|(?P<p40>={1,6}$)|(?P<p41>''+)|(?P<p42>\\[{1,4})|(?P<p43>\\]{1,4}\\w*)|(?P<p44>:: )|(?P<p45>(?<= ): )|(?P<p46>{{{(?!{))|(?P<p47>\\|\\|)|(?P<p48>{{)|(?P<p49>}})|(?P<p50>(?=<))|(?P<p51>(?=~))|(?P<p52>-~)|(?P<p53>\\+~)|(?P<p54>,,[^,\\n\\r]{1,60},,)|(?P<p55>\\^[^^\\n\\r]{1,60}\\^)|(?P<p56>.)", multiline);
  patterns[2] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p0>(?=<[^<>]{0,90}>))|(?P<p1>.)", multiline);
  patterns[3] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p2></pre>)|(?P<p3>[^<]+)|(?P<p4>.)", multiline);
  patterns[4] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p5>/)|(?P<p6>[A-Za-z:]+)|(?P<p7>\\s*[^/>])|(?P<p8>>)", multiline);
  patterns[5] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p9>(http|https|ftp|nntp|news|mailto|telnet|wiki|file)://[^/\\s]+\\.[^/\\s':,]+/?[^\\s]*(?=([,\\.:'\"\\)\\(]+\\s)|\\s))|(?P<p10>.)", multiline);
  patterns[6] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p11>(([0-9]+|[aAiI])\\.(?:#\\d+)?|\\*)\\s)|(?P<p12>)", multiline);
  patterns[7] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p13><pre\\s*>)|(?P<p14><nowiki\\s*>)|(?P<p15><)|(?P<p16>(?iu)table)|(?P<p17>(?iu)/table)|(?P<p18>(?iu)br)|(?P<p19>(?iu)div)|(?P<p20>(?iu)/div)|(?P<p21>(?iu)tr)|(?P<p22>(?iu)/tr)|(?P<p23>(?iu)td)|(?P<p24>(?iu)/td)|(?P<p25>(?iu)li)|(?P<p26>(?iu)/li)|(?P<p27>(?iu)ul)|(?P<p28>(?iu)/ul)|(?P<p29>(?iu)ol)|(?P<p30>(?iu)/ol)|(?P<p31>(?iu)dl)|(?P<p32>(?iu)/dl)|(?P<p33>(?iu)dt)|(?P<p34>(?iu)/dt)|(?P<p35>(?iu)hr)|(?P<p36>)", multiline);
  patterns[8] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p57>~~~~~)|(?P<p58>~~~~)|(?P<p59>~~~)|(?P<p60>~-)|(?P<p61>~\\+)|(?P<p62>.)", multiline);
  patterns[9] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p63>\\|\\|)|(?P<p64>\\|-+)|(?P<p65>\\|})|(?P<p66>\\|)|(?P<p67>.)", multiline);
  patterns[10] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p68>}}})|(?P<p69>[^}]+)|(?P<p70>.)", multiline);
  patterns[11] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p71></nowiki>)|(?P<p72>[^<]+)|(?P<p73>.)", multiline);
  patterns[12] = PyObject_CallMethod(re, "compile", "sO",
                                     "(?P<p74>(?=\\|))|(?P<p75>[*#:;]+)|(?P<p76> +)|(?P<p77>={1,6})|(?P<p78>{\\|)|(?P<p79>-{4,})|(?P<p80>)", multiline);

}

