diff --git a/ext/markdown_output.c b/ext/markdown_output.c new file mode 100644 index 0000000..077a92e --- /dev/null +++ b/ext/markdown_output.c @@ -0,0 +1,763 @@ +/********************************************************************** + + markdown_output.c - functions for printing Elements parsed by + markdown_peg. + (c) 2008 John MacFarlane (jgm at berkeley dot edu). + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + ***********************************************************************/ + +#include +#include +#include +#include +#include +#include "markdown_peg.h" + +/* TODO remove */ +static extensions = 0; + +static void print_html_string(char *str, bool obfuscate); +static void print_html_element_list(element *list, bool obfuscate); +static void print_html_element(element elt, bool obfuscate); +static void print_latex_string(char *str); +static void print_latex_element_list(element *list); +static void print_latex_element(element elt); +static void print_groff_string(char *str); +static void print_groff_mm_element_list(element *list); +static void print_groff_mm_element(element elt, int count); + +/********************************************************************** + + Utility functions for printing + + ***********************************************************************/ + +static int padded = 2; /* Number of newlines after last output. + Starts at 2 so no newlines are needed at start. + */ + +static element *endnotes; /* List of endnotes to print after main content. */ +static int notenumber = 0; /* Number of footnote. */ + +/* pad - add newlines if needed */ +static void pad(int num) { + while (num-- > padded) + printf("\n");; + padded = num; +} + +/********************************************************************** + + Functions for printing Elements as HTML + + ***********************************************************************/ + +/* print_html_string - print string, escaping for HTML + * If obfuscate selected, convert characters to hex or decimal entities at random */ +static void print_html_string(char *str, bool obfuscate) { + while (*str != '\0') { + switch (*str) { + case '&': + printf("&");;; + break; + case '<': + printf("<");;; + break; + case '>': + printf(">");;; + break; + case '"': + printf(""");;; + break; + default: + if (obfuscate) { + if (rand() % 2 == 0) + printf("&#%d;", (int) *str); + else + printf("&#x%x;", (unsigned int) *str); + } + else + putchar(*str); + } + str++; + } +} + +/* print_html_element_list - print a list of elements as HTML */ +static void print_html_element_list(element *list, bool obfuscate) { + while (list != NULL) { + print_html_element(*list, obfuscate); + list = list->next; + } +} + +/* print_html_element - print an element as HTML */ +static void print_html_element(element elt, bool obfuscate) { + int lev; + char *contents; + switch (elt.key) { + case SPACE: + printf("%s", elt.contents.str); + break; + case LINEBREAK: + printf("
");;; + break; + case STR: + print_html_string(elt.contents.str, obfuscate); + break; + case ELLIPSIS: + printf("…");;; + break; + case EMDASH: + printf("—");;; + break; + case ENDASH: + printf("–");;; + break; + case APOSTROPHE: + printf("’");;; + break; + case SINGLEQUOTED: + printf("‘");;; + print_html_element_list(elt.children, obfuscate); + printf("’");;; + break; + case DOUBLEQUOTED: + printf("“");;; + print_html_element_list(elt.children, obfuscate); + printf("”");;; + break; + case CODE: + printf("");;; + print_html_string(elt.contents.str, obfuscate); + printf("");;; + break; + case HTML: + printf("%s", elt.contents.str); + break; + case LINK: + if (strstr(elt.contents.link.url, "mailto:") == elt.contents.link.url) + obfuscate = true; /* obfuscate mailto: links */ + printf(" 0) { + printf(" title=\""); + print_html_string(elt.contents.link.title, obfuscate); + printf("\""); + } + printf(">");;; + print_html_element_list(elt.contents.link.label, obfuscate); + printf("");;; + break; + case IMAGE: + printf("\""); 0) { + printf(" title=\""); + print_html_string(elt.contents.link.title, obfuscate); + printf("\""); + } + printf(" />");;; + break; + case EMPH: + printf("");;; + print_html_element_list(elt.children, obfuscate); + printf("");;; + break; + case STRONG: + printf("");;; + print_html_element_list(elt.children, obfuscate); + printf("");;; + break; + case LIST: + print_html_element_list(elt.children, obfuscate); + break; + case RAW: + /* \001 is used to indicate boundaries between nested lists when there + * is no blank line. We split the string by \001 and parse + * each chunk separately. */ + contents = strtok(elt.contents.str, "\001"); + print_html_element(markdown(contents, extensions), obfuscate); + while ((contents = strtok(NULL, "\001"))) + print_html_element(markdown(contents, extensions), obfuscate); + break; + case H1: case H2: case H3: case H4: case H5: case H6: + lev = elt.key - H1 + 1; /* assumes H1 ... H6 are in order */ + pad(2); + printf("", lev); + print_html_element_list(elt.children, obfuscate); + printf("", lev); + padded = 0; + break; + case PLAIN: + pad(1); + print_html_element_list(elt.children, obfuscate); + padded = 0; + break; + case PARA: + pad(2); + printf("

");;; + print_html_element_list(elt.children, obfuscate); + printf("

");;; + padded = 0; + break; + case HRULE: + pad(2); + printf("
");;; + padded = 0; + break; + case HTMLBLOCK: + pad(2); + printf("%s", elt.contents.str); + padded = 0; + break; + case VERBATIM: + pad(2); + printf("%s", "
");
+        print_html_string(elt.contents.str, obfuscate);
+        printf("%s", "
"); + padded = 0; + break; + case BULLETLIST: + pad(2); + printf("%s", "
    "); + padded = 0; + print_html_element_list(elt.children, obfuscate); + pad(1); + printf("%s", "
"); + padded = 0; + break; + case ORDEREDLIST: + pad(2); + printf("%s", "
    "); + padded = 0; + print_html_element_list(elt.children, obfuscate); + pad(1); + printf("
");;; + padded = 0; + break; + case LISTITEM: + pad(1); + printf("
  • ");;; + padded = 2; + print_html_element_list(elt.children, obfuscate); + printf("
  • ");;; + padded = 0; + break; + case BLOCKQUOTE: + pad(2); + printf("
    \n");;; + padded = 2; + print_html_element_list(elt.children, obfuscate); + pad(1); + printf("
    ");;; + padded = 0; + break; + case REFERENCE: + /* Nonprinting */ + break; + case NOTE: + /* if contents.str == 0, then print note; else ignore, since this + * is a note block that has been incorporated into the notes list */ + if (elt.contents.str == 0) { + endnotes = cons(elt, endnotes); + ++notenumber; + printf("[%d]", + notenumber, notenumber, notenumber, notenumber); + } + break; + default: + fprintf(stderr, "print_html_element encountered unknown element key = %d\n", elt.key); + exit(EXIT_FAILURE); + } +} + +static void print_html_endnotes(void) { + int counter = 0; + if (endnotes == NULL) { + return; + } + printf("
    \n
      "); + endnotes = reverse(endnotes); + while (endnotes != NULL) { + counter++; + pad(1); + printf("
    1. \n", counter); + padded = 2; + print_html_element_list(endnotes->children, false); + printf(" [back]", counter); + pad(1); + printf("
    2. ");; + endnotes = endnotes->next; + } + pad(1); + printf("
    ");;; +} + +/********************************************************************** + + Functions for printing Elements as LaTeX + + ***********************************************************************/ + +/* print_latex_string - print string, escaping for LaTeX */ +static void print_latex_string(char *str) { + while (*str != '\0') { + switch (*str) { + case '{': case '}': case '$': case '%': + case '&': case '_': case '#': + printf("\\%c", *str); + break; + case '^': + printf("\\^{}");;; + break; + case '\\': + printf("\\textbackslash{}");;; + break; + case '~': + printf("\\ensuremath{\\sim}");;; + break; + case '|': + printf("\\textbar{}");;; + break; + case '<': + printf("\\textless{}");;; + break; + case '>': + printf("\\textgreater{}");;; + break; + default: + putchar(*str); + } + str++; + } +} + +/* print_latex_element_list - print a list of elements as LaTeX */ +static void print_latex_element_list(element *list) { + while (list != NULL) { + print_latex_element(*list); + list = list->next; + } +} + +/* print_latex_element - print an element as LaTeX */ +static void print_latex_element(element elt) { + int lev; + int i; + char *contents; + switch (elt.key) { + case SPACE: + printf("%s", elt.contents.str); + break; + case LINEBREAK: + printf("\\\\\n");;; + break; + case STR: + print_latex_string(elt.contents.str); + break; + case ELLIPSIS: + printf("\\ldots{}");;; + break; + case EMDASH: + printf("---");;; + break; + case ENDASH: + printf("--");;; + break; + case APOSTROPHE: + printf("'");;; + break; + case SINGLEQUOTED: + printf("`");;; + print_latex_element_list(elt.children); + printf("'");;; + break; + case DOUBLEQUOTED: + printf("``");;; + print_latex_element_list(elt.children); + printf("''");;; + break; + case CODE: + printf("\\texttt{");;; + print_latex_string(elt.contents.str); + printf("}");;; + break; + case HTML: + /* don't print HTML */ + break; + case LINK: + printf("\\href{%s}{", elt.contents.link.url); + print_latex_element_list(elt.contents.link.label); + printf("}");;; + break; + case IMAGE: + printf("\\includegraphics{%s}", elt.contents.link.url); + break; + case EMPH: + printf("\\emph{");;; + print_latex_element_list(elt.children); + printf("}");;; + break; + case STRONG: + printf("\\textbf{");;; + print_latex_element_list(elt.children); + printf("}");;; + break; + case LIST: + print_latex_element_list(elt.children); + break; + case RAW: + /* \001 is used to indicate boundaries between nested lists when there + * is no blank line. We split the string by \001 and parse + * each chunk separately. */ + contents = strtok(elt.contents.str, "\001"); + print_latex_element(markdown(contents, extensions)); + while ((contents = strtok(NULL, "\001"))) + print_latex_element(markdown(contents, extensions)); + break; + case H1: case H2: case H3: + pad(2); + lev = elt.key - H1 + 1; /* assumes H1 ... H6 are in order */ + printf("\\");;; + for (i = elt.key; i > H1; i--) + printf("sub");;; + printf("section{");;; + print_latex_element_list(elt.children); + printf("}");;; + padded = 0; + break; + case H4: case H5: case H6: + pad(2); + printf("\\noindent\\textbf{");;; + print_latex_element_list(elt.children); + printf("}");;; + padded = 0; + break; + case PLAIN: + pad(1); + print_latex_element_list(elt.children); + padded = 0; + break; + case PARA: + pad(2); + print_latex_element_list(elt.children); + padded = 0; + break; + case HRULE: + pad(2); + printf("\\begin{center}\\rule{3in}{0.4pt}\\end{center}\n");;; + padded = 0; + break; + case HTMLBLOCK: + /* don't print HTML block */ + break; + case VERBATIM: + pad(1); + printf("\\begin{verbatim}\n");;; + print_latex_string(elt.contents.str); + printf("\n\\end{verbatim}");;; + padded = 0; + break; + case BULLETLIST: + pad(1); + printf("\\begin{itemize}");;; + padded = 0; + print_latex_element_list(elt.children); + pad(1); + printf("\\end{itemize}");;; + padded = 0; + break; + case ORDEREDLIST: + pad(1); + printf("\\begin{enumerate}");;; + padded = 0; + print_latex_element_list(elt.children); + pad(1); + printf("\\end{enumerate}");;; + padded = 0; + break; + case LISTITEM: + pad(1); + printf("\\item ");;; + padded = 2; + print_latex_element_list(elt.children); + printf("\n");;; + break; + case BLOCKQUOTE: + pad(1); + printf("\\begin{quote}");;; + padded = 0; + print_latex_element(markdown(elt.contents.str, extensions)); + printf("\\end{quote}");;; + padded = 0; + break; + case NOTE: + /* if contents.str == 0, then print note; else ignore, since this + * is a note block that has been incorporated into the notes list */ + if (elt.contents.str == 0) { + printf("\\footnote{");;; + padded = 2; + print_latex_element_list(elt.children); + printf("}");;; + padded = 0; + } + break; + case REFERENCE: + /* Nonprinting */ + break; + default: + fprintf(stderr, "print_latex_element encountered unknown element key = %d\n", elt.key); + exit(EXIT_FAILURE); + } +} + +/********************************************************************** + + Functions for printing Elements as groff (mm macros) + + ***********************************************************************/ + +static bool in_list_item = false; /* True if we're parsing contents of a list item. */ + +/* print_groff_string - print string, escaping for groff */ +static void print_groff_string(char *str) { + while (*str != '\0') { + switch (*str) { + case '\\': + printf("\\e");;; + break; + default: + putchar(*str); + } + str++; + } +} + +/* print_groff_mm_element_list - print a list of elements as groff ms */ +static void print_groff_mm_element_list(element *list) { + int count = 1; + while (list != NULL) { + print_groff_mm_element(*list, count); + list = list->next; + count++; + } +} + +/* print_groff_mm_element - print an element as groff ms */ +static void print_groff_mm_element(element elt, int count) { + int lev; + char *contents; + switch (elt.key) { + case SPACE: + printf("%s", elt.contents.str); + padded = 0; + break; + case LINEBREAK: + pad(1); + printf(".br");;; + padded = 0; + break; + case STR: + print_groff_string(elt.contents.str); + padded = 0; + break; + case ELLIPSIS: + printf("...");;; + break; + case EMDASH: + printf("\\[em]");;; + break; + case ENDASH: + printf("\\[en]");;; + break; + case APOSTROPHE: + printf("'");;; + break; + case SINGLEQUOTED: + printf("`");;; + print_groff_mm_element_list(elt.children); + printf("'");;; + break; + case DOUBLEQUOTED: + printf("\\[lq]");;; + print_groff_mm_element_list(elt.children); + printf("\\[rq]");;; + break; + case CODE: + printf("\\fC");;; + print_groff_string(elt.contents.str); + printf("\\fR");;; + padded = 0; + break; + case HTML: + /* don't print HTML */ + break; + case LINK: + print_groff_mm_element_list(elt.contents.link.label); + printf(" (%s)", elt.contents.link.url); + padded = 0; + break; + case IMAGE: + printf("[IMAGE: ");;; + print_groff_mm_element_list(elt.contents.link.label); + printf("]");;; + padded = 0; + /* not supported */ + break; + case EMPH: + printf("\\fI");;; + print_groff_mm_element_list(elt.children); + printf("\\fR");;; + padded = 0; + break; + case STRONG: + printf("\\fB");;; + print_groff_mm_element_list(elt.children); + printf("\\fR");;; + padded = 0; + break; + case LIST: + print_groff_mm_element_list(elt.children); + padded = 0; + break; + case RAW: + /* \001 is used to indicate boundaries between nested lists when there + * is no blank line. We split the string by \001 and parse + * each chunk separately. */ + contents = strtok(elt.contents.str, "\001"); + print_groff_mm_element(markdown(contents, extensions), count); + while ((contents = strtok(NULL, "\001"))) + print_groff_mm_element(markdown(contents, extensions), count); + break; + case H1: case H2: case H3: case H4: case H5: case H6: + lev = elt.key - H1 + 1; + pad(1); + printf(".H %d \"", lev); + print_groff_mm_element_list(elt.children); + printf("\""); + padded = 0; + break; + case PLAIN: + pad(1); + print_groff_mm_element_list(elt.children); + padded = 0; + break; + case PARA: + pad(1); + if (!in_list_item || count != 1) + printf(".P\n");;; + print_groff_mm_element_list(elt.children); + padded = 0; + break; + case HRULE: + pad(1); + printf("\\l'\\n(.lu*8u/10u'");;; + padded = 0; + break; + case HTMLBLOCK: + /* don't print HTML block */ + break; + case VERBATIM: + pad(1); + printf(".VERBON 2\n");;; + print_groff_string(elt.contents.str); + printf(".VERBOFF");;; + padded = 0; + break; + case BULLETLIST: + pad(1); + printf(".BL");;; + padded = 0; + print_groff_mm_element_list(elt.children); + pad(1); + printf(".LE 1");;; + padded = 0; + break; + case ORDEREDLIST: + pad(1); + printf(".AL");;; + padded = 0; + print_groff_mm_element_list(elt.children); + pad(1); + printf(".LE 1");;; + padded = 0; + break; + case LISTITEM: + pad(1); + printf(".LI\n");;; + in_list_item = true; + padded = 2; + print_groff_mm_element_list(elt.children); + in_list_item = false; + break; + case BLOCKQUOTE: + pad(1); + printf(".DS I\n");;; + padded = 2; + print_groff_mm_element(markdown(elt.contents.str, extensions), 1); + pad(1); + printf(".DE");;; + padded = 0; + break; + case NOTE: + /* if contents.str == 0, then print note; else ignore, since this + * is a note block that has been incorporated into the notes list */ + if (elt.contents.str == 0) { + printf("\\*F\n");;; + printf(".FS\n");;; + padded = 2; + print_groff_mm_element_list(elt.children); + pad(1); + printf(".FE\n");;; + padded = 1; + } + break; + case REFERENCE: + /* Nonprinting */ + break; + default: + fprintf(stderr, "print_groff_mm_element encountered unknown element key = %d\n", elt.key); + exit(EXIT_FAILURE); + } +} + +/********************************************************************** + + Parameterized function for printing an Element. + + ***********************************************************************/ + +void print_element(element elt, int format) { + switch (format) { + case HTML_FORMAT: + print_html_element(elt, false); + if (endnotes != NULL) { + pad(2); + print_html_endnotes(); + } + break; + case LATEX_FORMAT: + print_latex_element(elt); + break; + case GROFF_MM_FORMAT: + print_groff_mm_element(elt, 1); + break; + default: + fprintf(stderr, "print_element - unknown format = %d\n", format); + exit(EXIT_FAILURE); + } +} diff --git a/ext/markdown_parser.c b/ext/markdown_parser.c new file mode 100644 index 0000000..e290f3e --- /dev/null +++ b/ext/markdown_parser.c @@ -0,0 +1,5608 @@ +/* A recursive-descent parser generated by peg 0.1.2 */ + +#include +#include +#include +#define YYRULECOUNT 206 + +/********************************************************************** + + markdown_parser.leg - markdown parser in C using a PEG grammar. + (c) 2008 John MacFarlane (jgm at berkeley dot edu). + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + ***********************************************************************/ + +#include +#include +#include "markdown_peg.h" + +extern int strcasecmp(const char *string1, const char *string2); +int yyparse(void); + +/********************************************************************** + + List manipulation functions + + ***********************************************************************/ + +/* cons - cons an element onto a list, returning pointer to new head */ +element *cons(element new, element *list) { + element *head = malloc(sizeof(element)); + assert(head != NULL); + *head = new; + head->next = list; + return head; +} + +/* pushelt - push an element onto the (list) contents of an element */ +static void pushelt(element new, element *lst) { + assert(lst->key == LIST); + lst->children = cons(new, lst->children); +} + +/* reverse - reverse a list, returning pointer to new list */ +element *reverse(element *list) { + element *new = NULL; + while (list != NULL) { + new = cons(*list, new); + list = list->next; + } + return new; +} + +/* length_of_strings - returns sum of length of strings in a list of STR elements */ +static int length_of_strings(element *list) { + int len = 0; + while (list != NULL) { + assert(list->key == STR); + assert(list->contents.str != NULL); + len += strlen(list->contents.str); + list = list->next; + } + return len; +} + +/* concat_string_list - concatenates string contents of list of STR elements */ +static char *concat_string_list(element *list) { + char *result = malloc(length_of_strings(list) + 2); /* leave room for optional \n and \0 */ + *result = '\0'; + while (list != NULL) { + assert(list->key == STR); + assert(list->contents.str != NULL); + result = strcat(result, list->contents.str); + list = list->next; + } + return result; +} + +/********************************************************************** + + Global variables used in parsing + + ***********************************************************************/ + +static char *charbuf = ""; /* Buffer of characters to be parsed. */ +static element *references; /* List of link references found. */ +static element *notes; /* List of footnotes found. */ +static int output_format; +static element parse_result; /* Results of parse. */ +static int syntax_extensions; /* Syntax extensions selected. */ + +/********************************************************************** + + Auxiliary functions for parsing actions. + These make it easier to build up data structures (including lists) + in the parsing actions. + + ***********************************************************************/ + +/* mk_element - generic constructor for element */ +static element mk_element(int key) { + element result; + result.key = key; + result.children = NULL; + result.next = NULL; + return result; +} + +/* mk_str - constructor for STR element */ +static element mk_str(char *string) { + element result; + assert(string != NULL); + result = mk_element(STR); + result.contents.str = strdup(string); + return result; +} + +/* mk_list - constructs an element with key 'key' and children from 'lst' (reversed). + * This is designed to be used with pushelt to build lists in a parser action. + * The reversing is necessary because pushelt adds to the head of a list. */ +static element mk_list(int key, element lst) { + element result; + result = mk_element(key); + result.children = reverse(lst.children); + return result; +} + +/* mk_link - constructor for LINK element */ +static element mk_link(element *label, char *url, char *title) { + element result; + result = mk_element(LINK); + result.contents.link.label = label; + result.contents.link.url = strdup(url); + result.contents.link.title = strdup(title); + return result; +} + +/* extension = returns true if extension is selected */ +static bool extension(int ext) { + return (syntax_extensions & ext); +} + +/* match_inlines - returns true if inline lists match (case-insensitive...) */ +static bool match_inlines(element *l1, element *l2) { + while (l1 != NULL && l2 != NULL) { + if (l1->key != l2->key) + return false; + switch (l1->key) { + case SPACE: + case LINEBREAK: + break; + case CODE: + case STR: + case HTML: + if (strcasecmp(l1->contents.str, l2->contents.str) == 0) + break; + else + return false; + case EMPH: + case STRONG: + case LIST: + if (match_inlines(l1->children, l2->children)) + break; + else + return false; + case LINK: + case IMAGE: + return false; /* No links or images within links */ + default: + fprintf(stderr, "match_inlines encountered unknown key = %d\n", l1->key); + exit(EXIT_FAILURE); + break; + } + l1 = l1->next; + l2 = l2->next; + } + return (l1 == NULL && l2 == NULL); /* return true if both lists exhausted */ +} + +/* find_reference - return true if link found in references matching label. + * 'link' is modified with the matching url and title. */ +static bool find_reference(link *result, element *label) { + element *cur = references; /* pointer to walk up list of references */ + link curitem; + while (cur != NULL) { + curitem = cur->contents.link; + if (match_inlines(label, curitem.label)) { + *result = curitem; + return true; + } + else + cur = cur->next; + } + return false; +} + +/* find_note - return true if note found in notes matching label. +if found, 'result' is set to point to matched note. */ + +static bool find_note(element **result, char *label) { + element *cur = notes; /* pointer to walk up list of notes */ + while (cur != NULL) { + if (strcmp(label, cur->contents.str) == 0) { + *result = cur; + return true; + } + else + cur = cur->next; + } + return false; +} + +/********************************************************************** + + Definitions for leg parser generator. + YY_INPUT is the function the parser calls to get new input. + We take all new input from (static) charbuf. + + ***********************************************************************/ + +# define YYSTYPE element + +#define YY_INPUT(buf, result, max_size) \ +{ \ + int yyc; \ + if (charbuf && *charbuf != '\0') { \ + yyc= *charbuf++; \ + } else { \ + yyc= EOF; \ + } \ + result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \ +} + +/********************************************************************** + + PEG grammar and parser actions for markdown syntax. + + ***********************************************************************/ + + +#ifndef YY_VARIABLE +#define YY_VARIABLE(T) static T +#endif +#ifndef YY_LOCAL +#define YY_LOCAL(T) static T +#endif +#ifndef YY_ACTION +#define YY_ACTION(T) static T +#endif +#ifndef YY_RULE +#define YY_RULE(T) static T +#endif +#ifndef YY_PARSE +#define YY_PARSE(T) T +#endif +#ifndef YYPARSE +#define YYPARSE yyparse +#endif +#ifndef YYPARSEFROM +#define YYPARSEFROM yyparsefrom +#endif +#ifndef YY_INPUT +#define YY_INPUT(buf, result, max_size) \ + { \ + int yyc= getchar(); \ + result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \ + yyprintf((stderr, "<%c>", yyc)); \ + } +#endif +#ifndef YY_BEGIN +#define YY_BEGIN ( yybegin= yypos, 1) +#endif +#ifndef YY_END +#define YY_END ( yyend= yypos, 1) +#endif +#ifdef YY_DEBUG +# define yyprintf(args) fprintf args +#else +# define yyprintf(args) +#endif +#ifndef YYSTYPE +#define YYSTYPE int +#endif + +#ifndef YY_PART + +typedef void (*yyaction)(char *yytext, int yyleng); +typedef struct _yythunk { int begin, end; yyaction action; struct _yythunk *next; } yythunk; + +YY_VARIABLE(char * ) yybuf= 0; +YY_VARIABLE(int ) yybuflen= 0; +YY_VARIABLE(int ) yypos= 0; +YY_VARIABLE(int ) yylimit= 0; +YY_VARIABLE(char * ) yytext= 0; +YY_VARIABLE(int ) yytextlen= 0; +YY_VARIABLE(int ) yybegin= 0; +YY_VARIABLE(int ) yyend= 0; +YY_VARIABLE(int ) yytextmax= 0; +YY_VARIABLE(yythunk *) yythunks= 0; +YY_VARIABLE(int ) yythunkslen= 0; +YY_VARIABLE(int ) yythunkpos= 0; +YY_VARIABLE(YYSTYPE ) yy; +YY_VARIABLE(YYSTYPE *) yyval= 0; +YY_VARIABLE(YYSTYPE *) yyvals= 0; +YY_VARIABLE(int ) yyvalslen= 0; + +YY_LOCAL(int) yyrefill(void) +{ + int yyn; + while (yybuflen - yypos < 512) + { + yybuflen *= 2; + yybuf= realloc(yybuf, yybuflen); + } + YY_INPUT((yybuf + yypos), yyn, (yybuflen - yypos)); + if (!yyn) return 0; + yylimit += yyn; + return 1; +} + +YY_LOCAL(int) yymatchDot(void) +{ + if (yypos >= yylimit && !yyrefill()) return 0; + ++yypos; + return 1; +} + +YY_LOCAL(int) yymatchChar(int c) +{ + if (yypos >= yylimit && !yyrefill()) return 0; + if (yybuf[yypos] == c) + { + ++yypos; + yyprintf((stderr, " ok yymatchChar(%c) @ %s\n", c, yybuf+yypos)); + return 1; + } + yyprintf((stderr, " fail yymatchChar(%c) @ %s\n", c, yybuf+yypos)); + return 0; +} + +YY_LOCAL(int) yymatchString(char *s) +{ + int yysav= yypos; + while (*s) + { + if (yypos >= yylimit && !yyrefill()) return 0; + if (yybuf[yypos] != *s) + { + yypos= yysav; + return 0; + } + ++s; + ++yypos; + } + return 1; +} + +YY_LOCAL(int) yymatchClass(unsigned char *bits) +{ + int c; + if (yypos >= yylimit && !yyrefill()) return 0; + c= yybuf[yypos]; + if (bits[c >> 3] & (1 << (c & 7))) + { + ++yypos; + yyprintf((stderr, " ok yymatchClass @ %s\n", yybuf+yypos)); + return 1; + } + yyprintf((stderr, " fail yymatchClass @ %s\n", yybuf+yypos)); + return 0; +} + +YY_LOCAL(void) yyDo(yyaction action, int begin, int end) +{ + while (yythunkpos >= yythunkslen) + { + yythunkslen *= 2; + yythunks= realloc(yythunks, sizeof(yythunk) * yythunkslen); + } + yythunks[yythunkpos].begin= begin; + yythunks[yythunkpos].end= end; + yythunks[yythunkpos].action= action; + ++yythunkpos; +} + +YY_LOCAL(int) yyText(int begin, int end) +{ + int yyleng= end - begin; + if (yyleng <= 0) + yyleng= 0; + else + { + while (yytextlen < (yyleng - 1)) + { + yytextlen *= 2; + yytext= realloc(yytext, yytextlen); + } + memcpy(yytext, yybuf + begin, yyleng); + } + yytext[yyleng]= '\0'; + return yyleng; +} + +YY_LOCAL(void) yyDone(void) +{ + int pos; + for (pos= 0; pos < yythunkpos; ++pos) + { + yythunk *thunk= &yythunks[pos]; + int yyleng= thunk->end ? yyText(thunk->begin, thunk->end) : thunk->begin; + yyprintf((stderr, "DO [%d] %p %s\n", pos, thunk->action, yytext)); + thunk->action(yytext, yyleng); + } + yythunkpos= 0; +} + +YY_LOCAL(void) yyCommit() +{ + if ((yylimit -= yypos)) + { + memmove(yybuf, yybuf + yypos, yylimit); + } + yybegin -= yypos; + yyend -= yypos; + yypos= yythunkpos= 0; +} + +YY_LOCAL(int) yyAccept(int tp0) +{ + if (tp0) + { + fprintf(stderr, "accept denied at %d\n", tp0); + return 0; + } + else + { + yyDone(); + yyCommit(); + } + return 1; +} + +YY_LOCAL(void) yyPush(char *text, int count) { yyval += count; } +YY_LOCAL(void) yyPop(char *text, int count) { yyval -= count; } +YY_LOCAL(void) yySet(char *text, int count) { yyval[count]= yy; } + +#endif /* YY_PART */ + +#define YYACCEPT yyAccept(yythunkpos0) + +YY_RULE(int) yy_Notes(); /* 206 */ +YY_RULE(int) yy_RawNoteBlock(); /* 205 */ +YY_RULE(int) yy_RawNoteReference(); /* 204 */ +YY_RULE(int) yy_DoubleQuoteEnd(); /* 203 */ +YY_RULE(int) yy_DoubleQuoteStart(); /* 202 */ +YY_RULE(int) yy_SingleQuoteEnd(); /* 201 */ +YY_RULE(int) yy_SingleQuoteStart(); /* 200 */ +YY_RULE(int) yy_EnDash(); /* 199 */ +YY_RULE(int) yy_EmDash(); /* 198 */ +YY_RULE(int) yy_Apostrophe(); /* 197 */ +YY_RULE(int) yy_DoubleQuoted(); /* 196 */ +YY_RULE(int) yy_SingleQuoted(); /* 195 */ +YY_RULE(int) yy_Dash(); /* 194 */ +YY_RULE(int) yy_Ellipsis(); /* 193 */ +YY_RULE(int) yy_Digit(); /* 192 */ +YY_RULE(int) yy_ExtendedSpecialChar(); /* 191 */ +YY_RULE(int) yy_Quoted(); /* 190 */ +YY_RULE(int) yy_HtmlTag(); /* 189 */ +YY_RULE(int) yy_Ticks5(); /* 188 */ +YY_RULE(int) yy_Ticks4(); /* 187 */ +YY_RULE(int) yy_Ticks3(); /* 186 */ +YY_RULE(int) yy_Ticks2(); /* 185 */ +YY_RULE(int) yy_Ticks1(); /* 184 */ +YY_RULE(int) yy_SkipBlock(); /* 183 */ +YY_RULE(int) yy_References(); /* 182 */ +YY_RULE(int) yy_EmptyTitle(); /* 181 */ +YY_RULE(int) yy_RefTitleParens(); /* 180 */ +YY_RULE(int) yy_RefTitleDouble(); /* 179 */ +YY_RULE(int) yy_RefTitleSingle(); /* 178 */ +YY_RULE(int) yy_RefTitle(); /* 177 */ +YY_RULE(int) yy_RefSrc(); /* 176 */ +YY_RULE(int) yy_AutoLinkEmail(); /* 175 */ +YY_RULE(int) yy_AutoLinkUrl(); /* 174 */ +YY_RULE(int) yy_TitleDouble(); /* 173 */ +YY_RULE(int) yy_TitleSingle(); /* 172 */ +YY_RULE(int) yy_Nonspacechar(); /* 171 */ +YY_RULE(int) yy_SourceContents(); /* 170 */ +YY_RULE(int) yy_Title(); /* 169 */ +YY_RULE(int) yy_Source(); /* 168 */ +YY_RULE(int) yy_Label(); /* 167 */ +YY_RULE(int) yy_ReferenceLinkSingle(); /* 166 */ +YY_RULE(int) yy_ReferenceLinkDouble(); /* 165 */ +YY_RULE(int) yy_AutoLink(); /* 164 */ +YY_RULE(int) yy_ReferenceLink(); /* 163 */ +YY_RULE(int) yy_ExplicitLink(); /* 162 */ +YY_RULE(int) yy_StrongInlineUl(); /* 161 */ +YY_RULE(int) yy_TwoUl(); /* 160 */ +YY_RULE(int) yy_StrongInlineStar(); /* 159 */ +YY_RULE(int) yy_TwoStar(); /* 158 */ +YY_RULE(int) yy_StrongUl(); /* 157 */ +YY_RULE(int) yy_Alphanumeric(); /* 156 */ +YY_RULE(int) yy_EmphInlineUl(); /* 155 */ +YY_RULE(int) yy_OneUl(); /* 154 */ +YY_RULE(int) yy_StrongStar(); /* 153 */ +YY_RULE(int) yy_EmphInlineStar(); /* 152 */ +YY_RULE(int) yy_OneStar(); /* 151 */ +YY_RULE(int) yy_EmphUl(); /* 150 */ +YY_RULE(int) yy_EmphStar(); /* 149 */ +YY_RULE(int) yy_SpecialChar(); /* 148 */ +YY_RULE(int) yy_NormalEndline(); /* 147 */ +YY_RULE(int) yy_TerminalEndline(); /* 146 */ +YY_RULE(int) yy_CharEntity(); /* 145 */ +YY_RULE(int) yy_DecEntity(); /* 144 */ +YY_RULE(int) yy_HexEntity(); /* 143 */ +YY_RULE(int) yy_NormalChar(); /* 142 */ +YY_RULE(int) yy_Symbol(); /* 141 */ +YY_RULE(int) yy_Smart(); /* 140 */ +YY_RULE(int) yy_EscapedChar(); /* 139 */ +YY_RULE(int) yy_Entity(); /* 138 */ +YY_RULE(int) yy_RawHtml(); /* 137 */ +YY_RULE(int) yy_Code(); /* 136 */ +YY_RULE(int) yy_InlineNote(); /* 135 */ +YY_RULE(int) yy_NoteReference(); /* 134 */ +YY_RULE(int) yy_Link(); /* 133 */ +YY_RULE(int) yy_Image(); /* 132 */ +YY_RULE(int) yy_Emph(); /* 131 */ +YY_RULE(int) yy_Strong(); /* 130 */ +YY_RULE(int) yy_Space(); /* 129 */ +YY_RULE(int) yy_LineBreak(); /* 128 */ +YY_RULE(int) yy_Str(); /* 127 */ +YY_RULE(int) yy_HtmlBlockType(); /* 126 */ +YY_RULE(int) yy_HtmlBlockSelfClosing(); /* 125 */ +YY_RULE(int) yy_HtmlComment(); /* 124 */ +YY_RULE(int) yy_HtmlBlockInTags(); /* 123 */ +YY_RULE(int) yy_HtmlBlockCloseScript(); /* 122 */ +YY_RULE(int) yy_HtmlBlockOpenScript(); /* 121 */ +YY_RULE(int) yy_HtmlBlockCloseTr(); /* 120 */ +YY_RULE(int) yy_HtmlBlockOpenTr(); /* 119 */ +YY_RULE(int) yy_HtmlBlockCloseThead(); /* 118 */ +YY_RULE(int) yy_HtmlBlockOpenThead(); /* 117 */ +YY_RULE(int) yy_HtmlBlockCloseTh(); /* 116 */ +YY_RULE(int) yy_HtmlBlockOpenTh(); /* 115 */ +YY_RULE(int) yy_HtmlBlockCloseTfoot(); /* 114 */ +YY_RULE(int) yy_HtmlBlockOpenTfoot(); /* 113 */ +YY_RULE(int) yy_HtmlBlockCloseTd(); /* 112 */ +YY_RULE(int) yy_HtmlBlockOpenTd(); /* 111 */ +YY_RULE(int) yy_HtmlBlockCloseTbody(); /* 110 */ +YY_RULE(int) yy_HtmlBlockOpenTbody(); /* 109 */ +YY_RULE(int) yy_HtmlBlockCloseLi(); /* 108 */ +YY_RULE(int) yy_HtmlBlockOpenLi(); /* 107 */ +YY_RULE(int) yy_HtmlBlockCloseFrameset(); /* 106 */ +YY_RULE(int) yy_HtmlBlockOpenFrameset(); /* 105 */ +YY_RULE(int) yy_HtmlBlockCloseDt(); /* 104 */ +YY_RULE(int) yy_HtmlBlockOpenDt(); /* 103 */ +YY_RULE(int) yy_HtmlBlockCloseDd(); /* 102 */ +YY_RULE(int) yy_HtmlBlockOpenDd(); /* 101 */ +YY_RULE(int) yy_HtmlBlockCloseUl(); /* 100 */ +YY_RULE(int) yy_HtmlBlockOpenUl(); /* 99 */ +YY_RULE(int) yy_HtmlBlockCloseTable(); /* 98 */ +YY_RULE(int) yy_HtmlBlockOpenTable(); /* 97 */ +YY_RULE(int) yy_HtmlBlockClosePre(); /* 96 */ +YY_RULE(int) yy_HtmlBlockOpenPre(); /* 95 */ +YY_RULE(int) yy_HtmlBlockCloseP(); /* 94 */ +YY_RULE(int) yy_HtmlBlockOpenP(); /* 93 */ +YY_RULE(int) yy_HtmlBlockCloseOl(); /* 92 */ +YY_RULE(int) yy_HtmlBlockOpenOl(); /* 91 */ +YY_RULE(int) yy_HtmlBlockCloseNoscript(); /* 90 */ +YY_RULE(int) yy_HtmlBlockOpenNoscript(); /* 89 */ +YY_RULE(int) yy_HtmlBlockCloseNoframes(); /* 88 */ +YY_RULE(int) yy_HtmlBlockOpenNoframes(); /* 87 */ +YY_RULE(int) yy_HtmlBlockCloseMenu(); /* 86 */ +YY_RULE(int) yy_HtmlBlockOpenMenu(); /* 85 */ +YY_RULE(int) yy_HtmlBlockCloseIsindex(); /* 84 */ +YY_RULE(int) yy_HtmlBlockOpenIsindex(); /* 83 */ +YY_RULE(int) yy_HtmlBlockCloseHr(); /* 82 */ +YY_RULE(int) yy_HtmlBlockOpenHr(); /* 81 */ +YY_RULE(int) yy_HtmlBlockCloseH6(); /* 80 */ +YY_RULE(int) yy_HtmlBlockOpenH6(); /* 79 */ +YY_RULE(int) yy_HtmlBlockCloseH5(); /* 78 */ +YY_RULE(int) yy_HtmlBlockOpenH5(); /* 77 */ +YY_RULE(int) yy_HtmlBlockCloseH4(); /* 76 */ +YY_RULE(int) yy_HtmlBlockOpenH4(); /* 75 */ +YY_RULE(int) yy_HtmlBlockCloseH3(); /* 74 */ +YY_RULE(int) yy_HtmlBlockOpenH3(); /* 73 */ +YY_RULE(int) yy_HtmlBlockCloseH2(); /* 72 */ +YY_RULE(int) yy_HtmlBlockOpenH2(); /* 71 */ +YY_RULE(int) yy_HtmlBlockCloseH1(); /* 70 */ +YY_RULE(int) yy_HtmlBlockOpenH1(); /* 69 */ +YY_RULE(int) yy_HtmlBlockCloseForm(); /* 68 */ +YY_RULE(int) yy_HtmlBlockOpenForm(); /* 67 */ +YY_RULE(int) yy_HtmlBlockCloseFieldset(); /* 66 */ +YY_RULE(int) yy_HtmlBlockOpenFieldset(); /* 65 */ +YY_RULE(int) yy_HtmlBlockCloseDl(); /* 64 */ +YY_RULE(int) yy_HtmlBlockOpenDl(); /* 63 */ +YY_RULE(int) yy_HtmlBlockCloseDiv(); /* 62 */ +YY_RULE(int) yy_HtmlBlockOpenDiv(); /* 61 */ +YY_RULE(int) yy_HtmlBlockCloseDir(); /* 60 */ +YY_RULE(int) yy_HtmlBlockOpenDir(); /* 59 */ +YY_RULE(int) yy_HtmlBlockCloseCenter(); /* 58 */ +YY_RULE(int) yy_HtmlBlockOpenCenter(); /* 57 */ +YY_RULE(int) yy_HtmlBlockCloseBlockquote(); /* 56 */ +YY_RULE(int) yy_HtmlBlockOpenBlockquote(); /* 55 */ +YY_RULE(int) yy_HtmlBlockCloseAddress(); /* 54 */ +YY_RULE(int) yy_HtmlAttribute(); /* 53 */ +YY_RULE(int) yy_Spnl(); /* 52 */ +YY_RULE(int) yy_HtmlBlockOpenAddress(); /* 51 */ +YY_RULE(int) yy_OptionallyIndentedLine(); /* 50 */ +YY_RULE(int) yy_OrderedListItem(); /* 49 */ +YY_RULE(int) yy_OrderedListLoose(); /* 48 */ +YY_RULE(int) yy_OrderedListTight(); /* 47 */ +YY_RULE(int) yy_Indent(); /* 46 */ +YY_RULE(int) yy_BlankLines(); /* 45 */ +YY_RULE(int) yy_ListBlockLine(); /* 44 */ +YY_RULE(int) yy_ListContinuationBlock(); /* 43 */ +YY_RULE(int) yy_ListBlock(); /* 42 */ +YY_RULE(int) yy_Enumerator(); /* 41 */ +YY_RULE(int) yy_ListItem(); /* 40 */ +YY_RULE(int) yy_BulletListItem(); /* 39 */ +YY_RULE(int) yy_BulletListLoose(); /* 38 */ +YY_RULE(int) yy_BulletListTight(); /* 37 */ +YY_RULE(int) yy_Spacechar(); /* 36 */ +YY_RULE(int) yy_Bullet(); /* 35 */ +YY_RULE(int) yy_VerbatimChunk(); /* 34 */ +YY_RULE(int) yy_IndentedLine(); /* 33 */ +YY_RULE(int) yy_NonblankIndentedLine(); /* 32 */ +YY_RULE(int) yy_Line(); /* 31 */ +YY_RULE(int) yy_BlockQuoteRaw(); /* 30 */ +YY_RULE(int) yy_Endline(); /* 29 */ +YY_RULE(int) yy_SetextHeading2(); /* 28 */ +YY_RULE(int) yy_SetextHeading1(); /* 27 */ +YY_RULE(int) yy_SetextHeading(); /* 26 */ +YY_RULE(int) yy_AtxHeading(); /* 25 */ +YY_RULE(int) yy_AtxStart(); /* 24 */ +YY_RULE(int) yy_Inline(); /* 23 */ +YY_RULE(int) yy_Sp(); /* 22 */ +YY_RULE(int) yy_Newline(); /* 21 */ +YY_RULE(int) yy_AtxInline(); /* 20 */ +YY_RULE(int) yy_Inlines(); /* 19 */ +YY_RULE(int) yy_NonindentSpace(); /* 18 */ +YY_RULE(int) yy_Plain(); /* 17 */ +YY_RULE(int) yy_Para(); /* 16 */ +YY_RULE(int) yy_HtmlBlock(); /* 15 */ +YY_RULE(int) yy_HorizontalRule(); /* 14 */ +YY_RULE(int) yy_BulletList(); /* 13 */ +YY_RULE(int) yy_OrderedList(); /* 12 */ +YY_RULE(int) yy_Heading(); /* 11 */ +YY_RULE(int) yy_Reference(); /* 10 */ +YY_RULE(int) yy_Note(); /* 9 */ +YY_RULE(int) yy_Verbatim(); /* 8 */ +YY_RULE(int) yy_BlockQuote(); /* 7 */ +YY_RULE(int) yy_Block(); /* 6 */ +YY_RULE(int) yy_StartList(); /* 5 */ +YY_RULE(int) yy_Eof(); /* 4 */ +YY_RULE(int) yy_BlankLine(); /* 3 */ +YY_RULE(int) yy_Blocks(); /* 2 */ +YY_RULE(int) yy_Doc(); /* 1 */ + +YY_ACTION(void) yy_3_RawNoteBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_RawNoteBlock\n")); + char *c = concat_string_list(reverse(a.children)); + strcat(c, "\n"); /* Note: an extra byte was allocated for this */ + yy = mk_str(c); + yy.key = RAW; + ; +#undef a +} +YY_ACTION(void) yy_2_RawNoteBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_RawNoteBlock\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_RawNoteBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_RawNoteBlock\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_Notes(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_Notes\n")); + notes = a.children; ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_Notes(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_Notes\n")); + pushelt(b, &a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_2_InlineNote(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_InlineNote\n")); + yy = mk_list(NOTE, a); yy.contents.str = 0; ; +#undef a +} +YY_ACTION(void) yy_1_InlineNote(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_InlineNote\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_3_Note(char *yytext, int yyleng) +{ +#define a yyval[-1] +#define ref yyval[-2] + yyprintf((stderr, "do yy_3_Note\n")); + yy = mk_list(NOTE, a); + yy.contents.str = strdup(ref.contents.str); + ; +#undef a +#undef ref +} +YY_ACTION(void) yy_2_Note(char *yytext, int yyleng) +{ +#define a yyval[-1] +#define ref yyval[-2] + yyprintf((stderr, "do yy_2_Note\n")); + pushelt(yy, &a); ; +#undef a +#undef ref +} +YY_ACTION(void) yy_1_Note(char *yytext, int yyleng) +{ +#define a yyval[-1] +#define ref yyval[-2] + yyprintf((stderr, "do yy_1_Note\n")); + pushelt(yy, &a); ; +#undef a +#undef ref +} +YY_ACTION(void) yy_1_RawNoteReference(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_RawNoteReference\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_NoteReference(char *yytext, int yyleng) +{ +#define ref yyval[-1] + yyprintf((stderr, "do yy_1_NoteReference\n")); + element *match; + if (find_note(&match, ref.contents.str)) { + yy = mk_element(NOTE); + assert(match->children != NULL); + yy.children = match->children; + yy.contents.str = 0; + } else { + char *s; + s = malloc(strlen(ref.contents.str) + 4); + strcpy(s, "[^"); + strcat(s, ref.contents.str); + strcat(s, "]"); + yy = mk_str(s); + } + ; +#undef ref +} +YY_ACTION(void) yy_2_DoubleQuoted(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_DoubleQuoted\n")); + yy = mk_list(DOUBLEQUOTED, a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_DoubleQuoted(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_DoubleQuoted\n")); + pushelt(b, &a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_2_SingleQuoted(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_SingleQuoted\n")); + yy = mk_list(SINGLEQUOTED, a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_SingleQuoted(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_SingleQuoted\n")); + pushelt(b, &a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_EmDash(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_EmDash\n")); + yy = mk_element(EMDASH); ; +} +YY_ACTION(void) yy_1_EnDash(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_EnDash\n")); + yy = mk_element(ENDASH); ; +} +YY_ACTION(void) yy_1_Ellipsis(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Ellipsis\n")); + yy = mk_element(ELLIPSIS); ; +} +YY_ACTION(void) yy_1_Apostrophe(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Apostrophe\n")); + yy = mk_element(APOSTROPHE); ; +} +YY_ACTION(void) yy_1_Line(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Line\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_StartList(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_StartList\n")); + yy.key = LIST; yy.children = NULL; ; +} +YY_ACTION(void) yy_1_BlankLine(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_BlankLine\n")); + yy = mk_str("\n"); ; +} +YY_ACTION(void) yy_1_RawHtml(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_RawHtml\n")); + yy = mk_str(yytext); yy.key = HTML; ; +} +YY_ACTION(void) yy_1_Code(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Code\n")); + yy = mk_str(yytext); yy.key = CODE; ; +} +YY_ACTION(void) yy_2_References(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_References\n")); + references = a.children; ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_References(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_References\n")); + pushelt(b, &a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_RefTitle(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_RefTitle\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_RefSrc(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_RefSrc\n")); + yy = mk_str(yytext); yy.key = HTML; ; +} +YY_ACTION(void) yy_2_Label(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_Label\n")); + yy = mk_list(LIST, a); ; +#undef a +} +YY_ACTION(void) yy_1_Label(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Label\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_Reference(char *yytext, int yyleng) +{ +#define t yyval[-1] +#define s yyval[-2] +#define l yyval[-3] + yyprintf((stderr, "do yy_1_Reference\n")); + yy = mk_link(l.children, s.contents.str, t.contents.str); yy.key = REFERENCE; ; +#undef t +#undef s +#undef l +} +YY_ACTION(void) yy_1_AutoLinkEmail(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_AutoLinkEmail\n")); + char *mailto = malloc(strlen(yytext) + 8); + sprintf(mailto, "mailto:%s", yytext); + yy = mk_link(cons(mk_str(yytext), NULL), mailto, ""); + ; +} +YY_ACTION(void) yy_1_AutoLinkUrl(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_AutoLinkUrl\n")); + yy = mk_link(cons(mk_str(yytext), NULL), yytext, ""); ; +} +YY_ACTION(void) yy_1_Title(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Title\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_Source(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Source\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_ExplicitLink(char *yytext, int yyleng) +{ +#define t yyval[-1] +#define s yyval[-2] +#define l yyval[-3] + yyprintf((stderr, "do yy_1_ExplicitLink\n")); + yy = mk_link(l.children, s.contents.str, t.contents.str); ; +#undef t +#undef s +#undef l +} +YY_ACTION(void) yy_1_ReferenceLinkSingle(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_ReferenceLinkSingle\n")); + link match; + if (find_reference(&match, a.children)) { + yy = mk_link(a.children, match.url, match.title); + } + else { + yy.key = LIST; + yy.children = cons(mk_str("["), cons(a, cons(mk_str("]"),cons(mk_str(yytext),NULL)))); + } + ; +#undef a +} +YY_ACTION(void) yy_1_ReferenceLinkDouble(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_ReferenceLinkDouble\n")); + link match; + if (find_reference(&match, b.children)) + yy = mk_link(a.children, match.url, match.title); + else { + /* yy.key == LIST; (not needed because yy.key set by Label match */ + yy.children = cons(mk_str("["), cons(a, cons(mk_str("]"), cons(mk_str(yytext), + cons(mk_str("["), cons(b, cons(mk_str("]"), NULL))))))); + } + ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_Image(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Image\n")); + yy.key = IMAGE; ; +} +YY_ACTION(void) yy_2_StrongUl(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_StrongUl\n")); + yy = mk_list(STRONG, a); ; +#undef a +} +YY_ACTION(void) yy_1_StrongUl(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_StrongUl\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_StrongStar(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_StrongStar\n")); + yy = mk_list(STRONG, a); ; +#undef a +} +YY_ACTION(void) yy_1_StrongStar(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_StrongStar\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_EmphUl(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_EmphUl\n")); + yy = mk_list(EMPH, a); ; +#undef a +} +YY_ACTION(void) yy_1_EmphUl(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_EmphUl\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_EmphStar(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_EmphStar\n")); + yy = mk_list(EMPH, a); ; +#undef a +} +YY_ACTION(void) yy_1_EmphStar(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_EmphStar\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_Symbol(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Symbol\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_LineBreak(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_LineBreak\n")); + yy.key = LINEBREAK; ; +} +YY_ACTION(void) yy_1_TerminalEndline(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_TerminalEndline\n")); + yy.key = SPACE; yy.contents.str = ""; ; +} +YY_ACTION(void) yy_1_NormalEndline(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_NormalEndline\n")); + yy.key = SPACE; yy.contents.str = "\n"; ; +} +YY_ACTION(void) yy_1_Entity(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Entity\n")); + yy = mk_str(yytext); yy.key = HTML; ; +} +YY_ACTION(void) yy_1_EscapedChar(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_EscapedChar\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_Str(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Str\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_1_Space(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_Space\n")); + yy.key = SPACE; yy.contents.str = " "; ; +} +YY_ACTION(void) yy_3_Inlines(char *yytext, int yyleng) +{ +#define c yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_3_Inlines\n")); + yy = mk_list(LIST, a); ; +#undef c +#undef a +} +YY_ACTION(void) yy_2_Inlines(char *yytext, int yyleng) +{ +#define c yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_Inlines\n")); + pushelt(c, &a); ; +#undef c +#undef a +} +YY_ACTION(void) yy_1_Inlines(char *yytext, int yyleng) +{ +#define c yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_Inlines\n")); + pushelt(yy, &a); ; +#undef c +#undef a +} +YY_ACTION(void) yy_1_HtmlBlock(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_HtmlBlock\n")); + yy = mk_str(yytext); yy.key = HTMLBLOCK; ; +} +YY_ACTION(void) yy_1_BlankLines(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_BlankLines\n")); + yy = mk_str(yytext); ; +} +YY_ACTION(void) yy_2_OrderedListLoose(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_OrderedListLoose\n")); + yy = mk_list(ORDEREDLIST, a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_OrderedListLoose(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_OrderedListLoose\n")); + element *li; + li = b.children; + li->contents.str = realloc(li->contents.str, strlen(li->contents.str) + 3); + strcat(li->contents.str, "\n\n"); /* In loose list, \n\n added to end of each element */ + pushelt(b, &a); + ; +#undef b +#undef a +} +YY_ACTION(void) yy_2_OrderedListTight(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_OrderedListTight\n")); + yy = mk_list(ORDEREDLIST, a); ; +#undef a +} +YY_ACTION(void) yy_1_OrderedListTight(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_OrderedListTight\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_3_ListContinuationBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_ListContinuationBlock\n")); + yy = mk_str(concat_string_list(reverse(a.children))); ; +#undef a +} +YY_ACTION(void) yy_2_ListContinuationBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_ListContinuationBlock\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_ListContinuationBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_ListContinuationBlock\n")); + if (strlen(yy.contents.str) == 0) + yy.contents.str = strdup("\001"); /* block separator */ + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_3_ListBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_ListBlock\n")); + yy = mk_str(concat_string_list(reverse(a.children))); ; +#undef a +} +YY_ACTION(void) yy_2_ListBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_ListBlock\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_ListBlock(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_ListBlock\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_3_ListItem(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_ListItem\n")); + element *raw; + raw = malloc(sizeof(element)); + *raw = mk_str(concat_string_list(reverse(a.children))); + raw->key = RAW; + yy = mk_element(LISTITEM); + yy.children = raw; + ; +#undef a +} +YY_ACTION(void) yy_2_ListItem(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_ListItem\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_ListItem(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_ListItem\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_BulletListLoose(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_2_BulletListLoose\n")); + yy = mk_list(BULLETLIST, a); ; +#undef b +#undef a +} +YY_ACTION(void) yy_1_BulletListLoose(char *yytext, int yyleng) +{ +#define b yyval[-1] +#define a yyval[-2] + yyprintf((stderr, "do yy_1_BulletListLoose\n")); + element *li; + li = b.children; + li->contents.str = realloc(li->contents.str, strlen(li->contents.str) + 3); + strcat(li->contents.str, "\n\n"); /* In loose list, \n\n added to end of each element */ + pushelt(b, &a); + ; +#undef b +#undef a +} +YY_ACTION(void) yy_2_BulletListTight(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_BulletListTight\n")); + yy = mk_list(BULLETLIST, a); ; +#undef a +} +YY_ACTION(void) yy_1_BulletListTight(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_BulletListTight\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_HorizontalRule(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_HorizontalRule\n")); + yy.key = HRULE; ; +} +YY_ACTION(void) yy_2_Verbatim(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_Verbatim\n")); + yy = mk_str(concat_string_list(reverse(a.children))); yy.key = VERBATIM; ; +#undef a +} +YY_ACTION(void) yy_1_Verbatim(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Verbatim\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_3_VerbatimChunk(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_VerbatimChunk\n")); + yy = mk_str(concat_string_list(reverse(a.children))); ; +#undef a +} +YY_ACTION(void) yy_2_VerbatimChunk(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_VerbatimChunk\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_VerbatimChunk(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_VerbatimChunk\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_4_BlockQuoteRaw(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_4_BlockQuoteRaw\n")); + char *c = concat_string_list(reverse(a.children)); + strcat(c, "\n"); /* Note: an extra byte was allocated for this */ + yy = mk_str(c); + yy.key = RAW; + ; +#undef a +} +YY_ACTION(void) yy_3_BlockQuoteRaw(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_3_BlockQuoteRaw\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_BlockQuoteRaw(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_BlockQuoteRaw\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_BlockQuoteRaw(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_BlockQuoteRaw\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_BlockQuote(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_BlockQuote\n")); + element *raw; + raw = malloc(sizeof(element)); + *raw = a; + yy = mk_element(BLOCKQUOTE); + yy.children = raw; + ; +#undef a +} +YY_ACTION(void) yy_2_SetextHeading2(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_SetextHeading2\n")); + yy = mk_list(H2, a); ; +#undef a +} +YY_ACTION(void) yy_1_SetextHeading2(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_SetextHeading2\n")); + pushelt(yy, &a) ; ; +#undef a +} +YY_ACTION(void) yy_2_SetextHeading1(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_SetextHeading1\n")); + yy = mk_list(H1, a); ; +#undef a +} +YY_ACTION(void) yy_1_SetextHeading1(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_SetextHeading1\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_2_AtxHeading(char *yytext, int yyleng) +{ +#define a yyval[-1] +#define s yyval[-2] + yyprintf((stderr, "do yy_2_AtxHeading\n")); + yy = mk_list(s.key, a); ; +#undef a +#undef s +} +YY_ACTION(void) yy_1_AtxHeading(char *yytext, int yyleng) +{ +#define a yyval[-1] +#define s yyval[-2] + yyprintf((stderr, "do yy_1_AtxHeading\n")); + pushelt(yy, &a); ; +#undef a +#undef s +} +YY_ACTION(void) yy_1_AtxStart(char *yytext, int yyleng) +{ + yyprintf((stderr, "do yy_1_AtxStart\n")); + yy.key = H1 + (strlen(yytext) - 1); ; +} +YY_ACTION(void) yy_1_Plain(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Plain\n")); + yy = a; yy.key = PLAIN; ; +#undef a +} +YY_ACTION(void) yy_1_Para(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Para\n")); + yy = a; yy.key = PARA; ; +#undef a +} +YY_ACTION(void) yy_2_Blocks(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_2_Blocks\n")); + yy = mk_list(LIST, a); ; +#undef a +} +YY_ACTION(void) yy_1_Blocks(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Blocks\n")); + pushelt(yy, &a); ; +#undef a +} +YY_ACTION(void) yy_1_Doc(char *yytext, int yyleng) +{ +#define a yyval[-1] + yyprintf((stderr, "do yy_1_Doc\n")); + parse_result = a; ; +#undef a +} + +YY_RULE(int) yy_Notes() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "Notes")); if (!yy_StartList()) goto l1; yyDo(yySet, -2, 0); + l2:; + { int yypos3= yypos, yythunkpos3= yythunkpos; + { int yypos4= yypos, yythunkpos4= yythunkpos; if (!yy_Note()) goto l5; yyDo(yySet, -1, 0); yyDo(yy_1_Notes, yybegin, yyend); goto l4; + l5:; yypos= yypos4; yythunkpos= yythunkpos4; if (!yy_SkipBlock()) goto l3; + } + l4:; goto l2; + l3:; yypos= yypos3; yythunkpos= yythunkpos3; + } yyDo(yy_2_Notes, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Notes", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Notes", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RawNoteBlock() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "RawNoteBlock")); if (!yy_StartList()) goto l6; yyDo(yySet, -1, 0); + { int yypos9= yypos, yythunkpos9= yythunkpos; if (!yy_BlankLine()) goto l9; goto l6; + l9:; yypos= yypos9; yythunkpos= yythunkpos9; + } if (!yy_OptionallyIndentedLine()) goto l6; yyDo(yy_1_RawNoteBlock, yybegin, yyend); + l7:; + { int yypos8= yypos, yythunkpos8= yythunkpos; + { int yypos10= yypos, yythunkpos10= yythunkpos; if (!yy_BlankLine()) goto l10; goto l8; + l10:; yypos= yypos10; yythunkpos= yythunkpos10; + } if (!yy_OptionallyIndentedLine()) goto l8; yyDo(yy_1_RawNoteBlock, yybegin, yyend); goto l7; + l8:; yypos= yypos8; yythunkpos= yythunkpos8; + } + l11:; + { int yypos12= yypos, yythunkpos12= yythunkpos; if (!yy_BlankLine()) goto l12; yyDo(yy_2_RawNoteBlock, yybegin, yyend); goto l11; + l12:; yypos= yypos12; yythunkpos= yythunkpos12; + } yyDo(yy_3_RawNoteBlock, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "RawNoteBlock", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l6:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RawNoteBlock", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RawNoteReference() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RawNoteReference")); if (!yymatchString("[^")) goto l13; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l13; + { int yypos16= yypos, yythunkpos16= yythunkpos; if (!yy_Newline()) goto l16; goto l13; + l16:; yypos= yypos16; yythunkpos= yythunkpos16; + } + { int yypos17= yypos, yythunkpos17= yythunkpos; if (!yymatchChar(']')) goto l17; goto l13; + l17:; yypos= yypos17; yythunkpos= yythunkpos17; + } if (!yymatchDot()) goto l13; + l14:; + { int yypos15= yypos, yythunkpos15= yythunkpos; + { int yypos18= yypos, yythunkpos18= yythunkpos; if (!yy_Newline()) goto l18; goto l15; + l18:; yypos= yypos18; yythunkpos= yythunkpos18; + } + { int yypos19= yypos, yythunkpos19= yythunkpos; if (!yymatchChar(']')) goto l19; goto l15; + l19:; yypos= yypos19; yythunkpos= yythunkpos19; + } if (!yymatchDot()) goto l15; goto l14; + l15:; yypos= yypos15; yythunkpos= yythunkpos15; + } yyText(yybegin, yyend); if (!(YY_END)) goto l13; if (!yymatchChar(']')) goto l13; yyDo(yy_1_RawNoteReference, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "RawNoteReference", yybuf+yypos)); + return 1; + l13:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RawNoteReference", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_DoubleQuoteEnd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "DoubleQuoteEnd")); if (!yymatchChar('"')) goto l20; + yyprintf((stderr, " ok %s @ %s\n", "DoubleQuoteEnd", yybuf+yypos)); + return 1; + l20:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "DoubleQuoteEnd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_DoubleQuoteStart() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "DoubleQuoteStart")); if (!yymatchChar('"')) goto l21; + yyprintf((stderr, " ok %s @ %s\n", "DoubleQuoteStart", yybuf+yypos)); + return 1; + l21:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "DoubleQuoteStart", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SingleQuoteEnd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SingleQuoteEnd")); if (!yymatchChar('\'')) goto l22; + { int yypos23= yypos, yythunkpos23= yythunkpos; if (!yy_Alphanumeric()) goto l23; goto l22; + l23:; yypos= yypos23; yythunkpos= yythunkpos23; + } + yyprintf((stderr, " ok %s @ %s\n", "SingleQuoteEnd", yybuf+yypos)); + return 1; + l22:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SingleQuoteEnd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SingleQuoteStart() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SingleQuoteStart")); if (!yymatchChar('\'')) goto l24; + { int yypos25= yypos, yythunkpos25= yythunkpos; if (!yymatchClass((unsigned char *)"\000\006\000\000\003\122\000\374\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l25; goto l24; + l25:; yypos= yypos25; yythunkpos= yythunkpos25; + } + { int yypos26= yypos, yythunkpos26= yythunkpos; + { int yypos27= yypos, yythunkpos27= yythunkpos; if (!yymatchChar('s')) goto l28; goto l27; + l28:; yypos= yypos27; yythunkpos= yythunkpos27; if (!yymatchChar('t')) goto l29; goto l27; + l29:; yypos= yypos27; yythunkpos= yythunkpos27; if (!yymatchChar('m')) goto l30; goto l27; + l30:; yypos= yypos27; yythunkpos= yythunkpos27; if (!yymatchString("ve")) goto l31; goto l27; + l31:; yypos= yypos27; yythunkpos= yythunkpos27; if (!yymatchString("ll")) goto l32; goto l27; + l32:; yypos= yypos27; yythunkpos= yythunkpos27; if (!yymatchString("re")) goto l26; + } + l27:; + { int yypos33= yypos, yythunkpos33= yythunkpos; if (!yy_Alphanumeric()) goto l33; goto l26; + l33:; yypos= yypos33; yythunkpos= yythunkpos33; + } goto l24; + l26:; yypos= yypos26; yythunkpos= yythunkpos26; + } + yyprintf((stderr, " ok %s @ %s\n", "SingleQuoteStart", yybuf+yypos)); + return 1; + l24:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SingleQuoteStart", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EnDash() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EnDash")); if (!yymatchChar('-')) goto l34; + { int yypos35= yypos, yythunkpos35= yythunkpos; if (!yy_Digit()) goto l34; yypos= yypos35; yythunkpos= yythunkpos35; + } yyDo(yy_1_EnDash, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "EnDash", yybuf+yypos)); + return 1; + l34:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EnDash", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmDash() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EmDash")); if (!yy_Sp()) goto l36; + { int yypos37= yypos, yythunkpos37= yythunkpos; if (!yymatchString("---")) goto l38; goto l37; + l38:; yypos= yypos37; yythunkpos= yythunkpos37; if (!yymatchString("--")) goto l36; + } + l37:; if (!yy_Sp()) goto l36; yyDo(yy_1_EmDash, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "EmDash", yybuf+yypos)); + return 1; + l36:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmDash", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Apostrophe() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Apostrophe")); if (!yymatchChar('\'')) goto l39; yyDo(yy_1_Apostrophe, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Apostrophe", yybuf+yypos)); + return 1; + l39:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Apostrophe", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_DoubleQuoted() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "DoubleQuoted")); if (!yy_DoubleQuoteStart()) goto l40; if (!yy_StartList()) goto l40; yyDo(yySet, -2, 0); + { int yypos43= yypos, yythunkpos43= yythunkpos; if (!yy_DoubleQuoteEnd()) goto l43; goto l40; + l43:; yypos= yypos43; yythunkpos= yythunkpos43; + } if (!yy_Inline()) goto l40; yyDo(yySet, -1, 0); yyDo(yy_1_DoubleQuoted, yybegin, yyend); + l41:; + { int yypos42= yypos, yythunkpos42= yythunkpos; + { int yypos44= yypos, yythunkpos44= yythunkpos; if (!yy_DoubleQuoteEnd()) goto l44; goto l42; + l44:; yypos= yypos44; yythunkpos= yythunkpos44; + } if (!yy_Inline()) goto l42; yyDo(yySet, -1, 0); yyDo(yy_1_DoubleQuoted, yybegin, yyend); goto l41; + l42:; yypos= yypos42; yythunkpos= yythunkpos42; + } if (!yy_DoubleQuoteEnd()) goto l40; yyDo(yy_2_DoubleQuoted, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "DoubleQuoted", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l40:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "DoubleQuoted", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SingleQuoted() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "SingleQuoted")); if (!yy_SingleQuoteStart()) goto l45; if (!yy_StartList()) goto l45; yyDo(yySet, -2, 0); + { int yypos48= yypos, yythunkpos48= yythunkpos; if (!yy_SingleQuoteEnd()) goto l48; goto l45; + l48:; yypos= yypos48; yythunkpos= yythunkpos48; + } if (!yy_Inline()) goto l45; yyDo(yySet, -1, 0); yyDo(yy_1_SingleQuoted, yybegin, yyend); + l46:; + { int yypos47= yypos, yythunkpos47= yythunkpos; + { int yypos49= yypos, yythunkpos49= yythunkpos; if (!yy_SingleQuoteEnd()) goto l49; goto l47; + l49:; yypos= yypos49; yythunkpos= yythunkpos49; + } if (!yy_Inline()) goto l47; yyDo(yySet, -1, 0); yyDo(yy_1_SingleQuoted, yybegin, yyend); goto l46; + l47:; yypos= yypos47; yythunkpos= yythunkpos47; + } if (!yy_SingleQuoteEnd()) goto l45; yyDo(yy_2_SingleQuoted, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "SingleQuoted", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l45:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SingleQuoted", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Dash() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Dash")); + { int yypos51= yypos, yythunkpos51= yythunkpos; if (!yy_EmDash()) goto l52; goto l51; + l52:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_EnDash()) goto l50; + } + l51:; + yyprintf((stderr, " ok %s @ %s\n", "Dash", yybuf+yypos)); + return 1; + l50:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Dash", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ellipsis() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ellipsis")); + { int yypos54= yypos, yythunkpos54= yythunkpos; if (!yymatchString("...")) goto l55; goto l54; + l55:; yypos= yypos54; yythunkpos= yythunkpos54; if (!yymatchString(". . .")) goto l53; + } + l54:; yyDo(yy_1_Ellipsis, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Ellipsis", yybuf+yypos)); + return 1; + l53:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ellipsis", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Digit() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Digit")); if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l56; + yyprintf((stderr, " ok %s @ %s\n", "Digit", yybuf+yypos)); + return 1; + l56:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Digit", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ExtendedSpecialChar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "ExtendedSpecialChar")); + { int yypos58= yypos, yythunkpos58= yythunkpos; yyText(yybegin, yyend); if (!( extension(EXT_SMART) )) goto l59; + { int yypos60= yypos, yythunkpos60= yythunkpos; if (!yymatchChar('.')) goto l61; goto l60; + l61:; yypos= yypos60; yythunkpos= yythunkpos60; if (!yymatchChar('-')) goto l62; goto l60; + l62:; yypos= yypos60; yythunkpos= yythunkpos60; if (!yymatchChar('\'')) goto l63; goto l60; + l63:; yypos= yypos60; yythunkpos= yythunkpos60; if (!yymatchChar('"')) goto l59; + } + l60:; goto l58; + l59:; yypos= yypos58; yythunkpos= yythunkpos58; yyText(yybegin, yyend); if (!( extension(EXT_NOTES) )) goto l57; if (!yymatchChar('^')) goto l57; + } + l58:; + yyprintf((stderr, " ok %s @ %s\n", "ExtendedSpecialChar", yybuf+yypos)); + return 1; + l57:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ExtendedSpecialChar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Quoted() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Quoted")); + { int yypos65= yypos, yythunkpos65= yythunkpos; if (!yymatchChar('"')) goto l66; + l67:; + { int yypos68= yypos, yythunkpos68= yythunkpos; + { int yypos69= yypos, yythunkpos69= yythunkpos; if (!yymatchChar('"')) goto l69; goto l68; + l69:; yypos= yypos69; yythunkpos= yythunkpos69; + } if (!yymatchDot()) goto l68; goto l67; + l68:; yypos= yypos68; yythunkpos= yythunkpos68; + } if (!yymatchChar('"')) goto l66; goto l65; + l66:; yypos= yypos65; yythunkpos= yythunkpos65; if (!yymatchChar('\'')) goto l64; + l70:; + { int yypos71= yypos, yythunkpos71= yythunkpos; + { int yypos72= yypos, yythunkpos72= yythunkpos; if (!yymatchChar('\'')) goto l72; goto l71; + l72:; yypos= yypos72; yythunkpos= yythunkpos72; + } if (!yymatchDot()) goto l71; goto l70; + l71:; yypos= yypos71; yythunkpos= yythunkpos71; + } if (!yymatchChar('\'')) goto l64; + } + l65:; + yyprintf((stderr, " ok %s @ %s\n", "Quoted", yybuf+yypos)); + return 1; + l64:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Quoted", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlTag() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlTag")); if (!yymatchChar('<')) goto l73; if (!yy_Spnl()) goto l73; + { int yypos74= yypos, yythunkpos74= yythunkpos; if (!yymatchChar('/')) goto l74; goto l75; + l74:; yypos= yypos74; yythunkpos= yythunkpos74; + } + l75:; if (!yy_Alphanumeric()) goto l73; + l76:; + { int yypos77= yypos, yythunkpos77= yythunkpos; if (!yy_Alphanumeric()) goto l77; goto l76; + l77:; yypos= yypos77; yythunkpos= yythunkpos77; + } if (!yy_Spnl()) goto l73; + l78:; + { int yypos79= yypos, yythunkpos79= yythunkpos; if (!yy_HtmlAttribute()) goto l79; goto l78; + l79:; yypos= yypos79; yythunkpos= yythunkpos79; + } + { int yypos80= yypos, yythunkpos80= yythunkpos; if (!yymatchChar('/')) goto l80; goto l81; + l80:; yypos= yypos80; yythunkpos= yythunkpos80; + } + l81:; if (!yy_Spnl()) goto l73; if (!yymatchChar('>')) goto l73; + yyprintf((stderr, " ok %s @ %s\n", "HtmlTag", yybuf+yypos)); + return 1; + l73:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlTag", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ticks5() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ticks5")); if (!yymatchString("`````")) goto l82; + yyprintf((stderr, " ok %s @ %s\n", "Ticks5", yybuf+yypos)); + return 1; + l82:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ticks5", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ticks4() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ticks4")); if (!yymatchString("````")) goto l83; + yyprintf((stderr, " ok %s @ %s\n", "Ticks4", yybuf+yypos)); + return 1; + l83:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ticks4", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ticks3() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ticks3")); if (!yymatchString("```")) goto l84; + yyprintf((stderr, " ok %s @ %s\n", "Ticks3", yybuf+yypos)); + return 1; + l84:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ticks3", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ticks2() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ticks2")); if (!yymatchString("``")) goto l85; + yyprintf((stderr, " ok %s @ %s\n", "Ticks2", yybuf+yypos)); + return 1; + l85:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ticks2", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Ticks1() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Ticks1")); if (!yymatchChar('`')) goto l86; + yyprintf((stderr, " ok %s @ %s\n", "Ticks1", yybuf+yypos)); + return 1; + l86:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Ticks1", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SkipBlock() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SkipBlock")); + { int yypos88= yypos, yythunkpos88= yythunkpos; + { int yypos92= yypos, yythunkpos92= yythunkpos; if (!yy_BlankLine()) goto l92; goto l89; + l92:; yypos= yypos92; yythunkpos= yythunkpos92; + } if (!yy_Line()) goto l89; + l90:; + { int yypos91= yypos, yythunkpos91= yythunkpos; + { int yypos93= yypos, yythunkpos93= yythunkpos; if (!yy_BlankLine()) goto l93; goto l91; + l93:; yypos= yypos93; yythunkpos= yythunkpos93; + } if (!yy_Line()) goto l91; goto l90; + l91:; yypos= yypos91; yythunkpos= yythunkpos91; + } + l94:; + { int yypos95= yypos, yythunkpos95= yythunkpos; if (!yy_BlankLine()) goto l95; goto l94; + l95:; yypos= yypos95; yythunkpos= yythunkpos95; + } goto l88; + l89:; yypos= yypos88; yythunkpos= yythunkpos88; if (!yy_BlankLine()) goto l87; + l96:; + { int yypos97= yypos, yythunkpos97= yythunkpos; if (!yy_BlankLine()) goto l97; goto l96; + l97:; yypos= yypos97; yythunkpos= yythunkpos97; + } + } + l88:; + yyprintf((stderr, " ok %s @ %s\n", "SkipBlock", yybuf+yypos)); + return 1; + l87:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SkipBlock", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_References() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "References")); if (!yy_StartList()) goto l98; yyDo(yySet, -2, 0); + l99:; + { int yypos100= yypos, yythunkpos100= yythunkpos; + { int yypos101= yypos, yythunkpos101= yythunkpos; if (!yy_Reference()) goto l102; yyDo(yySet, -1, 0); yyDo(yy_1_References, yybegin, yyend); goto l101; + l102:; yypos= yypos101; yythunkpos= yythunkpos101; if (!yy_SkipBlock()) goto l100; + } + l101:; goto l99; + l100:; yypos= yypos100; yythunkpos= yythunkpos100; + } yyDo(yy_2_References, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "References", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l98:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "References", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmptyTitle() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EmptyTitle")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l103; if (!yymatchString("")) goto l103; yyText(yybegin, yyend); if (!(YY_END)) goto l103; + yyprintf((stderr, " ok %s @ %s\n", "EmptyTitle", yybuf+yypos)); + return 1; + l103:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmptyTitle", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RefTitleParens() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RefTitleParens")); if (!yymatchChar('(')) goto l104; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l104; + l105:; + { int yypos106= yypos, yythunkpos106= yythunkpos; + { int yypos107= yypos, yythunkpos107= yythunkpos; + { int yypos108= yypos, yythunkpos108= yythunkpos; if (!yymatchChar(')')) goto l109; if (!yy_Sp()) goto l109; if (!yy_Newline()) goto l109; goto l108; + l109:; yypos= yypos108; yythunkpos= yythunkpos108; if (!yy_Newline()) goto l107; + } + l108:; goto l106; + l107:; yypos= yypos107; yythunkpos= yythunkpos107; + } if (!yymatchDot()) goto l106; goto l105; + l106:; yypos= yypos106; yythunkpos= yythunkpos106; + } yyText(yybegin, yyend); if (!(YY_END)) goto l104; if (!yymatchChar(')')) goto l104; + yyprintf((stderr, " ok %s @ %s\n", "RefTitleParens", yybuf+yypos)); + return 1; + l104:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RefTitleParens", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RefTitleDouble() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RefTitleDouble")); if (!yymatchChar('"')) goto l110; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l110; + l111:; + { int yypos112= yypos, yythunkpos112= yythunkpos; + { int yypos113= yypos, yythunkpos113= yythunkpos; + { int yypos114= yypos, yythunkpos114= yythunkpos; if (!yymatchChar('"')) goto l115; if (!yy_Sp()) goto l115; if (!yy_Newline()) goto l115; goto l114; + l115:; yypos= yypos114; yythunkpos= yythunkpos114; if (!yy_Newline()) goto l113; + } + l114:; goto l112; + l113:; yypos= yypos113; yythunkpos= yythunkpos113; + } if (!yymatchDot()) goto l112; goto l111; + l112:; yypos= yypos112; yythunkpos= yythunkpos112; + } yyText(yybegin, yyend); if (!(YY_END)) goto l110; if (!yymatchChar('"')) goto l110; + yyprintf((stderr, " ok %s @ %s\n", "RefTitleDouble", yybuf+yypos)); + return 1; + l110:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RefTitleDouble", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RefTitleSingle() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RefTitleSingle")); if (!yymatchChar('\'')) goto l116; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l116; + l117:; + { int yypos118= yypos, yythunkpos118= yythunkpos; + { int yypos119= yypos, yythunkpos119= yythunkpos; + { int yypos120= yypos, yythunkpos120= yythunkpos; if (!yymatchChar('\'')) goto l121; if (!yy_Sp()) goto l121; if (!yy_Newline()) goto l121; goto l120; + l121:; yypos= yypos120; yythunkpos= yythunkpos120; if (!yy_Newline()) goto l119; + } + l120:; goto l118; + l119:; yypos= yypos119; yythunkpos= yythunkpos119; + } if (!yymatchDot()) goto l118; goto l117; + l118:; yypos= yypos118; yythunkpos= yythunkpos118; + } yyText(yybegin, yyend); if (!(YY_END)) goto l116; if (!yymatchChar('\'')) goto l116; + yyprintf((stderr, " ok %s @ %s\n", "RefTitleSingle", yybuf+yypos)); + return 1; + l116:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RefTitleSingle", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RefTitle() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RefTitle")); + { int yypos123= yypos, yythunkpos123= yythunkpos; if (!yy_RefTitleSingle()) goto l124; goto l123; + l124:; yypos= yypos123; yythunkpos= yythunkpos123; if (!yy_RefTitleDouble()) goto l125; goto l123; + l125:; yypos= yypos123; yythunkpos= yythunkpos123; if (!yy_RefTitleParens()) goto l126; goto l123; + l126:; yypos= yypos123; yythunkpos= yythunkpos123; if (!yy_EmptyTitle()) goto l122; + } + l123:; yyDo(yy_1_RefTitle, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "RefTitle", yybuf+yypos)); + return 1; + l122:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RefTitle", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RefSrc() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RefSrc")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l127; if (!yy_Nonspacechar()) goto l127; + l128:; + { int yypos129= yypos, yythunkpos129= yythunkpos; if (!yy_Nonspacechar()) goto l129; goto l128; + l129:; yypos= yypos129; yythunkpos= yythunkpos129; + } yyText(yybegin, yyend); if (!(YY_END)) goto l127; yyDo(yy_1_RefSrc, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "RefSrc", yybuf+yypos)); + return 1; + l127:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RefSrc", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AutoLinkEmail() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "AutoLinkEmail")); if (!yymatchChar('<')) goto l130; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l130; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\050\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l130; + l131:; + { int yypos132= yypos, yythunkpos132= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\050\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l132; goto l131; + l132:; yypos= yypos132; yythunkpos= yythunkpos132; + } if (!yymatchChar('@')) goto l130; + { int yypos135= yypos, yythunkpos135= yythunkpos; if (!yy_Newline()) goto l135; goto l130; + l135:; yypos= yypos135; yythunkpos= yythunkpos135; + } + { int yypos136= yypos, yythunkpos136= yythunkpos; if (!yymatchChar('>')) goto l136; goto l130; + l136:; yypos= yypos136; yythunkpos= yythunkpos136; + } if (!yymatchDot()) goto l130; + l133:; + { int yypos134= yypos, yythunkpos134= yythunkpos; + { int yypos137= yypos, yythunkpos137= yythunkpos; if (!yy_Newline()) goto l137; goto l134; + l137:; yypos= yypos137; yythunkpos= yythunkpos137; + } + { int yypos138= yypos, yythunkpos138= yythunkpos; if (!yymatchChar('>')) goto l138; goto l134; + l138:; yypos= yypos138; yythunkpos= yythunkpos138; + } if (!yymatchDot()) goto l134; goto l133; + l134:; yypos= yypos134; yythunkpos= yythunkpos134; + } yyText(yybegin, yyend); if (!(YY_END)) goto l130; if (!yymatchChar('>')) goto l130; yyDo(yy_1_AutoLinkEmail, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "AutoLinkEmail", yybuf+yypos)); + return 1; + l130:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AutoLinkEmail", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AutoLinkUrl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "AutoLinkUrl")); if (!yymatchChar('<')) goto l139; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l139; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l139; + l140:; + { int yypos141= yypos, yythunkpos141= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l141; goto l140; + l141:; yypos= yypos141; yythunkpos= yythunkpos141; + } if (!yymatchString("://")) goto l139; + { int yypos144= yypos, yythunkpos144= yythunkpos; if (!yy_Newline()) goto l144; goto l139; + l144:; yypos= yypos144; yythunkpos= yythunkpos144; + } + { int yypos145= yypos, yythunkpos145= yythunkpos; if (!yymatchChar('>')) goto l145; goto l139; + l145:; yypos= yypos145; yythunkpos= yythunkpos145; + } if (!yymatchDot()) goto l139; + l142:; + { int yypos143= yypos, yythunkpos143= yythunkpos; + { int yypos146= yypos, yythunkpos146= yythunkpos; if (!yy_Newline()) goto l146; goto l143; + l146:; yypos= yypos146; yythunkpos= yythunkpos146; + } + { int yypos147= yypos, yythunkpos147= yythunkpos; if (!yymatchChar('>')) goto l147; goto l143; + l147:; yypos= yypos147; yythunkpos= yythunkpos147; + } if (!yymatchDot()) goto l143; goto l142; + l143:; yypos= yypos143; yythunkpos= yythunkpos143; + } yyText(yybegin, yyend); if (!(YY_END)) goto l139; if (!yymatchChar('>')) goto l139; yyDo(yy_1_AutoLinkUrl, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "AutoLinkUrl", yybuf+yypos)); + return 1; + l139:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AutoLinkUrl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_TitleDouble() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "TitleDouble")); if (!yymatchChar('"')) goto l148; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l148; + l149:; + { int yypos150= yypos, yythunkpos150= yythunkpos; + { int yypos151= yypos, yythunkpos151= yythunkpos; if (!yymatchChar('"')) goto l151; if (!yy_Sp()) goto l151; + { int yypos152= yypos, yythunkpos152= yythunkpos; if (!yymatchChar(')')) goto l153; goto l152; + l153:; yypos= yypos152; yythunkpos= yythunkpos152; if (!yy_Newline()) goto l151; + } + l152:; goto l150; + l151:; yypos= yypos151; yythunkpos= yythunkpos151; + } + { int yypos154= yypos, yythunkpos154= yythunkpos; if (!yy_Newline()) goto l154; goto l150; + l154:; yypos= yypos154; yythunkpos= yythunkpos154; + } if (!yymatchDot()) goto l150; goto l149; + l150:; yypos= yypos150; yythunkpos= yythunkpos150; + } yyText(yybegin, yyend); if (!(YY_END)) goto l148; if (!yymatchChar('"')) goto l148; + yyprintf((stderr, " ok %s @ %s\n", "TitleDouble", yybuf+yypos)); + return 1; + l148:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "TitleDouble", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_TitleSingle() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "TitleSingle")); if (!yymatchChar('\'')) goto l155; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l155; + l156:; + { int yypos157= yypos, yythunkpos157= yythunkpos; + { int yypos158= yypos, yythunkpos158= yythunkpos; if (!yymatchChar('\'')) goto l158; if (!yy_Sp()) goto l158; + { int yypos159= yypos, yythunkpos159= yythunkpos; if (!yymatchChar(')')) goto l160; goto l159; + l160:; yypos= yypos159; yythunkpos= yythunkpos159; if (!yy_Newline()) goto l158; + } + l159:; goto l157; + l158:; yypos= yypos158; yythunkpos= yythunkpos158; + } + { int yypos161= yypos, yythunkpos161= yythunkpos; if (!yy_Newline()) goto l161; goto l157; + l161:; yypos= yypos161; yythunkpos= yythunkpos161; + } if (!yymatchDot()) goto l157; goto l156; + l157:; yypos= yypos157; yythunkpos= yythunkpos157; + } yyText(yybegin, yyend); if (!(YY_END)) goto l155; if (!yymatchChar('\'')) goto l155; + yyprintf((stderr, " ok %s @ %s\n", "TitleSingle", yybuf+yypos)); + return 1; + l155:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "TitleSingle", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Nonspacechar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Nonspacechar")); + { int yypos163= yypos, yythunkpos163= yythunkpos; if (!yy_Spacechar()) goto l163; goto l162; + l163:; yypos= yypos163; yythunkpos= yythunkpos163; + } + { int yypos164= yypos, yythunkpos164= yythunkpos; if (!yy_Newline()) goto l164; goto l162; + l164:; yypos= yypos164; yythunkpos= yythunkpos164; + } if (!yymatchDot()) goto l162; + yyprintf((stderr, " ok %s @ %s\n", "Nonspacechar", yybuf+yypos)); + return 1; + l162:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Nonspacechar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SourceContents() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SourceContents")); + { int yypos166= yypos, yythunkpos166= yythunkpos; + l168:; + { int yypos169= yypos, yythunkpos169= yythunkpos; + { int yypos170= yypos, yythunkpos170= yythunkpos; + { int yypos174= yypos, yythunkpos174= yythunkpos; if (!yymatchChar('(')) goto l174; goto l171; + l174:; yypos= yypos174; yythunkpos= yythunkpos174; + } + { int yypos175= yypos, yythunkpos175= yythunkpos; if (!yymatchChar(')')) goto l175; goto l171; + l175:; yypos= yypos175; yythunkpos= yythunkpos175; + } + { int yypos176= yypos, yythunkpos176= yythunkpos; if (!yymatchChar('>')) goto l176; goto l171; + l176:; yypos= yypos176; yythunkpos= yythunkpos176; + } if (!yy_Nonspacechar()) goto l171; + l172:; + { int yypos173= yypos, yythunkpos173= yythunkpos; + { int yypos177= yypos, yythunkpos177= yythunkpos; if (!yymatchChar('(')) goto l177; goto l173; + l177:; yypos= yypos177; yythunkpos= yythunkpos177; + } + { int yypos178= yypos, yythunkpos178= yythunkpos; if (!yymatchChar(')')) goto l178; goto l173; + l178:; yypos= yypos178; yythunkpos= yythunkpos178; + } + { int yypos179= yypos, yythunkpos179= yythunkpos; if (!yymatchChar('>')) goto l179; goto l173; + l179:; yypos= yypos179; yythunkpos= yythunkpos179; + } if (!yy_Nonspacechar()) goto l173; goto l172; + l173:; yypos= yypos173; yythunkpos= yythunkpos173; + } goto l170; + l171:; yypos= yypos170; yythunkpos= yythunkpos170; if (!yymatchChar('(')) goto l169; if (!yy_SourceContents()) goto l169; if (!yymatchChar(')')) goto l169; + } + l170:; goto l168; + l169:; yypos= yypos169; yythunkpos= yythunkpos169; + } goto l166; + l167:; yypos= yypos166; yythunkpos= yythunkpos166; if (!yymatchString("")) goto l165; + } + l166:; + yyprintf((stderr, " ok %s @ %s\n", "SourceContents", yybuf+yypos)); + return 1; + l165:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SourceContents", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Title() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Title")); + { int yypos181= yypos, yythunkpos181= yythunkpos; if (!yy_TitleSingle()) goto l182; goto l181; + l182:; yypos= yypos181; yythunkpos= yythunkpos181; if (!yy_TitleDouble()) goto l183; goto l181; + l183:; yypos= yypos181; yythunkpos= yythunkpos181; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l180; if (!yymatchString("")) goto l180; yyText(yybegin, yyend); if (!(YY_END)) goto l180; + } + l181:; yyDo(yy_1_Title, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Title", yybuf+yypos)); + return 1; + l180:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Title", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Source() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Source")); + { int yypos185= yypos, yythunkpos185= yythunkpos; if (!yymatchChar('<')) goto l186; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l186; if (!yy_SourceContents()) goto l186; yyText(yybegin, yyend); if (!(YY_END)) goto l186; if (!yymatchChar('>')) goto l186; goto l185; + l186:; yypos= yypos185; yythunkpos= yythunkpos185; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l184; if (!yy_SourceContents()) goto l184; yyText(yybegin, yyend); if (!(YY_END)) goto l184; + } + l185:; yyDo(yy_1_Source, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Source", yybuf+yypos)); + return 1; + l184:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Source", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Label() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Label")); if (!yymatchChar('[')) goto l187; + { int yypos188= yypos, yythunkpos188= yythunkpos; + { int yypos190= yypos, yythunkpos190= yythunkpos; if (!yymatchChar('^')) goto l190; goto l189; + l190:; yypos= yypos190; yythunkpos= yythunkpos190; + } yyText(yybegin, yyend); if (!( extension(EXT_NOTES) )) goto l189; goto l188; + l189:; yypos= yypos188; yythunkpos= yythunkpos188; + { int yypos191= yypos, yythunkpos191= yythunkpos; if (!yymatchDot()) goto l187; yypos= yypos191; yythunkpos= yythunkpos191; + } yyText(yybegin, yyend); if (!( !extension(EXT_NOTES) )) goto l187; + } + l188:; if (!yy_StartList()) goto l187; yyDo(yySet, -1, 0); + l192:; + { int yypos193= yypos, yythunkpos193= yythunkpos; + { int yypos194= yypos, yythunkpos194= yythunkpos; if (!yymatchChar(']')) goto l194; goto l193; + l194:; yypos= yypos194; yythunkpos= yythunkpos194; + } if (!yy_Inline()) goto l193; yyDo(yy_1_Label, yybegin, yyend); goto l192; + l193:; yypos= yypos193; yythunkpos= yythunkpos193; + } if (!yymatchChar(']')) goto l187; yyDo(yy_2_Label, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Label", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l187:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Label", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ReferenceLinkSingle() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "ReferenceLinkSingle")); if (!yy_Label()) goto l195; yyDo(yySet, -1, 0); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l195; + { int yypos196= yypos, yythunkpos196= yythunkpos; if (!yy_Spnl()) goto l196; if (!yymatchString("[]")) goto l196; goto l197; + l196:; yypos= yypos196; yythunkpos= yythunkpos196; + } + l197:; yyText(yybegin, yyend); if (!(YY_END)) goto l195; yyDo(yy_1_ReferenceLinkSingle, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkSingle", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l195:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkSingle", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ReferenceLinkDouble() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "ReferenceLinkDouble")); if (!yy_Label()) goto l198; yyDo(yySet, -2, 0); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l198; if (!yy_Spnl()) goto l198; yyText(yybegin, yyend); if (!(YY_END)) goto l198; + { int yypos199= yypos, yythunkpos199= yythunkpos; if (!yymatchString("[]")) goto l199; goto l198; + l199:; yypos= yypos199; yythunkpos= yythunkpos199; + } if (!yy_Label()) goto l198; yyDo(yySet, -1, 0); yyDo(yy_1_ReferenceLinkDouble, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ReferenceLinkDouble", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l198:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ReferenceLinkDouble", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AutoLink() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "AutoLink")); + { int yypos201= yypos, yythunkpos201= yythunkpos; if (!yy_AutoLinkUrl()) goto l202; goto l201; + l202:; yypos= yypos201; yythunkpos= yythunkpos201; if (!yy_AutoLinkEmail()) goto l200; + } + l201:; + yyprintf((stderr, " ok %s @ %s\n", "AutoLink", yybuf+yypos)); + return 1; + l200:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AutoLink", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ReferenceLink() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "ReferenceLink")); + { int yypos204= yypos, yythunkpos204= yythunkpos; if (!yy_ReferenceLinkDouble()) goto l205; goto l204; + l205:; yypos= yypos204; yythunkpos= yythunkpos204; if (!yy_ReferenceLinkSingle()) goto l203; + } + l204:; + yyprintf((stderr, " ok %s @ %s\n", "ReferenceLink", yybuf+yypos)); + return 1; + l203:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ReferenceLink", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ExplicitLink() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 3, 0); + yyprintf((stderr, "%s\n", "ExplicitLink")); if (!yy_Label()) goto l206; yyDo(yySet, -3, 0); if (!yy_Spnl()) goto l206; if (!yymatchChar('(')) goto l206; if (!yy_Sp()) goto l206; if (!yy_Source()) goto l206; yyDo(yySet, -2, 0); if (!yy_Spnl()) goto l206; if (!yy_Title()) goto l206; yyDo(yySet, -1, 0); if (!yy_Sp()) goto l206; if (!yymatchChar(')')) goto l206; yyDo(yy_1_ExplicitLink, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ExplicitLink", yybuf+yypos)); yyDo(yyPop, 3, 0); + return 1; + l206:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ExplicitLink", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_StrongInlineUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "StrongInlineUl")); + { int yypos208= yypos, yythunkpos208= yythunkpos; if (!yy_Spnl()) goto l208; if (!yy_TwoUl()) goto l208; goto l207; + l208:; yypos= yypos208; yythunkpos= yythunkpos208; + } if (!yy_Inline()) goto l207; + yyprintf((stderr, " ok %s @ %s\n", "StrongInlineUl", yybuf+yypos)); + return 1; + l207:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "StrongInlineUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_TwoUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "TwoUl")); if (!yymatchString("__")) goto l209; + { int yypos210= yypos, yythunkpos210= yythunkpos; if (!yy_TwoUl()) goto l210; goto l209; + l210:; yypos= yypos210; yythunkpos= yythunkpos210; + } + yyprintf((stderr, " ok %s @ %s\n", "TwoUl", yybuf+yypos)); + return 1; + l209:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "TwoUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_StrongInlineStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "StrongInlineStar")); + { int yypos212= yypos, yythunkpos212= yythunkpos; if (!yy_Spnl()) goto l212; if (!yy_TwoStar()) goto l212; goto l211; + l212:; yypos= yypos212; yythunkpos= yythunkpos212; + } if (!yy_Inline()) goto l211; + yyprintf((stderr, " ok %s @ %s\n", "StrongInlineStar", yybuf+yypos)); + return 1; + l211:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "StrongInlineStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_TwoStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "TwoStar")); if (!yymatchString("**")) goto l213; + { int yypos214= yypos, yythunkpos214= yythunkpos; if (!yy_TwoStar()) goto l214; goto l213; + l214:; yypos= yypos214; yythunkpos= yythunkpos214; + } + yyprintf((stderr, " ok %s @ %s\n", "TwoStar", yybuf+yypos)); + return 1; + l213:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "TwoStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_StrongUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "StrongUl")); if (!yy_TwoUl()) goto l215; + { int yypos216= yypos, yythunkpos216= yythunkpos; if (!yy_Spacechar()) goto l216; goto l215; + l216:; yypos= yypos216; yythunkpos= yythunkpos216; + } + { int yypos217= yypos, yythunkpos217= yythunkpos; if (!yy_Newline()) goto l217; goto l215; + l217:; yypos= yypos217; yythunkpos= yythunkpos217; + } if (!yy_StartList()) goto l215; yyDo(yySet, -1, 0); if (!yy_StrongInlineUl()) goto l215; yyDo(yy_1_StrongUl, yybegin, yyend); + l218:; + { int yypos219= yypos, yythunkpos219= yythunkpos; if (!yy_StrongInlineUl()) goto l219; yyDo(yy_1_StrongUl, yybegin, yyend); goto l218; + l219:; yypos= yypos219; yythunkpos= yythunkpos219; + } if (!yy_TwoUl()) goto l215; yyDo(yy_2_StrongUl, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "StrongUl", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l215:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "StrongUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Alphanumeric() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Alphanumeric")); if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l220; + yyprintf((stderr, " ok %s @ %s\n", "Alphanumeric", yybuf+yypos)); + return 1; + l220:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Alphanumeric", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmphInlineUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EmphInlineUl")); + { int yypos222= yypos, yythunkpos222= yythunkpos; if (!yy_StrongUl()) goto l223; goto l222; + l223:; yypos= yypos222; yythunkpos= yythunkpos222; + { int yypos224= yypos, yythunkpos224= yythunkpos; if (!yy_Spnl()) goto l224; if (!yy_OneUl()) goto l224; goto l221; + l224:; yypos= yypos224; yythunkpos= yythunkpos224; + } if (!yy_Inline()) goto l221; + } + l222:; + yyprintf((stderr, " ok %s @ %s\n", "EmphInlineUl", yybuf+yypos)); + return 1; + l221:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmphInlineUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OneUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "OneUl")); if (!yymatchChar('_')) goto l225; + { int yypos226= yypos, yythunkpos226= yythunkpos; if (!yy_OneUl()) goto l226; goto l225; + l226:; yypos= yypos226; yythunkpos= yythunkpos226; + } + yyprintf((stderr, " ok %s @ %s\n", "OneUl", yybuf+yypos)); + return 1; + l225:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OneUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_StrongStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "StrongStar")); if (!yy_TwoStar()) goto l227; + { int yypos228= yypos, yythunkpos228= yythunkpos; if (!yy_Spacechar()) goto l228; goto l227; + l228:; yypos= yypos228; yythunkpos= yythunkpos228; + } + { int yypos229= yypos, yythunkpos229= yythunkpos; if (!yy_Newline()) goto l229; goto l227; + l229:; yypos= yypos229; yythunkpos= yythunkpos229; + } if (!yy_StartList()) goto l227; yyDo(yySet, -1, 0); if (!yy_StrongInlineStar()) goto l227; yyDo(yy_1_StrongStar, yybegin, yyend); + l230:; + { int yypos231= yypos, yythunkpos231= yythunkpos; if (!yy_StrongInlineStar()) goto l231; yyDo(yy_1_StrongStar, yybegin, yyend); goto l230; + l231:; yypos= yypos231; yythunkpos= yythunkpos231; + } if (!yy_TwoStar()) goto l227; yyDo(yy_2_StrongStar, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "StrongStar", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l227:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "StrongStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmphInlineStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EmphInlineStar")); + { int yypos233= yypos, yythunkpos233= yythunkpos; if (!yy_StrongStar()) goto l234; goto l233; + l234:; yypos= yypos233; yythunkpos= yythunkpos233; + { int yypos235= yypos, yythunkpos235= yythunkpos; if (!yy_Spnl()) goto l235; if (!yy_OneStar()) goto l235; goto l232; + l235:; yypos= yypos235; yythunkpos= yythunkpos235; + } if (!yy_Inline()) goto l232; + } + l233:; + yyprintf((stderr, " ok %s @ %s\n", "EmphInlineStar", yybuf+yypos)); + return 1; + l232:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmphInlineStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OneStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "OneStar")); if (!yymatchChar('*')) goto l236; + { int yypos237= yypos, yythunkpos237= yythunkpos; if (!yy_OneStar()) goto l237; goto l236; + l237:; yypos= yypos237; yythunkpos= yythunkpos237; + } + yyprintf((stderr, " ok %s @ %s\n", "OneStar", yybuf+yypos)); + return 1; + l236:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OneStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmphUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "EmphUl")); if (!yy_OneUl()) goto l238; + { int yypos239= yypos, yythunkpos239= yythunkpos; if (!yy_Spacechar()) goto l239; goto l238; + l239:; yypos= yypos239; yythunkpos= yythunkpos239; + } + { int yypos240= yypos, yythunkpos240= yythunkpos; if (!yy_Newline()) goto l240; goto l238; + l240:; yypos= yypos240; yythunkpos= yythunkpos240; + } if (!yy_StartList()) goto l238; yyDo(yySet, -1, 0); if (!yy_EmphInlineUl()) goto l238; yyDo(yy_1_EmphUl, yybegin, yyend); + l241:; + { int yypos242= yypos, yythunkpos242= yythunkpos; if (!yy_EmphInlineUl()) goto l242; yyDo(yy_1_EmphUl, yybegin, yyend); goto l241; + l242:; yypos= yypos242; yythunkpos= yythunkpos242; + } if (!yy_OneUl()) goto l238; + { int yypos243= yypos, yythunkpos243= yythunkpos; if (!yy_Alphanumeric()) goto l243; goto l238; + l243:; yypos= yypos243; yythunkpos= yythunkpos243; + } yyDo(yy_2_EmphUl, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "EmphUl", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l238:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmphUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EmphStar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "EmphStar")); if (!yy_OneStar()) goto l244; + { int yypos245= yypos, yythunkpos245= yythunkpos; if (!yy_Spacechar()) goto l245; goto l244; + l245:; yypos= yypos245; yythunkpos= yythunkpos245; + } + { int yypos246= yypos, yythunkpos246= yythunkpos; if (!yy_Newline()) goto l246; goto l244; + l246:; yypos= yypos246; yythunkpos= yythunkpos246; + } if (!yy_StartList()) goto l244; yyDo(yySet, -1, 0); if (!yy_EmphInlineStar()) goto l244; yyDo(yy_1_EmphStar, yybegin, yyend); + l247:; + { int yypos248= yypos, yythunkpos248= yythunkpos; if (!yy_EmphInlineStar()) goto l248; yyDo(yy_1_EmphStar, yybegin, yyend); goto l247; + l248:; yypos= yypos248; yythunkpos= yythunkpos248; + } if (!yy_OneStar()) goto l244; yyDo(yy_2_EmphStar, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "EmphStar", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l244:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EmphStar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SpecialChar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SpecialChar")); + { int yypos250= yypos, yythunkpos250= yythunkpos; if (!yymatchChar('*')) goto l251; goto l250; + l251:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('_')) goto l252; goto l250; + l252:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('`')) goto l253; goto l250; + l253:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('&')) goto l254; goto l250; + l254:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('[')) goto l255; goto l250; + l255:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar(']')) goto l256; goto l250; + l256:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('<')) goto l257; goto l250; + l257:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('!')) goto l258; goto l250; + l258:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yymatchChar('\\')) goto l259; goto l250; + l259:; yypos= yypos250; yythunkpos= yythunkpos250; if (!yy_ExtendedSpecialChar()) goto l249; + } + l250:; + yyprintf((stderr, " ok %s @ %s\n", "SpecialChar", yybuf+yypos)); + return 1; + l249:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SpecialChar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_NormalEndline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "NormalEndline")); if (!yy_Sp()) goto l260; if (!yy_Newline()) goto l260; + { int yypos261= yypos, yythunkpos261= yythunkpos; if (!yy_BlankLine()) goto l261; goto l260; + l261:; yypos= yypos261; yythunkpos= yythunkpos261; + } + { int yypos262= yypos, yythunkpos262= yythunkpos; if (!yy_BlockQuote()) goto l262; goto l260; + l262:; yypos= yypos262; yythunkpos= yythunkpos262; + } + { int yypos263= yypos, yythunkpos263= yythunkpos; if (!yy_AtxStart()) goto l263; goto l260; + l263:; yypos= yypos263; yythunkpos= yythunkpos263; + } + { int yypos264= yypos, yythunkpos264= yythunkpos; if (!yy_Line()) goto l264; + { int yypos265= yypos, yythunkpos265= yythunkpos; if (!yymatchString("===")) goto l266; + l267:; + { int yypos268= yypos, yythunkpos268= yythunkpos; if (!yymatchChar('=')) goto l268; goto l267; + l268:; yypos= yypos268; yythunkpos= yythunkpos268; + } goto l265; + l266:; yypos= yypos265; yythunkpos= yythunkpos265; if (!yymatchString("---")) goto l264; + l269:; + { int yypos270= yypos, yythunkpos270= yythunkpos; if (!yymatchChar('-')) goto l270; goto l269; + l270:; yypos= yypos270; yythunkpos= yythunkpos270; + } + } + l265:; if (!yy_Newline()) goto l264; goto l260; + l264:; yypos= yypos264; yythunkpos= yythunkpos264; + } yyDo(yy_1_NormalEndline, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "NormalEndline", yybuf+yypos)); + return 1; + l260:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "NormalEndline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_TerminalEndline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "TerminalEndline")); if (!yy_Sp()) goto l271; if (!yy_Newline()) goto l271; if (!yy_Eof()) goto l271; yyDo(yy_1_TerminalEndline, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "TerminalEndline", yybuf+yypos)); + return 1; + l271:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "TerminalEndline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_CharEntity() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "CharEntity")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l272; if (!yymatchChar('&')) goto l272; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l272; + l273:; + { int yypos274= yypos, yythunkpos274= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l274; goto l273; + l274:; yypos= yypos274; yythunkpos= yythunkpos274; + } if (!yymatchChar(';')) goto l272; yyText(yybegin, yyend); if (!(YY_END)) goto l272; + yyprintf((stderr, " ok %s @ %s\n", "CharEntity", yybuf+yypos)); + return 1; + l272:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "CharEntity", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_DecEntity() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "DecEntity")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l275; if (!yymatchChar('&')) goto l275; if (!yymatchChar('#')) goto l275; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l275; + l276:; + { int yypos277= yypos, yythunkpos277= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l277; goto l276; + l277:; yypos= yypos277; yythunkpos= yythunkpos277; + } yyText(yybegin, yyend); if (!(YY_END)) goto l275; if (!yymatchChar(';')) goto l275; yyText(yybegin, yyend); if (!(YY_END)) goto l275; + yyprintf((stderr, " ok %s @ %s\n", "DecEntity", yybuf+yypos)); + return 1; + l275:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "DecEntity", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HexEntity() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HexEntity")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l278; if (!yymatchChar('&')) goto l278; if (!yymatchChar('#')) goto l278; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l278; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\176\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l278; + l279:; + { int yypos280= yypos, yythunkpos280= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\176\000\000\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l280; goto l279; + l280:; yypos= yypos280; yythunkpos= yythunkpos280; + } if (!yymatchChar(';')) goto l278; yyText(yybegin, yyend); if (!(YY_END)) goto l278; + yyprintf((stderr, " ok %s @ %s\n", "HexEntity", yybuf+yypos)); + return 1; + l278:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HexEntity", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_NormalChar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "NormalChar")); + { int yypos282= yypos, yythunkpos282= yythunkpos; + { int yypos283= yypos, yythunkpos283= yythunkpos; if (!yy_SpecialChar()) goto l284; goto l283; + l284:; yypos= yypos283; yythunkpos= yythunkpos283; if (!yy_Spacechar()) goto l285; goto l283; + l285:; yypos= yypos283; yythunkpos= yythunkpos283; if (!yy_Newline()) goto l282; + } + l283:; goto l281; + l282:; yypos= yypos282; yythunkpos= yythunkpos282; + } if (!yymatchDot()) goto l281; + yyprintf((stderr, " ok %s @ %s\n", "NormalChar", yybuf+yypos)); + return 1; + l281:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "NormalChar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Symbol() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Symbol")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l286; if (!yy_SpecialChar()) goto l286; yyText(yybegin, yyend); if (!(YY_END)) goto l286; yyDo(yy_1_Symbol, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Symbol", yybuf+yypos)); + return 1; + l286:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Symbol", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Smart() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Smart")); yyText(yybegin, yyend); if (!( extension(EXT_SMART) )) goto l287; + { int yypos288= yypos, yythunkpos288= yythunkpos; if (!yy_Ellipsis()) goto l289; goto l288; + l289:; yypos= yypos288; yythunkpos= yythunkpos288; if (!yy_Dash()) goto l290; goto l288; + l290:; yypos= yypos288; yythunkpos= yythunkpos288; if (!yy_SingleQuoted()) goto l291; goto l288; + l291:; yypos= yypos288; yythunkpos= yythunkpos288; if (!yy_DoubleQuoted()) goto l292; goto l288; + l292:; yypos= yypos288; yythunkpos= yythunkpos288; if (!yy_Apostrophe()) goto l287; + } + l288:; + yyprintf((stderr, " ok %s @ %s\n", "Smart", yybuf+yypos)); + return 1; + l287:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Smart", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_EscapedChar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "EscapedChar")); if (!yymatchChar('\\')) goto l293; + { int yypos294= yypos, yythunkpos294= yythunkpos; if (!yy_Newline()) goto l294; goto l293; + l294:; yypos= yypos294; yythunkpos= yythunkpos294; + } yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l293; if (!yymatchDot()) goto l293; yyText(yybegin, yyend); if (!(YY_END)) goto l293; yyDo(yy_1_EscapedChar, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "EscapedChar", yybuf+yypos)); + return 1; + l293:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "EscapedChar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Entity() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Entity")); + { int yypos296= yypos, yythunkpos296= yythunkpos; if (!yy_HexEntity()) goto l297; goto l296; + l297:; yypos= yypos296; yythunkpos= yythunkpos296; if (!yy_DecEntity()) goto l298; goto l296; + l298:; yypos= yypos296; yythunkpos= yythunkpos296; if (!yy_CharEntity()) goto l295; + } + l296:; yyDo(yy_1_Entity, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Entity", yybuf+yypos)); + return 1; + l295:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Entity", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_RawHtml() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "RawHtml")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l299; + { int yypos300= yypos, yythunkpos300= yythunkpos; if (!yy_HtmlComment()) goto l301; goto l300; + l301:; yypos= yypos300; yythunkpos= yythunkpos300; if (!yy_HtmlTag()) goto l299; + } + l300:; yyText(yybegin, yyend); if (!(YY_END)) goto l299; yyDo(yy_1_RawHtml, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "RawHtml", yybuf+yypos)); + return 1; + l299:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "RawHtml", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Code() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Code")); + { int yypos303= yypos, yythunkpos303= yythunkpos; if (!yy_Ticks1()) goto l304; if (!yy_Sp()) goto l304; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l304; + { int yypos307= yypos, yythunkpos307= yythunkpos; + { int yypos311= yypos, yythunkpos311= yythunkpos; if (!yymatchChar('`')) goto l311; goto l308; + l311:; yypos= yypos311; yythunkpos= yythunkpos311; + } if (!yy_Nonspacechar()) goto l308; + l309:; + { int yypos310= yypos, yythunkpos310= yythunkpos; + { int yypos312= yypos, yythunkpos312= yythunkpos; if (!yymatchChar('`')) goto l312; goto l310; + l312:; yypos= yypos312; yythunkpos= yythunkpos312; + } if (!yy_Nonspacechar()) goto l310; goto l309; + l310:; yypos= yypos310; yythunkpos= yythunkpos310; + } goto l307; + l308:; yypos= yypos307; yythunkpos= yythunkpos307; + { int yypos314= yypos, yythunkpos314= yythunkpos; if (!yy_Ticks1()) goto l314; goto l313; + l314:; yypos= yypos314; yythunkpos= yythunkpos314; + } if (!yymatchChar('`')) goto l313; + l315:; + { int yypos316= yypos, yythunkpos316= yythunkpos; if (!yymatchChar('`')) goto l316; goto l315; + l316:; yypos= yypos316; yythunkpos= yythunkpos316; + } goto l307; + l313:; yypos= yypos307; yythunkpos= yythunkpos307; + { int yypos317= yypos, yythunkpos317= yythunkpos; if (!yy_Sp()) goto l317; if (!yy_Ticks1()) goto l317; goto l304; + l317:; yypos= yypos317; yythunkpos= yythunkpos317; + } + { int yypos318= yypos, yythunkpos318= yythunkpos; if (!yy_Spacechar()) goto l319; goto l318; + l319:; yypos= yypos318; yythunkpos= yythunkpos318; if (!yy_Newline()) goto l304; + { int yypos320= yypos, yythunkpos320= yythunkpos; if (!yy_BlankLine()) goto l320; goto l304; + l320:; yypos= yypos320; yythunkpos= yythunkpos320; + } + } + l318:; + } + l307:; + l305:; + { int yypos306= yypos, yythunkpos306= yythunkpos; + { int yypos321= yypos, yythunkpos321= yythunkpos; + { int yypos325= yypos, yythunkpos325= yythunkpos; if (!yymatchChar('`')) goto l325; goto l322; + l325:; yypos= yypos325; yythunkpos= yythunkpos325; + } if (!yy_Nonspacechar()) goto l322; + l323:; + { int yypos324= yypos, yythunkpos324= yythunkpos; + { int yypos326= yypos, yythunkpos326= yythunkpos; if (!yymatchChar('`')) goto l326; goto l324; + l326:; yypos= yypos326; yythunkpos= yythunkpos326; + } if (!yy_Nonspacechar()) goto l324; goto l323; + l324:; yypos= yypos324; yythunkpos= yythunkpos324; + } goto l321; + l322:; yypos= yypos321; yythunkpos= yythunkpos321; + { int yypos328= yypos, yythunkpos328= yythunkpos; if (!yy_Ticks1()) goto l328; goto l327; + l328:; yypos= yypos328; yythunkpos= yythunkpos328; + } if (!yymatchChar('`')) goto l327; + l329:; + { int yypos330= yypos, yythunkpos330= yythunkpos; if (!yymatchChar('`')) goto l330; goto l329; + l330:; yypos= yypos330; yythunkpos= yythunkpos330; + } goto l321; + l327:; yypos= yypos321; yythunkpos= yythunkpos321; + { int yypos331= yypos, yythunkpos331= yythunkpos; if (!yy_Sp()) goto l331; if (!yy_Ticks1()) goto l331; goto l306; + l331:; yypos= yypos331; yythunkpos= yythunkpos331; + } + { int yypos332= yypos, yythunkpos332= yythunkpos; if (!yy_Spacechar()) goto l333; goto l332; + l333:; yypos= yypos332; yythunkpos= yythunkpos332; if (!yy_Newline()) goto l306; + { int yypos334= yypos, yythunkpos334= yythunkpos; if (!yy_BlankLine()) goto l334; goto l306; + l334:; yypos= yypos334; yythunkpos= yythunkpos334; + } + } + l332:; + } + l321:; goto l305; + l306:; yypos= yypos306; yythunkpos= yythunkpos306; + } yyText(yybegin, yyend); if (!(YY_END)) goto l304; if (!yy_Sp()) goto l304; if (!yy_Ticks1()) goto l304; goto l303; + l304:; yypos= yypos303; yythunkpos= yythunkpos303; if (!yy_Ticks2()) goto l335; if (!yy_Sp()) goto l335; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l335; + { int yypos338= yypos, yythunkpos338= yythunkpos; + { int yypos342= yypos, yythunkpos342= yythunkpos; if (!yymatchChar('`')) goto l342; goto l339; + l342:; yypos= yypos342; yythunkpos= yythunkpos342; + } if (!yy_Nonspacechar()) goto l339; + l340:; + { int yypos341= yypos, yythunkpos341= yythunkpos; + { int yypos343= yypos, yythunkpos343= yythunkpos; if (!yymatchChar('`')) goto l343; goto l341; + l343:; yypos= yypos343; yythunkpos= yythunkpos343; + } if (!yy_Nonspacechar()) goto l341; goto l340; + l341:; yypos= yypos341; yythunkpos= yythunkpos341; + } goto l338; + l339:; yypos= yypos338; yythunkpos= yythunkpos338; + { int yypos345= yypos, yythunkpos345= yythunkpos; if (!yy_Ticks2()) goto l345; goto l344; + l345:; yypos= yypos345; yythunkpos= yythunkpos345; + } if (!yymatchChar('`')) goto l344; + l346:; + { int yypos347= yypos, yythunkpos347= yythunkpos; if (!yymatchChar('`')) goto l347; goto l346; + l347:; yypos= yypos347; yythunkpos= yythunkpos347; + } goto l338; + l344:; yypos= yypos338; yythunkpos= yythunkpos338; + { int yypos348= yypos, yythunkpos348= yythunkpos; if (!yy_Sp()) goto l348; if (!yy_Ticks2()) goto l348; goto l335; + l348:; yypos= yypos348; yythunkpos= yythunkpos348; + } + { int yypos349= yypos, yythunkpos349= yythunkpos; if (!yy_Spacechar()) goto l350; goto l349; + l350:; yypos= yypos349; yythunkpos= yythunkpos349; if (!yy_Newline()) goto l335; + { int yypos351= yypos, yythunkpos351= yythunkpos; if (!yy_BlankLine()) goto l351; goto l335; + l351:; yypos= yypos351; yythunkpos= yythunkpos351; + } + } + l349:; + } + l338:; + l336:; + { int yypos337= yypos, yythunkpos337= yythunkpos; + { int yypos352= yypos, yythunkpos352= yythunkpos; + { int yypos356= yypos, yythunkpos356= yythunkpos; if (!yymatchChar('`')) goto l356; goto l353; + l356:; yypos= yypos356; yythunkpos= yythunkpos356; + } if (!yy_Nonspacechar()) goto l353; + l354:; + { int yypos355= yypos, yythunkpos355= yythunkpos; + { int yypos357= yypos, yythunkpos357= yythunkpos; if (!yymatchChar('`')) goto l357; goto l355; + l357:; yypos= yypos357; yythunkpos= yythunkpos357; + } if (!yy_Nonspacechar()) goto l355; goto l354; + l355:; yypos= yypos355; yythunkpos= yythunkpos355; + } goto l352; + l353:; yypos= yypos352; yythunkpos= yythunkpos352; + { int yypos359= yypos, yythunkpos359= yythunkpos; if (!yy_Ticks2()) goto l359; goto l358; + l359:; yypos= yypos359; yythunkpos= yythunkpos359; + } if (!yymatchChar('`')) goto l358; + l360:; + { int yypos361= yypos, yythunkpos361= yythunkpos; if (!yymatchChar('`')) goto l361; goto l360; + l361:; yypos= yypos361; yythunkpos= yythunkpos361; + } goto l352; + l358:; yypos= yypos352; yythunkpos= yythunkpos352; + { int yypos362= yypos, yythunkpos362= yythunkpos; if (!yy_Sp()) goto l362; if (!yy_Ticks2()) goto l362; goto l337; + l362:; yypos= yypos362; yythunkpos= yythunkpos362; + } + { int yypos363= yypos, yythunkpos363= yythunkpos; if (!yy_Spacechar()) goto l364; goto l363; + l364:; yypos= yypos363; yythunkpos= yythunkpos363; if (!yy_Newline()) goto l337; + { int yypos365= yypos, yythunkpos365= yythunkpos; if (!yy_BlankLine()) goto l365; goto l337; + l365:; yypos= yypos365; yythunkpos= yythunkpos365; + } + } + l363:; + } + l352:; goto l336; + l337:; yypos= yypos337; yythunkpos= yythunkpos337; + } yyText(yybegin, yyend); if (!(YY_END)) goto l335; if (!yy_Sp()) goto l335; if (!yy_Ticks2()) goto l335; goto l303; + l335:; yypos= yypos303; yythunkpos= yythunkpos303; if (!yy_Ticks3()) goto l366; if (!yy_Sp()) goto l366; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l366; + { int yypos369= yypos, yythunkpos369= yythunkpos; + { int yypos373= yypos, yythunkpos373= yythunkpos; if (!yymatchChar('`')) goto l373; goto l370; + l373:; yypos= yypos373; yythunkpos= yythunkpos373; + } if (!yy_Nonspacechar()) goto l370; + l371:; + { int yypos372= yypos, yythunkpos372= yythunkpos; + { int yypos374= yypos, yythunkpos374= yythunkpos; if (!yymatchChar('`')) goto l374; goto l372; + l374:; yypos= yypos374; yythunkpos= yythunkpos374; + } if (!yy_Nonspacechar()) goto l372; goto l371; + l372:; yypos= yypos372; yythunkpos= yythunkpos372; + } goto l369; + l370:; yypos= yypos369; yythunkpos= yythunkpos369; + { int yypos376= yypos, yythunkpos376= yythunkpos; if (!yy_Ticks3()) goto l376; goto l375; + l376:; yypos= yypos376; yythunkpos= yythunkpos376; + } if (!yymatchChar('`')) goto l375; + l377:; + { int yypos378= yypos, yythunkpos378= yythunkpos; if (!yymatchChar('`')) goto l378; goto l377; + l378:; yypos= yypos378; yythunkpos= yythunkpos378; + } goto l369; + l375:; yypos= yypos369; yythunkpos= yythunkpos369; + { int yypos379= yypos, yythunkpos379= yythunkpos; if (!yy_Sp()) goto l379; if (!yy_Ticks3()) goto l379; goto l366; + l379:; yypos= yypos379; yythunkpos= yythunkpos379; + } + { int yypos380= yypos, yythunkpos380= yythunkpos; if (!yy_Spacechar()) goto l381; goto l380; + l381:; yypos= yypos380; yythunkpos= yythunkpos380; if (!yy_Newline()) goto l366; + { int yypos382= yypos, yythunkpos382= yythunkpos; if (!yy_BlankLine()) goto l382; goto l366; + l382:; yypos= yypos382; yythunkpos= yythunkpos382; + } + } + l380:; + } + l369:; + l367:; + { int yypos368= yypos, yythunkpos368= yythunkpos; + { int yypos383= yypos, yythunkpos383= yythunkpos; + { int yypos387= yypos, yythunkpos387= yythunkpos; if (!yymatchChar('`')) goto l387; goto l384; + l387:; yypos= yypos387; yythunkpos= yythunkpos387; + } if (!yy_Nonspacechar()) goto l384; + l385:; + { int yypos386= yypos, yythunkpos386= yythunkpos; + { int yypos388= yypos, yythunkpos388= yythunkpos; if (!yymatchChar('`')) goto l388; goto l386; + l388:; yypos= yypos388; yythunkpos= yythunkpos388; + } if (!yy_Nonspacechar()) goto l386; goto l385; + l386:; yypos= yypos386; yythunkpos= yythunkpos386; + } goto l383; + l384:; yypos= yypos383; yythunkpos= yythunkpos383; + { int yypos390= yypos, yythunkpos390= yythunkpos; if (!yy_Ticks3()) goto l390; goto l389; + l390:; yypos= yypos390; yythunkpos= yythunkpos390; + } if (!yymatchChar('`')) goto l389; + l391:; + { int yypos392= yypos, yythunkpos392= yythunkpos; if (!yymatchChar('`')) goto l392; goto l391; + l392:; yypos= yypos392; yythunkpos= yythunkpos392; + } goto l383; + l389:; yypos= yypos383; yythunkpos= yythunkpos383; + { int yypos393= yypos, yythunkpos393= yythunkpos; if (!yy_Sp()) goto l393; if (!yy_Ticks3()) goto l393; goto l368; + l393:; yypos= yypos393; yythunkpos= yythunkpos393; + } + { int yypos394= yypos, yythunkpos394= yythunkpos; if (!yy_Spacechar()) goto l395; goto l394; + l395:; yypos= yypos394; yythunkpos= yythunkpos394; if (!yy_Newline()) goto l368; + { int yypos396= yypos, yythunkpos396= yythunkpos; if (!yy_BlankLine()) goto l396; goto l368; + l396:; yypos= yypos396; yythunkpos= yythunkpos396; + } + } + l394:; + } + l383:; goto l367; + l368:; yypos= yypos368; yythunkpos= yythunkpos368; + } yyText(yybegin, yyend); if (!(YY_END)) goto l366; if (!yy_Sp()) goto l366; if (!yy_Ticks3()) goto l366; goto l303; + l366:; yypos= yypos303; yythunkpos= yythunkpos303; if (!yy_Ticks4()) goto l397; if (!yy_Sp()) goto l397; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l397; + { int yypos400= yypos, yythunkpos400= yythunkpos; + { int yypos404= yypos, yythunkpos404= yythunkpos; if (!yymatchChar('`')) goto l404; goto l401; + l404:; yypos= yypos404; yythunkpos= yythunkpos404; + } if (!yy_Nonspacechar()) goto l401; + l402:; + { int yypos403= yypos, yythunkpos403= yythunkpos; + { int yypos405= yypos, yythunkpos405= yythunkpos; if (!yymatchChar('`')) goto l405; goto l403; + l405:; yypos= yypos405; yythunkpos= yythunkpos405; + } if (!yy_Nonspacechar()) goto l403; goto l402; + l403:; yypos= yypos403; yythunkpos= yythunkpos403; + } goto l400; + l401:; yypos= yypos400; yythunkpos= yythunkpos400; + { int yypos407= yypos, yythunkpos407= yythunkpos; if (!yy_Ticks4()) goto l407; goto l406; + l407:; yypos= yypos407; yythunkpos= yythunkpos407; + } if (!yymatchChar('`')) goto l406; + l408:; + { int yypos409= yypos, yythunkpos409= yythunkpos; if (!yymatchChar('`')) goto l409; goto l408; + l409:; yypos= yypos409; yythunkpos= yythunkpos409; + } goto l400; + l406:; yypos= yypos400; yythunkpos= yythunkpos400; + { int yypos410= yypos, yythunkpos410= yythunkpos; if (!yy_Sp()) goto l410; if (!yy_Ticks4()) goto l410; goto l397; + l410:; yypos= yypos410; yythunkpos= yythunkpos410; + } + { int yypos411= yypos, yythunkpos411= yythunkpos; if (!yy_Spacechar()) goto l412; goto l411; + l412:; yypos= yypos411; yythunkpos= yythunkpos411; if (!yy_Newline()) goto l397; + { int yypos413= yypos, yythunkpos413= yythunkpos; if (!yy_BlankLine()) goto l413; goto l397; + l413:; yypos= yypos413; yythunkpos= yythunkpos413; + } + } + l411:; + } + l400:; + l398:; + { int yypos399= yypos, yythunkpos399= yythunkpos; + { int yypos414= yypos, yythunkpos414= yythunkpos; + { int yypos418= yypos, yythunkpos418= yythunkpos; if (!yymatchChar('`')) goto l418; goto l415; + l418:; yypos= yypos418; yythunkpos= yythunkpos418; + } if (!yy_Nonspacechar()) goto l415; + l416:; + { int yypos417= yypos, yythunkpos417= yythunkpos; + { int yypos419= yypos, yythunkpos419= yythunkpos; if (!yymatchChar('`')) goto l419; goto l417; + l419:; yypos= yypos419; yythunkpos= yythunkpos419; + } if (!yy_Nonspacechar()) goto l417; goto l416; + l417:; yypos= yypos417; yythunkpos= yythunkpos417; + } goto l414; + l415:; yypos= yypos414; yythunkpos= yythunkpos414; + { int yypos421= yypos, yythunkpos421= yythunkpos; if (!yy_Ticks4()) goto l421; goto l420; + l421:; yypos= yypos421; yythunkpos= yythunkpos421; + } if (!yymatchChar('`')) goto l420; + l422:; + { int yypos423= yypos, yythunkpos423= yythunkpos; if (!yymatchChar('`')) goto l423; goto l422; + l423:; yypos= yypos423; yythunkpos= yythunkpos423; + } goto l414; + l420:; yypos= yypos414; yythunkpos= yythunkpos414; + { int yypos424= yypos, yythunkpos424= yythunkpos; if (!yy_Sp()) goto l424; if (!yy_Ticks4()) goto l424; goto l399; + l424:; yypos= yypos424; yythunkpos= yythunkpos424; + } + { int yypos425= yypos, yythunkpos425= yythunkpos; if (!yy_Spacechar()) goto l426; goto l425; + l426:; yypos= yypos425; yythunkpos= yythunkpos425; if (!yy_Newline()) goto l399; + { int yypos427= yypos, yythunkpos427= yythunkpos; if (!yy_BlankLine()) goto l427; goto l399; + l427:; yypos= yypos427; yythunkpos= yythunkpos427; + } + } + l425:; + } + l414:; goto l398; + l399:; yypos= yypos399; yythunkpos= yythunkpos399; + } yyText(yybegin, yyend); if (!(YY_END)) goto l397; if (!yy_Sp()) goto l397; if (!yy_Ticks4()) goto l397; goto l303; + l397:; yypos= yypos303; yythunkpos= yythunkpos303; if (!yy_Ticks5()) goto l302; if (!yy_Sp()) goto l302; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l302; + { int yypos430= yypos, yythunkpos430= yythunkpos; + { int yypos434= yypos, yythunkpos434= yythunkpos; if (!yymatchChar('`')) goto l434; goto l431; + l434:; yypos= yypos434; yythunkpos= yythunkpos434; + } if (!yy_Nonspacechar()) goto l431; + l432:; + { int yypos433= yypos, yythunkpos433= yythunkpos; + { int yypos435= yypos, yythunkpos435= yythunkpos; if (!yymatchChar('`')) goto l435; goto l433; + l435:; yypos= yypos435; yythunkpos= yythunkpos435; + } if (!yy_Nonspacechar()) goto l433; goto l432; + l433:; yypos= yypos433; yythunkpos= yythunkpos433; + } goto l430; + l431:; yypos= yypos430; yythunkpos= yythunkpos430; + { int yypos437= yypos, yythunkpos437= yythunkpos; if (!yy_Ticks5()) goto l437; goto l436; + l437:; yypos= yypos437; yythunkpos= yythunkpos437; + } if (!yymatchChar('`')) goto l436; + l438:; + { int yypos439= yypos, yythunkpos439= yythunkpos; if (!yymatchChar('`')) goto l439; goto l438; + l439:; yypos= yypos439; yythunkpos= yythunkpos439; + } goto l430; + l436:; yypos= yypos430; yythunkpos= yythunkpos430; + { int yypos440= yypos, yythunkpos440= yythunkpos; if (!yy_Sp()) goto l440; if (!yy_Ticks5()) goto l440; goto l302; + l440:; yypos= yypos440; yythunkpos= yythunkpos440; + } + { int yypos441= yypos, yythunkpos441= yythunkpos; if (!yy_Spacechar()) goto l442; goto l441; + l442:; yypos= yypos441; yythunkpos= yythunkpos441; if (!yy_Newline()) goto l302; + { int yypos443= yypos, yythunkpos443= yythunkpos; if (!yy_BlankLine()) goto l443; goto l302; + l443:; yypos= yypos443; yythunkpos= yythunkpos443; + } + } + l441:; + } + l430:; + l428:; + { int yypos429= yypos, yythunkpos429= yythunkpos; + { int yypos444= yypos, yythunkpos444= yythunkpos; + { int yypos448= yypos, yythunkpos448= yythunkpos; if (!yymatchChar('`')) goto l448; goto l445; + l448:; yypos= yypos448; yythunkpos= yythunkpos448; + } if (!yy_Nonspacechar()) goto l445; + l446:; + { int yypos447= yypos, yythunkpos447= yythunkpos; + { int yypos449= yypos, yythunkpos449= yythunkpos; if (!yymatchChar('`')) goto l449; goto l447; + l449:; yypos= yypos449; yythunkpos= yythunkpos449; + } if (!yy_Nonspacechar()) goto l447; goto l446; + l447:; yypos= yypos447; yythunkpos= yythunkpos447; + } goto l444; + l445:; yypos= yypos444; yythunkpos= yythunkpos444; + { int yypos451= yypos, yythunkpos451= yythunkpos; if (!yy_Ticks5()) goto l451; goto l450; + l451:; yypos= yypos451; yythunkpos= yythunkpos451; + } if (!yymatchChar('`')) goto l450; + l452:; + { int yypos453= yypos, yythunkpos453= yythunkpos; if (!yymatchChar('`')) goto l453; goto l452; + l453:; yypos= yypos453; yythunkpos= yythunkpos453; + } goto l444; + l450:; yypos= yypos444; yythunkpos= yythunkpos444; + { int yypos454= yypos, yythunkpos454= yythunkpos; if (!yy_Sp()) goto l454; if (!yy_Ticks5()) goto l454; goto l429; + l454:; yypos= yypos454; yythunkpos= yythunkpos454; + } + { int yypos455= yypos, yythunkpos455= yythunkpos; if (!yy_Spacechar()) goto l456; goto l455; + l456:; yypos= yypos455; yythunkpos= yythunkpos455; if (!yy_Newline()) goto l429; + { int yypos457= yypos, yythunkpos457= yythunkpos; if (!yy_BlankLine()) goto l457; goto l429; + l457:; yypos= yypos457; yythunkpos= yythunkpos457; + } + } + l455:; + } + l444:; goto l428; + l429:; yypos= yypos429; yythunkpos= yythunkpos429; + } yyText(yybegin, yyend); if (!(YY_END)) goto l302; if (!yy_Sp()) goto l302; if (!yy_Ticks5()) goto l302; + } + l303:; yyDo(yy_1_Code, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Code", yybuf+yypos)); + return 1; + l302:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Code", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_InlineNote() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "InlineNote")); yyText(yybegin, yyend); if (!( extension(EXT_NOTES) )) goto l458; if (!yymatchString("^[")) goto l458; if (!yy_StartList()) goto l458; yyDo(yySet, -1, 0); + { int yypos461= yypos, yythunkpos461= yythunkpos; if (!yymatchChar(']')) goto l461; goto l458; + l461:; yypos= yypos461; yythunkpos= yythunkpos461; + } if (!yy_Inline()) goto l458; yyDo(yy_1_InlineNote, yybegin, yyend); + l459:; + { int yypos460= yypos, yythunkpos460= yythunkpos; + { int yypos462= yypos, yythunkpos462= yythunkpos; if (!yymatchChar(']')) goto l462; goto l460; + l462:; yypos= yypos462; yythunkpos= yythunkpos462; + } if (!yy_Inline()) goto l460; yyDo(yy_1_InlineNote, yybegin, yyend); goto l459; + l460:; yypos= yypos460; yythunkpos= yythunkpos460; + } if (!yymatchChar(']')) goto l458; yyDo(yy_2_InlineNote, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "InlineNote", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l458:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "InlineNote", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_NoteReference() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "NoteReference")); yyText(yybegin, yyend); if (!( extension(EXT_NOTES) )) goto l463; if (!yy_RawNoteReference()) goto l463; yyDo(yySet, -1, 0); yyDo(yy_1_NoteReference, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "NoteReference", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l463:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "NoteReference", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Link() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Link")); + { int yypos465= yypos, yythunkpos465= yythunkpos; if (!yy_ExplicitLink()) goto l466; goto l465; + l466:; yypos= yypos465; yythunkpos= yythunkpos465; if (!yy_ReferenceLink()) goto l467; goto l465; + l467:; yypos= yypos465; yythunkpos= yythunkpos465; if (!yy_AutoLink()) goto l464; + } + l465:; + yyprintf((stderr, " ok %s @ %s\n", "Link", yybuf+yypos)); + return 1; + l464:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Link", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Image() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Image")); if (!yymatchChar('!')) goto l468; + { int yypos469= yypos, yythunkpos469= yythunkpos; if (!yy_ExplicitLink()) goto l470; goto l469; + l470:; yypos= yypos469; yythunkpos= yythunkpos469; if (!yy_ReferenceLink()) goto l468; + } + l469:; yyDo(yy_1_Image, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Image", yybuf+yypos)); + return 1; + l468:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Image", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Emph() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Emph")); + { int yypos472= yypos, yythunkpos472= yythunkpos; if (!yy_EmphStar()) goto l473; goto l472; + l473:; yypos= yypos472; yythunkpos= yythunkpos472; if (!yy_EmphUl()) goto l471; + } + l472:; + yyprintf((stderr, " ok %s @ %s\n", "Emph", yybuf+yypos)); + return 1; + l471:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Emph", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Strong() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Strong")); + { int yypos475= yypos, yythunkpos475= yythunkpos; if (!yy_StrongStar()) goto l476; goto l475; + l476:; yypos= yypos475; yythunkpos= yythunkpos475; if (!yy_StrongUl()) goto l474; + } + l475:; + yyprintf((stderr, " ok %s @ %s\n", "Strong", yybuf+yypos)); + return 1; + l474:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Strong", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Space() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Space")); if (!yy_Spacechar()) goto l477; + l478:; + { int yypos479= yypos, yythunkpos479= yythunkpos; if (!yy_Spacechar()) goto l479; goto l478; + l479:; yypos= yypos479; yythunkpos= yythunkpos479; + } yyDo(yy_1_Space, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Space", yybuf+yypos)); + return 1; + l477:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Space", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_LineBreak() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "LineBreak")); if (!yymatchString(" ")) goto l480; if (!yy_Endline()) goto l480; yyDo(yy_1_LineBreak, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "LineBreak", yybuf+yypos)); + return 1; + l480:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "LineBreak", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Str() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Str")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l481; if (!yy_NormalChar()) goto l481; + l482:; + { int yypos483= yypos, yythunkpos483= yythunkpos; if (!yy_NormalChar()) goto l483; goto l482; + l483:; yypos= yypos483; yythunkpos= yythunkpos483; + } yyText(yybegin, yyend); if (!(YY_END)) goto l481; yyDo(yy_1_Str, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Str", yybuf+yypos)); + return 1; + l481:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Str", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockType() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockType")); + { int yypos485= yypos, yythunkpos485= yythunkpos; if (!yymatchString("address")) goto l486; goto l485; + l486:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("blockquote")) goto l487; goto l485; + l487:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("center")) goto l488; goto l485; + l488:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("dir")) goto l489; goto l485; + l489:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("div")) goto l490; goto l485; + l490:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("dl")) goto l491; goto l485; + l491:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("fieldset")) goto l492; goto l485; + l492:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("form")) goto l493; goto l485; + l493:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h1")) goto l494; goto l485; + l494:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h2")) goto l495; goto l485; + l495:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h3")) goto l496; goto l485; + l496:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h4")) goto l497; goto l485; + l497:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h5")) goto l498; goto l485; + l498:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("h6")) goto l499; goto l485; + l499:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("hr")) goto l500; goto l485; + l500:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("isindex")) goto l501; goto l485; + l501:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("menu")) goto l502; goto l485; + l502:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("noframes")) goto l503; goto l485; + l503:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("noscript")) goto l504; goto l485; + l504:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("ol")) goto l505; goto l485; + l505:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchChar('p')) goto l506; goto l485; + l506:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("pre")) goto l507; goto l485; + l507:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("table")) goto l508; goto l485; + l508:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("ul")) goto l509; goto l485; + l509:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("dd")) goto l510; goto l485; + l510:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("dt")) goto l511; goto l485; + l511:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("frameset")) goto l512; goto l485; + l512:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("li")) goto l513; goto l485; + l513:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("tbody")) goto l514; goto l485; + l514:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("td")) goto l515; goto l485; + l515:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("tfoot")) goto l516; goto l485; + l516:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("th")) goto l517; goto l485; + l517:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("thead")) goto l518; goto l485; + l518:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("tr")) goto l519; goto l485; + l519:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("script")) goto l520; goto l485; + l520:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("ADDRESS")) goto l521; goto l485; + l521:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("BLOCKQUOTE")) goto l522; goto l485; + l522:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("CENTER")) goto l523; goto l485; + l523:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("DIR")) goto l524; goto l485; + l524:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("DIV")) goto l525; goto l485; + l525:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("DL")) goto l526; goto l485; + l526:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("FIELDSET")) goto l527; goto l485; + l527:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("FORM")) goto l528; goto l485; + l528:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H1")) goto l529; goto l485; + l529:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H2")) goto l530; goto l485; + l530:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H3")) goto l531; goto l485; + l531:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H4")) goto l532; goto l485; + l532:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H5")) goto l533; goto l485; + l533:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("H6")) goto l534; goto l485; + l534:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("HR")) goto l535; goto l485; + l535:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("ISINDEX")) goto l536; goto l485; + l536:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("MENU")) goto l537; goto l485; + l537:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("NOFRAMES")) goto l538; goto l485; + l538:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("NOSCRIPT")) goto l539; goto l485; + l539:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("OL")) goto l540; goto l485; + l540:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchChar('P')) goto l541; goto l485; + l541:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("PRE")) goto l542; goto l485; + l542:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TABLE")) goto l543; goto l485; + l543:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("UL")) goto l544; goto l485; + l544:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("DD")) goto l545; goto l485; + l545:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("DT")) goto l546; goto l485; + l546:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("FRAMESET")) goto l547; goto l485; + l547:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("LI")) goto l548; goto l485; + l548:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TBODY")) goto l549; goto l485; + l549:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TD")) goto l550; goto l485; + l550:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TFOOT")) goto l551; goto l485; + l551:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TH")) goto l552; goto l485; + l552:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("THEAD")) goto l553; goto l485; + l553:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("TR")) goto l554; goto l485; + l554:; yypos= yypos485; yythunkpos= yythunkpos485; if (!yymatchString("SCRIPT")) goto l484; + } + l485:; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockType", yybuf+yypos)); + return 1; + l484:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockType", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockSelfClosing() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockSelfClosing")); if (!yymatchChar('<')) goto l555; if (!yy_Spnl()) goto l555; if (!yy_HtmlBlockType()) goto l555; if (!yy_Spnl()) goto l555; + l556:; + { int yypos557= yypos, yythunkpos557= yythunkpos; if (!yy_HtmlAttribute()) goto l557; goto l556; + l557:; yypos= yypos557; yythunkpos= yythunkpos557; + } if (!yymatchChar('/')) goto l555; if (!yy_Spnl()) goto l555; if (!yymatchChar('>')) goto l555; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockSelfClosing", yybuf+yypos)); + return 1; + l555:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockSelfClosing", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlComment() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlComment")); if (!yymatchString("")) goto l561; goto l560; + l561:; yypos= yypos561; yythunkpos= yythunkpos561; + } if (!yymatchDot()) goto l560; goto l559; + l560:; yypos= yypos560; yythunkpos= yythunkpos560; + } if (!yymatchString("-->")) goto l558; + yyprintf((stderr, " ok %s @ %s\n", "HtmlComment", yybuf+yypos)); + return 1; + l558:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlComment", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockInTags() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockInTags")); + { int yypos563= yypos, yythunkpos563= yythunkpos; if (!yy_HtmlBlockOpenAddress()) goto l564; + l565:; + { int yypos566= yypos, yythunkpos566= yythunkpos; + { int yypos567= yypos, yythunkpos567= yythunkpos; if (!yy_HtmlBlockInTags()) goto l568; goto l567; + l568:; yypos= yypos567; yythunkpos= yythunkpos567; + { int yypos569= yypos, yythunkpos569= yythunkpos; if (!yy_HtmlBlockCloseAddress()) goto l569; goto l566; + l569:; yypos= yypos569; yythunkpos= yythunkpos569; + } if (!yymatchDot()) goto l566; + } + l567:; goto l565; + l566:; yypos= yypos566; yythunkpos= yythunkpos566; + } if (!yy_HtmlBlockCloseAddress()) goto l564; goto l563; + l564:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenBlockquote()) goto l570; + l571:; + { int yypos572= yypos, yythunkpos572= yythunkpos; + { int yypos573= yypos, yythunkpos573= yythunkpos; if (!yy_HtmlBlockInTags()) goto l574; goto l573; + l574:; yypos= yypos573; yythunkpos= yythunkpos573; + { int yypos575= yypos, yythunkpos575= yythunkpos; if (!yy_HtmlBlockCloseBlockquote()) goto l575; goto l572; + l575:; yypos= yypos575; yythunkpos= yythunkpos575; + } if (!yymatchDot()) goto l572; + } + l573:; goto l571; + l572:; yypos= yypos572; yythunkpos= yythunkpos572; + } if (!yy_HtmlBlockCloseBlockquote()) goto l570; goto l563; + l570:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenCenter()) goto l576; + l577:; + { int yypos578= yypos, yythunkpos578= yythunkpos; + { int yypos579= yypos, yythunkpos579= yythunkpos; if (!yy_HtmlBlockInTags()) goto l580; goto l579; + l580:; yypos= yypos579; yythunkpos= yythunkpos579; + { int yypos581= yypos, yythunkpos581= yythunkpos; if (!yy_HtmlBlockCloseCenter()) goto l581; goto l578; + l581:; yypos= yypos581; yythunkpos= yythunkpos581; + } if (!yymatchDot()) goto l578; + } + l579:; goto l577; + l578:; yypos= yypos578; yythunkpos= yythunkpos578; + } if (!yy_HtmlBlockCloseCenter()) goto l576; goto l563; + l576:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenDir()) goto l582; + l583:; + { int yypos584= yypos, yythunkpos584= yythunkpos; + { int yypos585= yypos, yythunkpos585= yythunkpos; if (!yy_HtmlBlockInTags()) goto l586; goto l585; + l586:; yypos= yypos585; yythunkpos= yythunkpos585; + { int yypos587= yypos, yythunkpos587= yythunkpos; if (!yy_HtmlBlockCloseDir()) goto l587; goto l584; + l587:; yypos= yypos587; yythunkpos= yythunkpos587; + } if (!yymatchDot()) goto l584; + } + l585:; goto l583; + l584:; yypos= yypos584; yythunkpos= yythunkpos584; + } if (!yy_HtmlBlockCloseDir()) goto l582; goto l563; + l582:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenDiv()) goto l588; + l589:; + { int yypos590= yypos, yythunkpos590= yythunkpos; + { int yypos591= yypos, yythunkpos591= yythunkpos; if (!yy_HtmlBlockInTags()) goto l592; goto l591; + l592:; yypos= yypos591; yythunkpos= yythunkpos591; + { int yypos593= yypos, yythunkpos593= yythunkpos; if (!yy_HtmlBlockCloseDiv()) goto l593; goto l590; + l593:; yypos= yypos593; yythunkpos= yythunkpos593; + } if (!yymatchDot()) goto l590; + } + l591:; goto l589; + l590:; yypos= yypos590; yythunkpos= yythunkpos590; + } if (!yy_HtmlBlockCloseDiv()) goto l588; goto l563; + l588:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenDl()) goto l594; + l595:; + { int yypos596= yypos, yythunkpos596= yythunkpos; + { int yypos597= yypos, yythunkpos597= yythunkpos; if (!yy_HtmlBlockInTags()) goto l598; goto l597; + l598:; yypos= yypos597; yythunkpos= yythunkpos597; + { int yypos599= yypos, yythunkpos599= yythunkpos; if (!yy_HtmlBlockCloseDl()) goto l599; goto l596; + l599:; yypos= yypos599; yythunkpos= yythunkpos599; + } if (!yymatchDot()) goto l596; + } + l597:; goto l595; + l596:; yypos= yypos596; yythunkpos= yythunkpos596; + } if (!yy_HtmlBlockCloseDl()) goto l594; goto l563; + l594:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenFieldset()) goto l600; + l601:; + { int yypos602= yypos, yythunkpos602= yythunkpos; + { int yypos603= yypos, yythunkpos603= yythunkpos; if (!yy_HtmlBlockInTags()) goto l604; goto l603; + l604:; yypos= yypos603; yythunkpos= yythunkpos603; + { int yypos605= yypos, yythunkpos605= yythunkpos; if (!yy_HtmlBlockCloseFieldset()) goto l605; goto l602; + l605:; yypos= yypos605; yythunkpos= yythunkpos605; + } if (!yymatchDot()) goto l602; + } + l603:; goto l601; + l602:; yypos= yypos602; yythunkpos= yythunkpos602; + } if (!yy_HtmlBlockCloseFieldset()) goto l600; goto l563; + l600:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenForm()) goto l606; + l607:; + { int yypos608= yypos, yythunkpos608= yythunkpos; + { int yypos609= yypos, yythunkpos609= yythunkpos; if (!yy_HtmlBlockInTags()) goto l610; goto l609; + l610:; yypos= yypos609; yythunkpos= yythunkpos609; + { int yypos611= yypos, yythunkpos611= yythunkpos; if (!yy_HtmlBlockCloseForm()) goto l611; goto l608; + l611:; yypos= yypos611; yythunkpos= yythunkpos611; + } if (!yymatchDot()) goto l608; + } + l609:; goto l607; + l608:; yypos= yypos608; yythunkpos= yythunkpos608; + } if (!yy_HtmlBlockCloseForm()) goto l606; goto l563; + l606:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH1()) goto l612; + l613:; + { int yypos614= yypos, yythunkpos614= yythunkpos; + { int yypos615= yypos, yythunkpos615= yythunkpos; if (!yy_HtmlBlockInTags()) goto l616; goto l615; + l616:; yypos= yypos615; yythunkpos= yythunkpos615; + { int yypos617= yypos, yythunkpos617= yythunkpos; if (!yy_HtmlBlockCloseH1()) goto l617; goto l614; + l617:; yypos= yypos617; yythunkpos= yythunkpos617; + } if (!yymatchDot()) goto l614; + } + l615:; goto l613; + l614:; yypos= yypos614; yythunkpos= yythunkpos614; + } if (!yy_HtmlBlockCloseH1()) goto l612; goto l563; + l612:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH2()) goto l618; + l619:; + { int yypos620= yypos, yythunkpos620= yythunkpos; + { int yypos621= yypos, yythunkpos621= yythunkpos; if (!yy_HtmlBlockInTags()) goto l622; goto l621; + l622:; yypos= yypos621; yythunkpos= yythunkpos621; + { int yypos623= yypos, yythunkpos623= yythunkpos; if (!yy_HtmlBlockCloseH2()) goto l623; goto l620; + l623:; yypos= yypos623; yythunkpos= yythunkpos623; + } if (!yymatchDot()) goto l620; + } + l621:; goto l619; + l620:; yypos= yypos620; yythunkpos= yythunkpos620; + } if (!yy_HtmlBlockCloseH2()) goto l618; goto l563; + l618:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH3()) goto l624; + l625:; + { int yypos626= yypos, yythunkpos626= yythunkpos; + { int yypos627= yypos, yythunkpos627= yythunkpos; if (!yy_HtmlBlockInTags()) goto l628; goto l627; + l628:; yypos= yypos627; yythunkpos= yythunkpos627; + { int yypos629= yypos, yythunkpos629= yythunkpos; if (!yy_HtmlBlockCloseH3()) goto l629; goto l626; + l629:; yypos= yypos629; yythunkpos= yythunkpos629; + } if (!yymatchDot()) goto l626; + } + l627:; goto l625; + l626:; yypos= yypos626; yythunkpos= yythunkpos626; + } if (!yy_HtmlBlockCloseH3()) goto l624; goto l563; + l624:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH4()) goto l630; + l631:; + { int yypos632= yypos, yythunkpos632= yythunkpos; + { int yypos633= yypos, yythunkpos633= yythunkpos; if (!yy_HtmlBlockInTags()) goto l634; goto l633; + l634:; yypos= yypos633; yythunkpos= yythunkpos633; + { int yypos635= yypos, yythunkpos635= yythunkpos; if (!yy_HtmlBlockCloseH4()) goto l635; goto l632; + l635:; yypos= yypos635; yythunkpos= yythunkpos635; + } if (!yymatchDot()) goto l632; + } + l633:; goto l631; + l632:; yypos= yypos632; yythunkpos= yythunkpos632; + } if (!yy_HtmlBlockCloseH4()) goto l630; goto l563; + l630:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH5()) goto l636; + l637:; + { int yypos638= yypos, yythunkpos638= yythunkpos; + { int yypos639= yypos, yythunkpos639= yythunkpos; if (!yy_HtmlBlockInTags()) goto l640; goto l639; + l640:; yypos= yypos639; yythunkpos= yythunkpos639; + { int yypos641= yypos, yythunkpos641= yythunkpos; if (!yy_HtmlBlockCloseH5()) goto l641; goto l638; + l641:; yypos= yypos641; yythunkpos= yythunkpos641; + } if (!yymatchDot()) goto l638; + } + l639:; goto l637; + l638:; yypos= yypos638; yythunkpos= yythunkpos638; + } if (!yy_HtmlBlockCloseH5()) goto l636; goto l563; + l636:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenH6()) goto l642; + l643:; + { int yypos644= yypos, yythunkpos644= yythunkpos; + { int yypos645= yypos, yythunkpos645= yythunkpos; if (!yy_HtmlBlockInTags()) goto l646; goto l645; + l646:; yypos= yypos645; yythunkpos= yythunkpos645; + { int yypos647= yypos, yythunkpos647= yythunkpos; if (!yy_HtmlBlockCloseH6()) goto l647; goto l644; + l647:; yypos= yypos647; yythunkpos= yythunkpos647; + } if (!yymatchDot()) goto l644; + } + l645:; goto l643; + l644:; yypos= yypos644; yythunkpos= yythunkpos644; + } if (!yy_HtmlBlockCloseH6()) goto l642; goto l563; + l642:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenHr()) goto l648; + l649:; + { int yypos650= yypos, yythunkpos650= yythunkpos; + { int yypos651= yypos, yythunkpos651= yythunkpos; if (!yy_HtmlBlockInTags()) goto l652; goto l651; + l652:; yypos= yypos651; yythunkpos= yythunkpos651; + { int yypos653= yypos, yythunkpos653= yythunkpos; if (!yy_HtmlBlockCloseHr()) goto l653; goto l650; + l653:; yypos= yypos653; yythunkpos= yythunkpos653; + } if (!yymatchDot()) goto l650; + } + l651:; goto l649; + l650:; yypos= yypos650; yythunkpos= yythunkpos650; + } if (!yy_HtmlBlockCloseHr()) goto l648; goto l563; + l648:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenIsindex()) goto l654; + l655:; + { int yypos656= yypos, yythunkpos656= yythunkpos; + { int yypos657= yypos, yythunkpos657= yythunkpos; if (!yy_HtmlBlockInTags()) goto l658; goto l657; + l658:; yypos= yypos657; yythunkpos= yythunkpos657; + { int yypos659= yypos, yythunkpos659= yythunkpos; if (!yy_HtmlBlockCloseIsindex()) goto l659; goto l656; + l659:; yypos= yypos659; yythunkpos= yythunkpos659; + } if (!yymatchDot()) goto l656; + } + l657:; goto l655; + l656:; yypos= yypos656; yythunkpos= yythunkpos656; + } if (!yy_HtmlBlockCloseIsindex()) goto l654; goto l563; + l654:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenMenu()) goto l660; + l661:; + { int yypos662= yypos, yythunkpos662= yythunkpos; + { int yypos663= yypos, yythunkpos663= yythunkpos; if (!yy_HtmlBlockInTags()) goto l664; goto l663; + l664:; yypos= yypos663; yythunkpos= yythunkpos663; + { int yypos665= yypos, yythunkpos665= yythunkpos; if (!yy_HtmlBlockCloseMenu()) goto l665; goto l662; + l665:; yypos= yypos665; yythunkpos= yythunkpos665; + } if (!yymatchDot()) goto l662; + } + l663:; goto l661; + l662:; yypos= yypos662; yythunkpos= yythunkpos662; + } if (!yy_HtmlBlockCloseMenu()) goto l660; goto l563; + l660:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenNoframes()) goto l666; + l667:; + { int yypos668= yypos, yythunkpos668= yythunkpos; + { int yypos669= yypos, yythunkpos669= yythunkpos; if (!yy_HtmlBlockInTags()) goto l670; goto l669; + l670:; yypos= yypos669; yythunkpos= yythunkpos669; + { int yypos671= yypos, yythunkpos671= yythunkpos; if (!yy_HtmlBlockCloseNoframes()) goto l671; goto l668; + l671:; yypos= yypos671; yythunkpos= yythunkpos671; + } if (!yymatchDot()) goto l668; + } + l669:; goto l667; + l668:; yypos= yypos668; yythunkpos= yythunkpos668; + } if (!yy_HtmlBlockCloseNoframes()) goto l666; goto l563; + l666:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenNoscript()) goto l672; + l673:; + { int yypos674= yypos, yythunkpos674= yythunkpos; + { int yypos675= yypos, yythunkpos675= yythunkpos; if (!yy_HtmlBlockInTags()) goto l676; goto l675; + l676:; yypos= yypos675; yythunkpos= yythunkpos675; + { int yypos677= yypos, yythunkpos677= yythunkpos; if (!yy_HtmlBlockCloseNoscript()) goto l677; goto l674; + l677:; yypos= yypos677; yythunkpos= yythunkpos677; + } if (!yymatchDot()) goto l674; + } + l675:; goto l673; + l674:; yypos= yypos674; yythunkpos= yythunkpos674; + } if (!yy_HtmlBlockCloseNoscript()) goto l672; goto l563; + l672:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenOl()) goto l678; + l679:; + { int yypos680= yypos, yythunkpos680= yythunkpos; + { int yypos681= yypos, yythunkpos681= yythunkpos; if (!yy_HtmlBlockInTags()) goto l682; goto l681; + l682:; yypos= yypos681; yythunkpos= yythunkpos681; + { int yypos683= yypos, yythunkpos683= yythunkpos; if (!yy_HtmlBlockCloseOl()) goto l683; goto l680; + l683:; yypos= yypos683; yythunkpos= yythunkpos683; + } if (!yymatchDot()) goto l680; + } + l681:; goto l679; + l680:; yypos= yypos680; yythunkpos= yythunkpos680; + } if (!yy_HtmlBlockCloseOl()) goto l678; goto l563; + l678:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenP()) goto l684; + l685:; + { int yypos686= yypos, yythunkpos686= yythunkpos; + { int yypos687= yypos, yythunkpos687= yythunkpos; if (!yy_HtmlBlockInTags()) goto l688; goto l687; + l688:; yypos= yypos687; yythunkpos= yythunkpos687; + { int yypos689= yypos, yythunkpos689= yythunkpos; if (!yy_HtmlBlockCloseP()) goto l689; goto l686; + l689:; yypos= yypos689; yythunkpos= yythunkpos689; + } if (!yymatchDot()) goto l686; + } + l687:; goto l685; + l686:; yypos= yypos686; yythunkpos= yythunkpos686; + } if (!yy_HtmlBlockCloseP()) goto l684; goto l563; + l684:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenPre()) goto l690; + l691:; + { int yypos692= yypos, yythunkpos692= yythunkpos; + { int yypos693= yypos, yythunkpos693= yythunkpos; if (!yy_HtmlBlockInTags()) goto l694; goto l693; + l694:; yypos= yypos693; yythunkpos= yythunkpos693; + { int yypos695= yypos, yythunkpos695= yythunkpos; if (!yy_HtmlBlockClosePre()) goto l695; goto l692; + l695:; yypos= yypos695; yythunkpos= yythunkpos695; + } if (!yymatchDot()) goto l692; + } + l693:; goto l691; + l692:; yypos= yypos692; yythunkpos= yythunkpos692; + } if (!yy_HtmlBlockClosePre()) goto l690; goto l563; + l690:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTable()) goto l696; + l697:; + { int yypos698= yypos, yythunkpos698= yythunkpos; + { int yypos699= yypos, yythunkpos699= yythunkpos; if (!yy_HtmlBlockInTags()) goto l700; goto l699; + l700:; yypos= yypos699; yythunkpos= yythunkpos699; + { int yypos701= yypos, yythunkpos701= yythunkpos; if (!yy_HtmlBlockCloseTable()) goto l701; goto l698; + l701:; yypos= yypos701; yythunkpos= yythunkpos701; + } if (!yymatchDot()) goto l698; + } + l699:; goto l697; + l698:; yypos= yypos698; yythunkpos= yythunkpos698; + } if (!yy_HtmlBlockCloseTable()) goto l696; goto l563; + l696:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenUl()) goto l702; + l703:; + { int yypos704= yypos, yythunkpos704= yythunkpos; + { int yypos705= yypos, yythunkpos705= yythunkpos; if (!yy_HtmlBlockInTags()) goto l706; goto l705; + l706:; yypos= yypos705; yythunkpos= yythunkpos705; + { int yypos707= yypos, yythunkpos707= yythunkpos; if (!yy_HtmlBlockCloseUl()) goto l707; goto l704; + l707:; yypos= yypos707; yythunkpos= yythunkpos707; + } if (!yymatchDot()) goto l704; + } + l705:; goto l703; + l704:; yypos= yypos704; yythunkpos= yythunkpos704; + } if (!yy_HtmlBlockCloseUl()) goto l702; goto l563; + l702:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenDd()) goto l708; + l709:; + { int yypos710= yypos, yythunkpos710= yythunkpos; + { int yypos711= yypos, yythunkpos711= yythunkpos; if (!yy_HtmlBlockInTags()) goto l712; goto l711; + l712:; yypos= yypos711; yythunkpos= yythunkpos711; + { int yypos713= yypos, yythunkpos713= yythunkpos; if (!yy_HtmlBlockCloseDd()) goto l713; goto l710; + l713:; yypos= yypos713; yythunkpos= yythunkpos713; + } if (!yymatchDot()) goto l710; + } + l711:; goto l709; + l710:; yypos= yypos710; yythunkpos= yythunkpos710; + } if (!yy_HtmlBlockCloseDd()) goto l708; goto l563; + l708:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenDt()) goto l714; + l715:; + { int yypos716= yypos, yythunkpos716= yythunkpos; + { int yypos717= yypos, yythunkpos717= yythunkpos; if (!yy_HtmlBlockInTags()) goto l718; goto l717; + l718:; yypos= yypos717; yythunkpos= yythunkpos717; + { int yypos719= yypos, yythunkpos719= yythunkpos; if (!yy_HtmlBlockCloseDt()) goto l719; goto l716; + l719:; yypos= yypos719; yythunkpos= yythunkpos719; + } if (!yymatchDot()) goto l716; + } + l717:; goto l715; + l716:; yypos= yypos716; yythunkpos= yythunkpos716; + } if (!yy_HtmlBlockCloseDt()) goto l714; goto l563; + l714:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenFrameset()) goto l720; + l721:; + { int yypos722= yypos, yythunkpos722= yythunkpos; + { int yypos723= yypos, yythunkpos723= yythunkpos; if (!yy_HtmlBlockInTags()) goto l724; goto l723; + l724:; yypos= yypos723; yythunkpos= yythunkpos723; + { int yypos725= yypos, yythunkpos725= yythunkpos; if (!yy_HtmlBlockCloseFrameset()) goto l725; goto l722; + l725:; yypos= yypos725; yythunkpos= yythunkpos725; + } if (!yymatchDot()) goto l722; + } + l723:; goto l721; + l722:; yypos= yypos722; yythunkpos= yythunkpos722; + } if (!yy_HtmlBlockCloseFrameset()) goto l720; goto l563; + l720:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenLi()) goto l726; + l727:; + { int yypos728= yypos, yythunkpos728= yythunkpos; + { int yypos729= yypos, yythunkpos729= yythunkpos; if (!yy_HtmlBlockInTags()) goto l730; goto l729; + l730:; yypos= yypos729; yythunkpos= yythunkpos729; + { int yypos731= yypos, yythunkpos731= yythunkpos; if (!yy_HtmlBlockCloseLi()) goto l731; goto l728; + l731:; yypos= yypos731; yythunkpos= yythunkpos731; + } if (!yymatchDot()) goto l728; + } + l729:; goto l727; + l728:; yypos= yypos728; yythunkpos= yythunkpos728; + } if (!yy_HtmlBlockCloseLi()) goto l726; goto l563; + l726:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTbody()) goto l732; + l733:; + { int yypos734= yypos, yythunkpos734= yythunkpos; + { int yypos735= yypos, yythunkpos735= yythunkpos; if (!yy_HtmlBlockInTags()) goto l736; goto l735; + l736:; yypos= yypos735; yythunkpos= yythunkpos735; + { int yypos737= yypos, yythunkpos737= yythunkpos; if (!yy_HtmlBlockCloseTbody()) goto l737; goto l734; + l737:; yypos= yypos737; yythunkpos= yythunkpos737; + } if (!yymatchDot()) goto l734; + } + l735:; goto l733; + l734:; yypos= yypos734; yythunkpos= yythunkpos734; + } if (!yy_HtmlBlockCloseTbody()) goto l732; goto l563; + l732:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTd()) goto l738; + l739:; + { int yypos740= yypos, yythunkpos740= yythunkpos; + { int yypos741= yypos, yythunkpos741= yythunkpos; if (!yy_HtmlBlockInTags()) goto l742; goto l741; + l742:; yypos= yypos741; yythunkpos= yythunkpos741; + { int yypos743= yypos, yythunkpos743= yythunkpos; if (!yy_HtmlBlockCloseTd()) goto l743; goto l740; + l743:; yypos= yypos743; yythunkpos= yythunkpos743; + } if (!yymatchDot()) goto l740; + } + l741:; goto l739; + l740:; yypos= yypos740; yythunkpos= yythunkpos740; + } if (!yy_HtmlBlockCloseTd()) goto l738; goto l563; + l738:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTfoot()) goto l744; + l745:; + { int yypos746= yypos, yythunkpos746= yythunkpos; + { int yypos747= yypos, yythunkpos747= yythunkpos; if (!yy_HtmlBlockInTags()) goto l748; goto l747; + l748:; yypos= yypos747; yythunkpos= yythunkpos747; + { int yypos749= yypos, yythunkpos749= yythunkpos; if (!yy_HtmlBlockCloseTfoot()) goto l749; goto l746; + l749:; yypos= yypos749; yythunkpos= yythunkpos749; + } if (!yymatchDot()) goto l746; + } + l747:; goto l745; + l746:; yypos= yypos746; yythunkpos= yythunkpos746; + } if (!yy_HtmlBlockCloseTfoot()) goto l744; goto l563; + l744:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTh()) goto l750; + l751:; + { int yypos752= yypos, yythunkpos752= yythunkpos; + { int yypos753= yypos, yythunkpos753= yythunkpos; if (!yy_HtmlBlockInTags()) goto l754; goto l753; + l754:; yypos= yypos753; yythunkpos= yythunkpos753; + { int yypos755= yypos, yythunkpos755= yythunkpos; if (!yy_HtmlBlockCloseTh()) goto l755; goto l752; + l755:; yypos= yypos755; yythunkpos= yythunkpos755; + } if (!yymatchDot()) goto l752; + } + l753:; goto l751; + l752:; yypos= yypos752; yythunkpos= yythunkpos752; + } if (!yy_HtmlBlockCloseTh()) goto l750; goto l563; + l750:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenThead()) goto l756; + l757:; + { int yypos758= yypos, yythunkpos758= yythunkpos; + { int yypos759= yypos, yythunkpos759= yythunkpos; if (!yy_HtmlBlockInTags()) goto l760; goto l759; + l760:; yypos= yypos759; yythunkpos= yythunkpos759; + { int yypos761= yypos, yythunkpos761= yythunkpos; if (!yy_HtmlBlockCloseThead()) goto l761; goto l758; + l761:; yypos= yypos761; yythunkpos= yythunkpos761; + } if (!yymatchDot()) goto l758; + } + l759:; goto l757; + l758:; yypos= yypos758; yythunkpos= yythunkpos758; + } if (!yy_HtmlBlockCloseThead()) goto l756; goto l563; + l756:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenTr()) goto l762; + l763:; + { int yypos764= yypos, yythunkpos764= yythunkpos; + { int yypos765= yypos, yythunkpos765= yythunkpos; if (!yy_HtmlBlockInTags()) goto l766; goto l765; + l766:; yypos= yypos765; yythunkpos= yythunkpos765; + { int yypos767= yypos, yythunkpos767= yythunkpos; if (!yy_HtmlBlockCloseTr()) goto l767; goto l764; + l767:; yypos= yypos767; yythunkpos= yythunkpos767; + } if (!yymatchDot()) goto l764; + } + l765:; goto l763; + l764:; yypos= yypos764; yythunkpos= yythunkpos764; + } if (!yy_HtmlBlockCloseTr()) goto l762; goto l563; + l762:; yypos= yypos563; yythunkpos= yythunkpos563; if (!yy_HtmlBlockOpenScript()) goto l562; + l768:; + { int yypos769= yypos, yythunkpos769= yythunkpos; + { int yypos770= yypos, yythunkpos770= yythunkpos; if (!yy_HtmlBlockInTags()) goto l771; goto l770; + l771:; yypos= yypos770; yythunkpos= yythunkpos770; + { int yypos772= yypos, yythunkpos772= yythunkpos; if (!yy_HtmlBlockCloseScript()) goto l772; goto l769; + l772:; yypos= yypos772; yythunkpos= yythunkpos772; + } if (!yymatchDot()) goto l769; + } + l770:; goto l768; + l769:; yypos= yypos769; yythunkpos= yythunkpos769; + } if (!yy_HtmlBlockCloseScript()) goto l562; + } + l563:; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockInTags", yybuf+yypos)); + return 1; + l562:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockInTags", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseScript() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseScript")); if (!yymatchChar('<')) goto l773; if (!yy_Spnl()) goto l773; if (!yymatchChar('/')) goto l773; + { int yypos774= yypos, yythunkpos774= yythunkpos; if (!yymatchString("script")) goto l775; goto l774; + l775:; yypos= yypos774; yythunkpos= yythunkpos774; if (!yymatchString("SCRIPT")) goto l773; + } + l774:; if (!yy_Spnl()) goto l773; if (!yymatchChar('>')) goto l773; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseScript", yybuf+yypos)); + return 1; + l773:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseScript", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenScript() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenScript")); if (!yymatchChar('<')) goto l776; if (!yy_Spnl()) goto l776; + { int yypos777= yypos, yythunkpos777= yythunkpos; if (!yymatchString("script")) goto l778; goto l777; + l778:; yypos= yypos777; yythunkpos= yythunkpos777; if (!yymatchString("SCRIPT")) goto l776; + } + l777:; if (!yy_Spnl()) goto l776; + l779:; + { int yypos780= yypos, yythunkpos780= yythunkpos; if (!yy_HtmlAttribute()) goto l780; goto l779; + l780:; yypos= yypos780; yythunkpos= yythunkpos780; + } if (!yymatchChar('>')) goto l776; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenScript", yybuf+yypos)); + return 1; + l776:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenScript", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTr() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTr")); if (!yymatchChar('<')) goto l781; if (!yy_Spnl()) goto l781; if (!yymatchChar('/')) goto l781; + { int yypos782= yypos, yythunkpos782= yythunkpos; if (!yymatchString("tr")) goto l783; goto l782; + l783:; yypos= yypos782; yythunkpos= yythunkpos782; if (!yymatchString("TR")) goto l781; + } + l782:; if (!yy_Spnl()) goto l781; if (!yymatchChar('>')) goto l781; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTr", yybuf+yypos)); + return 1; + l781:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTr", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTr() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTr")); if (!yymatchChar('<')) goto l784; if (!yy_Spnl()) goto l784; + { int yypos785= yypos, yythunkpos785= yythunkpos; if (!yymatchString("tr")) goto l786; goto l785; + l786:; yypos= yypos785; yythunkpos= yythunkpos785; if (!yymatchString("TR")) goto l784; + } + l785:; if (!yy_Spnl()) goto l784; + l787:; + { int yypos788= yypos, yythunkpos788= yythunkpos; if (!yy_HtmlAttribute()) goto l788; goto l787; + l788:; yypos= yypos788; yythunkpos= yythunkpos788; + } if (!yymatchChar('>')) goto l784; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTr", yybuf+yypos)); + return 1; + l784:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTr", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseThead() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseThead")); if (!yymatchChar('<')) goto l789; if (!yy_Spnl()) goto l789; if (!yymatchChar('/')) goto l789; + { int yypos790= yypos, yythunkpos790= yythunkpos; if (!yymatchString("thead")) goto l791; goto l790; + l791:; yypos= yypos790; yythunkpos= yythunkpos790; if (!yymatchString("THEAD")) goto l789; + } + l790:; if (!yy_Spnl()) goto l789; if (!yymatchChar('>')) goto l789; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseThead", yybuf+yypos)); + return 1; + l789:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseThead", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenThead() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenThead")); if (!yymatchChar('<')) goto l792; if (!yy_Spnl()) goto l792; + { int yypos793= yypos, yythunkpos793= yythunkpos; if (!yymatchString("thead")) goto l794; goto l793; + l794:; yypos= yypos793; yythunkpos= yythunkpos793; if (!yymatchString("THEAD")) goto l792; + } + l793:; if (!yy_Spnl()) goto l792; + l795:; + { int yypos796= yypos, yythunkpos796= yythunkpos; if (!yy_HtmlAttribute()) goto l796; goto l795; + l796:; yypos= yypos796; yythunkpos= yythunkpos796; + } if (!yymatchChar('>')) goto l792; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenThead", yybuf+yypos)); + return 1; + l792:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenThead", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTh() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTh")); if (!yymatchChar('<')) goto l797; if (!yy_Spnl()) goto l797; if (!yymatchChar('/')) goto l797; + { int yypos798= yypos, yythunkpos798= yythunkpos; if (!yymatchString("th")) goto l799; goto l798; + l799:; yypos= yypos798; yythunkpos= yythunkpos798; if (!yymatchString("TH")) goto l797; + } + l798:; if (!yy_Spnl()) goto l797; if (!yymatchChar('>')) goto l797; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTh", yybuf+yypos)); + return 1; + l797:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTh", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTh() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTh")); if (!yymatchChar('<')) goto l800; if (!yy_Spnl()) goto l800; + { int yypos801= yypos, yythunkpos801= yythunkpos; if (!yymatchString("th")) goto l802; goto l801; + l802:; yypos= yypos801; yythunkpos= yythunkpos801; if (!yymatchString("TH")) goto l800; + } + l801:; if (!yy_Spnl()) goto l800; + l803:; + { int yypos804= yypos, yythunkpos804= yythunkpos; if (!yy_HtmlAttribute()) goto l804; goto l803; + l804:; yypos= yypos804; yythunkpos= yythunkpos804; + } if (!yymatchChar('>')) goto l800; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTh", yybuf+yypos)); + return 1; + l800:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTh", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTfoot() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTfoot")); if (!yymatchChar('<')) goto l805; if (!yy_Spnl()) goto l805; if (!yymatchChar('/')) goto l805; + { int yypos806= yypos, yythunkpos806= yythunkpos; if (!yymatchString("tfoot")) goto l807; goto l806; + l807:; yypos= yypos806; yythunkpos= yythunkpos806; if (!yymatchString("TFOOT")) goto l805; + } + l806:; if (!yy_Spnl()) goto l805; if (!yymatchChar('>')) goto l805; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTfoot", yybuf+yypos)); + return 1; + l805:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTfoot", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTfoot() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTfoot")); if (!yymatchChar('<')) goto l808; if (!yy_Spnl()) goto l808; + { int yypos809= yypos, yythunkpos809= yythunkpos; if (!yymatchString("tfoot")) goto l810; goto l809; + l810:; yypos= yypos809; yythunkpos= yythunkpos809; if (!yymatchString("TFOOT")) goto l808; + } + l809:; if (!yy_Spnl()) goto l808; + l811:; + { int yypos812= yypos, yythunkpos812= yythunkpos; if (!yy_HtmlAttribute()) goto l812; goto l811; + l812:; yypos= yypos812; yythunkpos= yythunkpos812; + } if (!yymatchChar('>')) goto l808; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTfoot", yybuf+yypos)); + return 1; + l808:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTfoot", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTd")); if (!yymatchChar('<')) goto l813; if (!yy_Spnl()) goto l813; if (!yymatchChar('/')) goto l813; + { int yypos814= yypos, yythunkpos814= yythunkpos; if (!yymatchString("td")) goto l815; goto l814; + l815:; yypos= yypos814; yythunkpos= yythunkpos814; if (!yymatchString("TD")) goto l813; + } + l814:; if (!yy_Spnl()) goto l813; if (!yymatchChar('>')) goto l813; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTd", yybuf+yypos)); + return 1; + l813:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTd")); if (!yymatchChar('<')) goto l816; if (!yy_Spnl()) goto l816; + { int yypos817= yypos, yythunkpos817= yythunkpos; if (!yymatchString("td")) goto l818; goto l817; + l818:; yypos= yypos817; yythunkpos= yythunkpos817; if (!yymatchString("TD")) goto l816; + } + l817:; if (!yy_Spnl()) goto l816; + l819:; + { int yypos820= yypos, yythunkpos820= yythunkpos; if (!yy_HtmlAttribute()) goto l820; goto l819; + l820:; yypos= yypos820; yythunkpos= yythunkpos820; + } if (!yymatchChar('>')) goto l816; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTd", yybuf+yypos)); + return 1; + l816:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTbody() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTbody")); if (!yymatchChar('<')) goto l821; if (!yy_Spnl()) goto l821; if (!yymatchChar('/')) goto l821; + { int yypos822= yypos, yythunkpos822= yythunkpos; if (!yymatchString("tbody")) goto l823; goto l822; + l823:; yypos= yypos822; yythunkpos= yythunkpos822; if (!yymatchString("TBODY")) goto l821; + } + l822:; if (!yy_Spnl()) goto l821; if (!yymatchChar('>')) goto l821; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTbody", yybuf+yypos)); + return 1; + l821:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTbody", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTbody() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTbody")); if (!yymatchChar('<')) goto l824; if (!yy_Spnl()) goto l824; + { int yypos825= yypos, yythunkpos825= yythunkpos; if (!yymatchString("tbody")) goto l826; goto l825; + l826:; yypos= yypos825; yythunkpos= yythunkpos825; if (!yymatchString("TBODY")) goto l824; + } + l825:; if (!yy_Spnl()) goto l824; + l827:; + { int yypos828= yypos, yythunkpos828= yythunkpos; if (!yy_HtmlAttribute()) goto l828; goto l827; + l828:; yypos= yypos828; yythunkpos= yythunkpos828; + } if (!yymatchChar('>')) goto l824; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTbody", yybuf+yypos)); + return 1; + l824:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTbody", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseLi() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseLi")); if (!yymatchChar('<')) goto l829; if (!yy_Spnl()) goto l829; if (!yymatchChar('/')) goto l829; + { int yypos830= yypos, yythunkpos830= yythunkpos; if (!yymatchString("li")) goto l831; goto l830; + l831:; yypos= yypos830; yythunkpos= yythunkpos830; if (!yymatchString("LI")) goto l829; + } + l830:; if (!yy_Spnl()) goto l829; if (!yymatchChar('>')) goto l829; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseLi", yybuf+yypos)); + return 1; + l829:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseLi", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenLi() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenLi")); if (!yymatchChar('<')) goto l832; if (!yy_Spnl()) goto l832; + { int yypos833= yypos, yythunkpos833= yythunkpos; if (!yymatchString("li")) goto l834; goto l833; + l834:; yypos= yypos833; yythunkpos= yythunkpos833; if (!yymatchString("LI")) goto l832; + } + l833:; if (!yy_Spnl()) goto l832; + l835:; + { int yypos836= yypos, yythunkpos836= yythunkpos; if (!yy_HtmlAttribute()) goto l836; goto l835; + l836:; yypos= yypos836; yythunkpos= yythunkpos836; + } if (!yymatchChar('>')) goto l832; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenLi", yybuf+yypos)); + return 1; + l832:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenLi", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseFrameset() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseFrameset")); if (!yymatchChar('<')) goto l837; if (!yy_Spnl()) goto l837; if (!yymatchChar('/')) goto l837; + { int yypos838= yypos, yythunkpos838= yythunkpos; if (!yymatchString("frameset")) goto l839; goto l838; + l839:; yypos= yypos838; yythunkpos= yythunkpos838; if (!yymatchString("FRAMESET")) goto l837; + } + l838:; if (!yy_Spnl()) goto l837; if (!yymatchChar('>')) goto l837; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFrameset", yybuf+yypos)); + return 1; + l837:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFrameset", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenFrameset() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenFrameset")); if (!yymatchChar('<')) goto l840; if (!yy_Spnl()) goto l840; + { int yypos841= yypos, yythunkpos841= yythunkpos; if (!yymatchString("frameset")) goto l842; goto l841; + l842:; yypos= yypos841; yythunkpos= yythunkpos841; if (!yymatchString("FRAMESET")) goto l840; + } + l841:; if (!yy_Spnl()) goto l840; + l843:; + { int yypos844= yypos, yythunkpos844= yythunkpos; if (!yy_HtmlAttribute()) goto l844; goto l843; + l844:; yypos= yypos844; yythunkpos= yythunkpos844; + } if (!yymatchChar('>')) goto l840; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFrameset", yybuf+yypos)); + return 1; + l840:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFrameset", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseDt() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseDt")); if (!yymatchChar('<')) goto l845; if (!yy_Spnl()) goto l845; if (!yymatchChar('/')) goto l845; + { int yypos846= yypos, yythunkpos846= yythunkpos; if (!yymatchString("dt")) goto l847; goto l846; + l847:; yypos= yypos846; yythunkpos= yythunkpos846; if (!yymatchString("DT")) goto l845; + } + l846:; if (!yy_Spnl()) goto l845; if (!yymatchChar('>')) goto l845; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDt", yybuf+yypos)); + return 1; + l845:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDt", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenDt() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenDt")); if (!yymatchChar('<')) goto l848; if (!yy_Spnl()) goto l848; + { int yypos849= yypos, yythunkpos849= yythunkpos; if (!yymatchString("dt")) goto l850; goto l849; + l850:; yypos= yypos849; yythunkpos= yythunkpos849; if (!yymatchString("DT")) goto l848; + } + l849:; if (!yy_Spnl()) goto l848; + l851:; + { int yypos852= yypos, yythunkpos852= yythunkpos; if (!yy_HtmlAttribute()) goto l852; goto l851; + l852:; yypos= yypos852; yythunkpos= yythunkpos852; + } if (!yymatchChar('>')) goto l848; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDt", yybuf+yypos)); + return 1; + l848:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDt", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseDd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseDd")); if (!yymatchChar('<')) goto l853; if (!yy_Spnl()) goto l853; if (!yymatchChar('/')) goto l853; + { int yypos854= yypos, yythunkpos854= yythunkpos; if (!yymatchString("dd")) goto l855; goto l854; + l855:; yypos= yypos854; yythunkpos= yythunkpos854; if (!yymatchString("DD")) goto l853; + } + l854:; if (!yy_Spnl()) goto l853; if (!yymatchChar('>')) goto l853; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDd", yybuf+yypos)); + return 1; + l853:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenDd() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenDd")); if (!yymatchChar('<')) goto l856; if (!yy_Spnl()) goto l856; + { int yypos857= yypos, yythunkpos857= yythunkpos; if (!yymatchString("dd")) goto l858; goto l857; + l858:; yypos= yypos857; yythunkpos= yythunkpos857; if (!yymatchString("DD")) goto l856; + } + l857:; if (!yy_Spnl()) goto l856; + l859:; + { int yypos860= yypos, yythunkpos860= yythunkpos; if (!yy_HtmlAttribute()) goto l860; goto l859; + l860:; yypos= yypos860; yythunkpos= yythunkpos860; + } if (!yymatchChar('>')) goto l856; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDd", yybuf+yypos)); + return 1; + l856:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDd", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseUl")); if (!yymatchChar('<')) goto l861; if (!yy_Spnl()) goto l861; if (!yymatchChar('/')) goto l861; + { int yypos862= yypos, yythunkpos862= yythunkpos; if (!yymatchString("ul")) goto l863; goto l862; + l863:; yypos= yypos862; yythunkpos= yythunkpos862; if (!yymatchString("UL")) goto l861; + } + l862:; if (!yy_Spnl()) goto l861; if (!yymatchChar('>')) goto l861; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseUl", yybuf+yypos)); + return 1; + l861:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenUl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenUl")); if (!yymatchChar('<')) goto l864; if (!yy_Spnl()) goto l864; + { int yypos865= yypos, yythunkpos865= yythunkpos; if (!yymatchString("ul")) goto l866; goto l865; + l866:; yypos= yypos865; yythunkpos= yythunkpos865; if (!yymatchString("UL")) goto l864; + } + l865:; if (!yy_Spnl()) goto l864; + l867:; + { int yypos868= yypos, yythunkpos868= yythunkpos; if (!yy_HtmlAttribute()) goto l868; goto l867; + l868:; yypos= yypos868; yythunkpos= yythunkpos868; + } if (!yymatchChar('>')) goto l864; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenUl", yybuf+yypos)); + return 1; + l864:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenUl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseTable() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseTable")); if (!yymatchChar('<')) goto l869; if (!yy_Spnl()) goto l869; if (!yymatchChar('/')) goto l869; + { int yypos870= yypos, yythunkpos870= yythunkpos; if (!yymatchString("table")) goto l871; goto l870; + l871:; yypos= yypos870; yythunkpos= yythunkpos870; if (!yymatchString("TABLE")) goto l869; + } + l870:; if (!yy_Spnl()) goto l869; if (!yymatchChar('>')) goto l869; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseTable", yybuf+yypos)); + return 1; + l869:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseTable", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenTable() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenTable")); if (!yymatchChar('<')) goto l872; if (!yy_Spnl()) goto l872; + { int yypos873= yypos, yythunkpos873= yythunkpos; if (!yymatchString("table")) goto l874; goto l873; + l874:; yypos= yypos873; yythunkpos= yythunkpos873; if (!yymatchString("TABLE")) goto l872; + } + l873:; if (!yy_Spnl()) goto l872; + l875:; + { int yypos876= yypos, yythunkpos876= yythunkpos; if (!yy_HtmlAttribute()) goto l876; goto l875; + l876:; yypos= yypos876; yythunkpos= yythunkpos876; + } if (!yymatchChar('>')) goto l872; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenTable", yybuf+yypos)); + return 1; + l872:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenTable", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockClosePre() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockClosePre")); if (!yymatchChar('<')) goto l877; if (!yy_Spnl()) goto l877; if (!yymatchChar('/')) goto l877; + { int yypos878= yypos, yythunkpos878= yythunkpos; if (!yymatchString("pre")) goto l879; goto l878; + l879:; yypos= yypos878; yythunkpos= yythunkpos878; if (!yymatchString("PRE")) goto l877; + } + l878:; if (!yy_Spnl()) goto l877; if (!yymatchChar('>')) goto l877; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockClosePre", yybuf+yypos)); + return 1; + l877:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockClosePre", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenPre() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenPre")); if (!yymatchChar('<')) goto l880; if (!yy_Spnl()) goto l880; + { int yypos881= yypos, yythunkpos881= yythunkpos; if (!yymatchString("pre")) goto l882; goto l881; + l882:; yypos= yypos881; yythunkpos= yythunkpos881; if (!yymatchString("PRE")) goto l880; + } + l881:; if (!yy_Spnl()) goto l880; + l883:; + { int yypos884= yypos, yythunkpos884= yythunkpos; if (!yy_HtmlAttribute()) goto l884; goto l883; + l884:; yypos= yypos884; yythunkpos= yythunkpos884; + } if (!yymatchChar('>')) goto l880; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenPre", yybuf+yypos)); + return 1; + l880:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenPre", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseP() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseP")); if (!yymatchChar('<')) goto l885; if (!yy_Spnl()) goto l885; if (!yymatchChar('/')) goto l885; + { int yypos886= yypos, yythunkpos886= yythunkpos; if (!yymatchChar('p')) goto l887; goto l886; + l887:; yypos= yypos886; yythunkpos= yythunkpos886; if (!yymatchChar('P')) goto l885; + } + l886:; if (!yy_Spnl()) goto l885; if (!yymatchChar('>')) goto l885; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseP", yybuf+yypos)); + return 1; + l885:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseP", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenP() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenP")); if (!yymatchChar('<')) goto l888; if (!yy_Spnl()) goto l888; + { int yypos889= yypos, yythunkpos889= yythunkpos; if (!yymatchChar('p')) goto l890; goto l889; + l890:; yypos= yypos889; yythunkpos= yythunkpos889; if (!yymatchChar('P')) goto l888; + } + l889:; if (!yy_Spnl()) goto l888; + l891:; + { int yypos892= yypos, yythunkpos892= yythunkpos; if (!yy_HtmlAttribute()) goto l892; goto l891; + l892:; yypos= yypos892; yythunkpos= yythunkpos892; + } if (!yymatchChar('>')) goto l888; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenP", yybuf+yypos)); + return 1; + l888:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenP", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseOl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseOl")); if (!yymatchChar('<')) goto l893; if (!yy_Spnl()) goto l893; if (!yymatchChar('/')) goto l893; + { int yypos894= yypos, yythunkpos894= yythunkpos; if (!yymatchString("ol")) goto l895; goto l894; + l895:; yypos= yypos894; yythunkpos= yythunkpos894; if (!yymatchString("OL")) goto l893; + } + l894:; if (!yy_Spnl()) goto l893; if (!yymatchChar('>')) goto l893; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseOl", yybuf+yypos)); + return 1; + l893:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseOl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenOl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenOl")); if (!yymatchChar('<')) goto l896; if (!yy_Spnl()) goto l896; + { int yypos897= yypos, yythunkpos897= yythunkpos; if (!yymatchString("ol")) goto l898; goto l897; + l898:; yypos= yypos897; yythunkpos= yythunkpos897; if (!yymatchString("OL")) goto l896; + } + l897:; if (!yy_Spnl()) goto l896; + l899:; + { int yypos900= yypos, yythunkpos900= yythunkpos; if (!yy_HtmlAttribute()) goto l900; goto l899; + l900:; yypos= yypos900; yythunkpos= yythunkpos900; + } if (!yymatchChar('>')) goto l896; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenOl", yybuf+yypos)); + return 1; + l896:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenOl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseNoscript() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseNoscript")); if (!yymatchChar('<')) goto l901; if (!yy_Spnl()) goto l901; if (!yymatchChar('/')) goto l901; + { int yypos902= yypos, yythunkpos902= yythunkpos; if (!yymatchString("noscript")) goto l903; goto l902; + l903:; yypos= yypos902; yythunkpos= yythunkpos902; if (!yymatchString("NOSCRIPT")) goto l901; + } + l902:; if (!yy_Spnl()) goto l901; if (!yymatchChar('>')) goto l901; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoscript", yybuf+yypos)); + return 1; + l901:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoscript", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenNoscript() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenNoscript")); if (!yymatchChar('<')) goto l904; if (!yy_Spnl()) goto l904; + { int yypos905= yypos, yythunkpos905= yythunkpos; if (!yymatchString("noscript")) goto l906; goto l905; + l906:; yypos= yypos905; yythunkpos= yythunkpos905; if (!yymatchString("NOSCRIPT")) goto l904; + } + l905:; if (!yy_Spnl()) goto l904; + l907:; + { int yypos908= yypos, yythunkpos908= yythunkpos; if (!yy_HtmlAttribute()) goto l908; goto l907; + l908:; yypos= yypos908; yythunkpos= yythunkpos908; + } if (!yymatchChar('>')) goto l904; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoscript", yybuf+yypos)); + return 1; + l904:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoscript", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseNoframes() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseNoframes")); if (!yymatchChar('<')) goto l909; if (!yy_Spnl()) goto l909; if (!yymatchChar('/')) goto l909; + { int yypos910= yypos, yythunkpos910= yythunkpos; if (!yymatchString("noframes")) goto l911; goto l910; + l911:; yypos= yypos910; yythunkpos= yythunkpos910; if (!yymatchString("NOFRAMES")) goto l909; + } + l910:; if (!yy_Spnl()) goto l909; if (!yymatchChar('>')) goto l909; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseNoframes", yybuf+yypos)); + return 1; + l909:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseNoframes", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenNoframes() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenNoframes")); if (!yymatchChar('<')) goto l912; if (!yy_Spnl()) goto l912; + { int yypos913= yypos, yythunkpos913= yythunkpos; if (!yymatchString("noframes")) goto l914; goto l913; + l914:; yypos= yypos913; yythunkpos= yythunkpos913; if (!yymatchString("NOFRAMES")) goto l912; + } + l913:; if (!yy_Spnl()) goto l912; + l915:; + { int yypos916= yypos, yythunkpos916= yythunkpos; if (!yy_HtmlAttribute()) goto l916; goto l915; + l916:; yypos= yypos916; yythunkpos= yythunkpos916; + } if (!yymatchChar('>')) goto l912; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenNoframes", yybuf+yypos)); + return 1; + l912:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenNoframes", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseMenu() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseMenu")); if (!yymatchChar('<')) goto l917; if (!yy_Spnl()) goto l917; if (!yymatchChar('/')) goto l917; + { int yypos918= yypos, yythunkpos918= yythunkpos; if (!yymatchString("menu")) goto l919; goto l918; + l919:; yypos= yypos918; yythunkpos= yythunkpos918; if (!yymatchString("MENU")) goto l917; + } + l918:; if (!yy_Spnl()) goto l917; if (!yymatchChar('>')) goto l917; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseMenu", yybuf+yypos)); + return 1; + l917:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseMenu", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenMenu() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenMenu")); if (!yymatchChar('<')) goto l920; if (!yy_Spnl()) goto l920; + { int yypos921= yypos, yythunkpos921= yythunkpos; if (!yymatchString("menu")) goto l922; goto l921; + l922:; yypos= yypos921; yythunkpos= yythunkpos921; if (!yymatchString("MENU")) goto l920; + } + l921:; if (!yy_Spnl()) goto l920; + l923:; + { int yypos924= yypos, yythunkpos924= yythunkpos; if (!yy_HtmlAttribute()) goto l924; goto l923; + l924:; yypos= yypos924; yythunkpos= yythunkpos924; + } if (!yymatchChar('>')) goto l920; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenMenu", yybuf+yypos)); + return 1; + l920:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenMenu", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseIsindex() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseIsindex")); if (!yymatchChar('<')) goto l925; if (!yy_Spnl()) goto l925; if (!yymatchChar('/')) goto l925; + { int yypos926= yypos, yythunkpos926= yythunkpos; if (!yymatchString("isindex")) goto l927; goto l926; + l927:; yypos= yypos926; yythunkpos= yythunkpos926; if (!yymatchString("ISINDEX")) goto l925; + } + l926:; if (!yy_Spnl()) goto l925; if (!yymatchChar('>')) goto l925; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseIsindex", yybuf+yypos)); + return 1; + l925:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseIsindex", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenIsindex() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenIsindex")); if (!yymatchChar('<')) goto l928; if (!yy_Spnl()) goto l928; + { int yypos929= yypos, yythunkpos929= yythunkpos; if (!yymatchString("isindex")) goto l930; goto l929; + l930:; yypos= yypos929; yythunkpos= yythunkpos929; if (!yymatchString("ISINDEX")) goto l928; + } + l929:; if (!yy_Spnl()) goto l928; + l931:; + { int yypos932= yypos, yythunkpos932= yythunkpos; if (!yy_HtmlAttribute()) goto l932; goto l931; + l932:; yypos= yypos932; yythunkpos= yythunkpos932; + } if (!yymatchChar('>')) goto l928; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenIsindex", yybuf+yypos)); + return 1; + l928:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenIsindex", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseHr() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseHr")); if (!yymatchChar('<')) goto l933; if (!yy_Spnl()) goto l933; if (!yymatchChar('/')) goto l933; + { int yypos934= yypos, yythunkpos934= yythunkpos; if (!yymatchString("hr")) goto l935; goto l934; + l935:; yypos= yypos934; yythunkpos= yythunkpos934; if (!yymatchString("HR")) goto l933; + } + l934:; if (!yy_Spnl()) goto l933; if (!yymatchChar('>')) goto l933; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseHr", yybuf+yypos)); + return 1; + l933:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseHr", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenHr() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenHr")); if (!yymatchChar('<')) goto l936; if (!yy_Spnl()) goto l936; + { int yypos937= yypos, yythunkpos937= yythunkpos; if (!yymatchString("hr")) goto l938; goto l937; + l938:; yypos= yypos937; yythunkpos= yythunkpos937; if (!yymatchString("HR")) goto l936; + } + l937:; if (!yy_Spnl()) goto l936; + l939:; + { int yypos940= yypos, yythunkpos940= yythunkpos; if (!yy_HtmlAttribute()) goto l940; goto l939; + l940:; yypos= yypos940; yythunkpos= yythunkpos940; + } if (!yymatchChar('>')) goto l936; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenHr", yybuf+yypos)); + return 1; + l936:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenHr", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH6() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH6")); if (!yymatchChar('<')) goto l941; if (!yy_Spnl()) goto l941; if (!yymatchChar('/')) goto l941; + { int yypos942= yypos, yythunkpos942= yythunkpos; if (!yymatchString("h6")) goto l943; goto l942; + l943:; yypos= yypos942; yythunkpos= yythunkpos942; if (!yymatchString("H6")) goto l941; + } + l942:; if (!yy_Spnl()) goto l941; if (!yymatchChar('>')) goto l941; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH6", yybuf+yypos)); + return 1; + l941:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH6", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH6() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH6")); if (!yymatchChar('<')) goto l944; if (!yy_Spnl()) goto l944; + { int yypos945= yypos, yythunkpos945= yythunkpos; if (!yymatchString("h6")) goto l946; goto l945; + l946:; yypos= yypos945; yythunkpos= yythunkpos945; if (!yymatchString("H6")) goto l944; + } + l945:; if (!yy_Spnl()) goto l944; + l947:; + { int yypos948= yypos, yythunkpos948= yythunkpos; if (!yy_HtmlAttribute()) goto l948; goto l947; + l948:; yypos= yypos948; yythunkpos= yythunkpos948; + } if (!yymatchChar('>')) goto l944; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH6", yybuf+yypos)); + return 1; + l944:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH6", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH5() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH5")); if (!yymatchChar('<')) goto l949; if (!yy_Spnl()) goto l949; if (!yymatchChar('/')) goto l949; + { int yypos950= yypos, yythunkpos950= yythunkpos; if (!yymatchString("h5")) goto l951; goto l950; + l951:; yypos= yypos950; yythunkpos= yythunkpos950; if (!yymatchString("H5")) goto l949; + } + l950:; if (!yy_Spnl()) goto l949; if (!yymatchChar('>')) goto l949; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH5", yybuf+yypos)); + return 1; + l949:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH5", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH5() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH5")); if (!yymatchChar('<')) goto l952; if (!yy_Spnl()) goto l952; + { int yypos953= yypos, yythunkpos953= yythunkpos; if (!yymatchString("h5")) goto l954; goto l953; + l954:; yypos= yypos953; yythunkpos= yythunkpos953; if (!yymatchString("H5")) goto l952; + } + l953:; if (!yy_Spnl()) goto l952; + l955:; + { int yypos956= yypos, yythunkpos956= yythunkpos; if (!yy_HtmlAttribute()) goto l956; goto l955; + l956:; yypos= yypos956; yythunkpos= yythunkpos956; + } if (!yymatchChar('>')) goto l952; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH5", yybuf+yypos)); + return 1; + l952:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH5", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH4() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH4")); if (!yymatchChar('<')) goto l957; if (!yy_Spnl()) goto l957; if (!yymatchChar('/')) goto l957; + { int yypos958= yypos, yythunkpos958= yythunkpos; if (!yymatchString("h4")) goto l959; goto l958; + l959:; yypos= yypos958; yythunkpos= yythunkpos958; if (!yymatchString("H4")) goto l957; + } + l958:; if (!yy_Spnl()) goto l957; if (!yymatchChar('>')) goto l957; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH4", yybuf+yypos)); + return 1; + l957:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH4", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH4() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH4")); if (!yymatchChar('<')) goto l960; if (!yy_Spnl()) goto l960; + { int yypos961= yypos, yythunkpos961= yythunkpos; if (!yymatchString("h4")) goto l962; goto l961; + l962:; yypos= yypos961; yythunkpos= yythunkpos961; if (!yymatchString("H4")) goto l960; + } + l961:; if (!yy_Spnl()) goto l960; + l963:; + { int yypos964= yypos, yythunkpos964= yythunkpos; if (!yy_HtmlAttribute()) goto l964; goto l963; + l964:; yypos= yypos964; yythunkpos= yythunkpos964; + } if (!yymatchChar('>')) goto l960; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH4", yybuf+yypos)); + return 1; + l960:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH4", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH3() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH3")); if (!yymatchChar('<')) goto l965; if (!yy_Spnl()) goto l965; if (!yymatchChar('/')) goto l965; + { int yypos966= yypos, yythunkpos966= yythunkpos; if (!yymatchString("h3")) goto l967; goto l966; + l967:; yypos= yypos966; yythunkpos= yythunkpos966; if (!yymatchString("H3")) goto l965; + } + l966:; if (!yy_Spnl()) goto l965; if (!yymatchChar('>')) goto l965; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH3", yybuf+yypos)); + return 1; + l965:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH3", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH3() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH3")); if (!yymatchChar('<')) goto l968; if (!yy_Spnl()) goto l968; + { int yypos969= yypos, yythunkpos969= yythunkpos; if (!yymatchString("h3")) goto l970; goto l969; + l970:; yypos= yypos969; yythunkpos= yythunkpos969; if (!yymatchString("H3")) goto l968; + } + l969:; if (!yy_Spnl()) goto l968; + l971:; + { int yypos972= yypos, yythunkpos972= yythunkpos; if (!yy_HtmlAttribute()) goto l972; goto l971; + l972:; yypos= yypos972; yythunkpos= yythunkpos972; + } if (!yymatchChar('>')) goto l968; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH3", yybuf+yypos)); + return 1; + l968:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH3", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH2() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH2")); if (!yymatchChar('<')) goto l973; if (!yy_Spnl()) goto l973; if (!yymatchChar('/')) goto l973; + { int yypos974= yypos, yythunkpos974= yythunkpos; if (!yymatchString("h2")) goto l975; goto l974; + l975:; yypos= yypos974; yythunkpos= yythunkpos974; if (!yymatchString("H2")) goto l973; + } + l974:; if (!yy_Spnl()) goto l973; if (!yymatchChar('>')) goto l973; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH2", yybuf+yypos)); + return 1; + l973:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH2", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH2() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH2")); if (!yymatchChar('<')) goto l976; if (!yy_Spnl()) goto l976; + { int yypos977= yypos, yythunkpos977= yythunkpos; if (!yymatchString("h2")) goto l978; goto l977; + l978:; yypos= yypos977; yythunkpos= yythunkpos977; if (!yymatchString("H2")) goto l976; + } + l977:; if (!yy_Spnl()) goto l976; + l979:; + { int yypos980= yypos, yythunkpos980= yythunkpos; if (!yy_HtmlAttribute()) goto l980; goto l979; + l980:; yypos= yypos980; yythunkpos= yythunkpos980; + } if (!yymatchChar('>')) goto l976; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH2", yybuf+yypos)); + return 1; + l976:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH2", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseH1() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseH1")); if (!yymatchChar('<')) goto l981; if (!yy_Spnl()) goto l981; if (!yymatchChar('/')) goto l981; + { int yypos982= yypos, yythunkpos982= yythunkpos; if (!yymatchString("h1")) goto l983; goto l982; + l983:; yypos= yypos982; yythunkpos= yythunkpos982; if (!yymatchString("H1")) goto l981; + } + l982:; if (!yy_Spnl()) goto l981; if (!yymatchChar('>')) goto l981; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseH1", yybuf+yypos)); + return 1; + l981:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseH1", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenH1() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenH1")); if (!yymatchChar('<')) goto l984; if (!yy_Spnl()) goto l984; + { int yypos985= yypos, yythunkpos985= yythunkpos; if (!yymatchString("h1")) goto l986; goto l985; + l986:; yypos= yypos985; yythunkpos= yythunkpos985; if (!yymatchString("H1")) goto l984; + } + l985:; if (!yy_Spnl()) goto l984; + l987:; + { int yypos988= yypos, yythunkpos988= yythunkpos; if (!yy_HtmlAttribute()) goto l988; goto l987; + l988:; yypos= yypos988; yythunkpos= yythunkpos988; + } if (!yymatchChar('>')) goto l984; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenH1", yybuf+yypos)); + return 1; + l984:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenH1", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseForm() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseForm")); if (!yymatchChar('<')) goto l989; if (!yy_Spnl()) goto l989; if (!yymatchChar('/')) goto l989; + { int yypos990= yypos, yythunkpos990= yythunkpos; if (!yymatchString("form")) goto l991; goto l990; + l991:; yypos= yypos990; yythunkpos= yythunkpos990; if (!yymatchString("FORM")) goto l989; + } + l990:; if (!yy_Spnl()) goto l989; if (!yymatchChar('>')) goto l989; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseForm", yybuf+yypos)); + return 1; + l989:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseForm", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenForm() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenForm")); if (!yymatchChar('<')) goto l992; if (!yy_Spnl()) goto l992; + { int yypos993= yypos, yythunkpos993= yythunkpos; if (!yymatchString("form")) goto l994; goto l993; + l994:; yypos= yypos993; yythunkpos= yythunkpos993; if (!yymatchString("FORM")) goto l992; + } + l993:; if (!yy_Spnl()) goto l992; + l995:; + { int yypos996= yypos, yythunkpos996= yythunkpos; if (!yy_HtmlAttribute()) goto l996; goto l995; + l996:; yypos= yypos996; yythunkpos= yythunkpos996; + } if (!yymatchChar('>')) goto l992; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenForm", yybuf+yypos)); + return 1; + l992:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenForm", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseFieldset() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseFieldset")); if (!yymatchChar('<')) goto l997; if (!yy_Spnl()) goto l997; if (!yymatchChar('/')) goto l997; + { int yypos998= yypos, yythunkpos998= yythunkpos; if (!yymatchString("fieldset")) goto l999; goto l998; + l999:; yypos= yypos998; yythunkpos= yythunkpos998; if (!yymatchString("FIELDSET")) goto l997; + } + l998:; if (!yy_Spnl()) goto l997; if (!yymatchChar('>')) goto l997; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseFieldset", yybuf+yypos)); + return 1; + l997:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseFieldset", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenFieldset() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenFieldset")); if (!yymatchChar('<')) goto l1000; if (!yy_Spnl()) goto l1000; + { int yypos1001= yypos, yythunkpos1001= yythunkpos; if (!yymatchString("fieldset")) goto l1002; goto l1001; + l1002:; yypos= yypos1001; yythunkpos= yythunkpos1001; if (!yymatchString("FIELDSET")) goto l1000; + } + l1001:; if (!yy_Spnl()) goto l1000; + l1003:; + { int yypos1004= yypos, yythunkpos1004= yythunkpos; if (!yy_HtmlAttribute()) goto l1004; goto l1003; + l1004:; yypos= yypos1004; yythunkpos= yythunkpos1004; + } if (!yymatchChar('>')) goto l1000; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenFieldset", yybuf+yypos)); + return 1; + l1000:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenFieldset", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseDl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseDl")); if (!yymatchChar('<')) goto l1005; if (!yy_Spnl()) goto l1005; if (!yymatchChar('/')) goto l1005; + { int yypos1006= yypos, yythunkpos1006= yythunkpos; if (!yymatchString("dl")) goto l1007; goto l1006; + l1007:; yypos= yypos1006; yythunkpos= yythunkpos1006; if (!yymatchString("DL")) goto l1005; + } + l1006:; if (!yy_Spnl()) goto l1005; if (!yymatchChar('>')) goto l1005; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDl", yybuf+yypos)); + return 1; + l1005:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenDl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenDl")); if (!yymatchChar('<')) goto l1008; if (!yy_Spnl()) goto l1008; + { int yypos1009= yypos, yythunkpos1009= yythunkpos; if (!yymatchString("dl")) goto l1010; goto l1009; + l1010:; yypos= yypos1009; yythunkpos= yythunkpos1009; if (!yymatchString("DL")) goto l1008; + } + l1009:; if (!yy_Spnl()) goto l1008; + l1011:; + { int yypos1012= yypos, yythunkpos1012= yythunkpos; if (!yy_HtmlAttribute()) goto l1012; goto l1011; + l1012:; yypos= yypos1012; yythunkpos= yythunkpos1012; + } if (!yymatchChar('>')) goto l1008; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDl", yybuf+yypos)); + return 1; + l1008:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseDiv() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseDiv")); if (!yymatchChar('<')) goto l1013; if (!yy_Spnl()) goto l1013; if (!yymatchChar('/')) goto l1013; + { int yypos1014= yypos, yythunkpos1014= yythunkpos; if (!yymatchString("div")) goto l1015; goto l1014; + l1015:; yypos= yypos1014; yythunkpos= yythunkpos1014; if (!yymatchString("DIV")) goto l1013; + } + l1014:; if (!yy_Spnl()) goto l1013; if (!yymatchChar('>')) goto l1013; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDiv", yybuf+yypos)); + return 1; + l1013:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDiv", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenDiv() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenDiv")); if (!yymatchChar('<')) goto l1016; if (!yy_Spnl()) goto l1016; + { int yypos1017= yypos, yythunkpos1017= yythunkpos; if (!yymatchString("div")) goto l1018; goto l1017; + l1018:; yypos= yypos1017; yythunkpos= yythunkpos1017; if (!yymatchString("DIV")) goto l1016; + } + l1017:; if (!yy_Spnl()) goto l1016; + l1019:; + { int yypos1020= yypos, yythunkpos1020= yythunkpos; if (!yy_HtmlAttribute()) goto l1020; goto l1019; + l1020:; yypos= yypos1020; yythunkpos= yythunkpos1020; + } if (!yymatchChar('>')) goto l1016; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDiv", yybuf+yypos)); + return 1; + l1016:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDiv", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseDir() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseDir")); if (!yymatchChar('<')) goto l1021; if (!yy_Spnl()) goto l1021; if (!yymatchChar('/')) goto l1021; + { int yypos1022= yypos, yythunkpos1022= yythunkpos; if (!yymatchString("dir")) goto l1023; goto l1022; + l1023:; yypos= yypos1022; yythunkpos= yythunkpos1022; if (!yymatchString("DIR")) goto l1021; + } + l1022:; if (!yy_Spnl()) goto l1021; if (!yymatchChar('>')) goto l1021; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseDir", yybuf+yypos)); + return 1; + l1021:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseDir", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenDir() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenDir")); if (!yymatchChar('<')) goto l1024; if (!yy_Spnl()) goto l1024; + { int yypos1025= yypos, yythunkpos1025= yythunkpos; if (!yymatchString("dir")) goto l1026; goto l1025; + l1026:; yypos= yypos1025; yythunkpos= yythunkpos1025; if (!yymatchString("DIR")) goto l1024; + } + l1025:; if (!yy_Spnl()) goto l1024; + l1027:; + { int yypos1028= yypos, yythunkpos1028= yythunkpos; if (!yy_HtmlAttribute()) goto l1028; goto l1027; + l1028:; yypos= yypos1028; yythunkpos= yythunkpos1028; + } if (!yymatchChar('>')) goto l1024; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenDir", yybuf+yypos)); + return 1; + l1024:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenDir", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseCenter() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseCenter")); if (!yymatchChar('<')) goto l1029; if (!yy_Spnl()) goto l1029; if (!yymatchChar('/')) goto l1029; + { int yypos1030= yypos, yythunkpos1030= yythunkpos; if (!yymatchString("center")) goto l1031; goto l1030; + l1031:; yypos= yypos1030; yythunkpos= yythunkpos1030; if (!yymatchString("CENTER")) goto l1029; + } + l1030:; if (!yy_Spnl()) goto l1029; if (!yymatchChar('>')) goto l1029; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseCenter", yybuf+yypos)); + return 1; + l1029:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseCenter", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenCenter() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenCenter")); if (!yymatchChar('<')) goto l1032; if (!yy_Spnl()) goto l1032; + { int yypos1033= yypos, yythunkpos1033= yythunkpos; if (!yymatchString("center")) goto l1034; goto l1033; + l1034:; yypos= yypos1033; yythunkpos= yythunkpos1033; if (!yymatchString("CENTER")) goto l1032; + } + l1033:; if (!yy_Spnl()) goto l1032; + l1035:; + { int yypos1036= yypos, yythunkpos1036= yythunkpos; if (!yy_HtmlAttribute()) goto l1036; goto l1035; + l1036:; yypos= yypos1036; yythunkpos= yythunkpos1036; + } if (!yymatchChar('>')) goto l1032; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenCenter", yybuf+yypos)); + return 1; + l1032:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenCenter", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseBlockquote() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseBlockquote")); if (!yymatchChar('<')) goto l1037; if (!yy_Spnl()) goto l1037; if (!yymatchChar('/')) goto l1037; + { int yypos1038= yypos, yythunkpos1038= yythunkpos; if (!yymatchString("blockquote")) goto l1039; goto l1038; + l1039:; yypos= yypos1038; yythunkpos= yythunkpos1038; if (!yymatchString("BLOCKQUOTE")) goto l1037; + } + l1038:; if (!yy_Spnl()) goto l1037; if (!yymatchChar('>')) goto l1037; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseBlockquote", yybuf+yypos)); + return 1; + l1037:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseBlockquote", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenBlockquote() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenBlockquote")); if (!yymatchChar('<')) goto l1040; if (!yy_Spnl()) goto l1040; + { int yypos1041= yypos, yythunkpos1041= yythunkpos; if (!yymatchString("blockquote")) goto l1042; goto l1041; + l1042:; yypos= yypos1041; yythunkpos= yythunkpos1041; if (!yymatchString("BLOCKQUOTE")) goto l1040; + } + l1041:; if (!yy_Spnl()) goto l1040; + l1043:; + { int yypos1044= yypos, yythunkpos1044= yythunkpos; if (!yy_HtmlAttribute()) goto l1044; goto l1043; + l1044:; yypos= yypos1044; yythunkpos= yythunkpos1044; + } if (!yymatchChar('>')) goto l1040; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenBlockquote", yybuf+yypos)); + return 1; + l1040:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenBlockquote", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockCloseAddress() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockCloseAddress")); if (!yymatchChar('<')) goto l1045; if (!yy_Spnl()) goto l1045; if (!yymatchChar('/')) goto l1045; + { int yypos1046= yypos, yythunkpos1046= yythunkpos; if (!yymatchString("address")) goto l1047; goto l1046; + l1047:; yypos= yypos1046; yythunkpos= yythunkpos1046; if (!yymatchString("ADDRESS")) goto l1045; + } + l1046:; if (!yy_Spnl()) goto l1045; if (!yymatchChar('>')) goto l1045; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockCloseAddress", yybuf+yypos)); + return 1; + l1045:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockCloseAddress", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlAttribute() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlAttribute")); + { int yypos1051= yypos, yythunkpos1051= yythunkpos; if (!yy_Alphanumeric()) goto l1052; goto l1051; + l1052:; yypos= yypos1051; yythunkpos= yythunkpos1051; if (!yymatchChar('-')) goto l1048; + } + l1051:; + l1049:; + { int yypos1050= yypos, yythunkpos1050= yythunkpos; + { int yypos1053= yypos, yythunkpos1053= yythunkpos; if (!yy_Alphanumeric()) goto l1054; goto l1053; + l1054:; yypos= yypos1053; yythunkpos= yythunkpos1053; if (!yymatchChar('-')) goto l1050; + } + l1053:; goto l1049; + l1050:; yypos= yypos1050; yythunkpos= yythunkpos1050; + } if (!yy_Spnl()) goto l1048; + { int yypos1055= yypos, yythunkpos1055= yythunkpos; if (!yymatchChar('=')) goto l1055; if (!yy_Spnl()) goto l1055; + { int yypos1057= yypos, yythunkpos1057= yythunkpos; if (!yy_Quoted()) goto l1058; goto l1057; + l1058:; yypos= yypos1057; yythunkpos= yythunkpos1057; if (!yy_Nonspacechar()) goto l1055; + l1059:; + { int yypos1060= yypos, yythunkpos1060= yythunkpos; if (!yy_Nonspacechar()) goto l1060; goto l1059; + l1060:; yypos= yypos1060; yythunkpos= yythunkpos1060; + } + } + l1057:; goto l1056; + l1055:; yypos= yypos1055; yythunkpos= yythunkpos1055; + } + l1056:; if (!yy_Spnl()) goto l1048; + yyprintf((stderr, " ok %s @ %s\n", "HtmlAttribute", yybuf+yypos)); + return 1; + l1048:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlAttribute", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Spnl() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Spnl")); if (!yy_Sp()) goto l1061; + { int yypos1062= yypos, yythunkpos1062= yythunkpos; if (!yy_Newline()) goto l1062; if (!yy_Sp()) goto l1062; goto l1063; + l1062:; yypos= yypos1062; yythunkpos= yythunkpos1062; + } + l1063:; + yyprintf((stderr, " ok %s @ %s\n", "Spnl", yybuf+yypos)); + return 1; + l1061:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Spnl", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlockOpenAddress() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlockOpenAddress")); if (!yymatchChar('<')) goto l1064; if (!yy_Spnl()) goto l1064; + { int yypos1065= yypos, yythunkpos1065= yythunkpos; if (!yymatchString("address")) goto l1066; goto l1065; + l1066:; yypos= yypos1065; yythunkpos= yythunkpos1065; if (!yymatchString("ADDRESS")) goto l1064; + } + l1065:; if (!yy_Spnl()) goto l1064; + l1067:; + { int yypos1068= yypos, yythunkpos1068= yythunkpos; if (!yy_HtmlAttribute()) goto l1068; goto l1067; + l1068:; yypos= yypos1068; yythunkpos= yythunkpos1068; + } if (!yymatchChar('>')) goto l1064; + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlockOpenAddress", yybuf+yypos)); + return 1; + l1064:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlockOpenAddress", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OptionallyIndentedLine() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "OptionallyIndentedLine")); + { int yypos1070= yypos, yythunkpos1070= yythunkpos; if (!yy_Indent()) goto l1070; goto l1071; + l1070:; yypos= yypos1070; yythunkpos= yythunkpos1070; + } + l1071:; if (!yy_Line()) goto l1069; + yyprintf((stderr, " ok %s @ %s\n", "OptionallyIndentedLine", yybuf+yypos)); + return 1; + l1069:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OptionallyIndentedLine", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OrderedListItem() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "OrderedListItem")); + { int yypos1073= yypos, yythunkpos1073= yythunkpos; if (!yy_HorizontalRule()) goto l1073; goto l1072; + l1073:; yypos= yypos1073; yythunkpos= yythunkpos1073; + } + { int yypos1074= yypos, yythunkpos1074= yythunkpos; if (!yy_Enumerator()) goto l1072; yypos= yypos1074; yythunkpos= yythunkpos1074; + } if (!yy_ListItem()) goto l1072; + yyprintf((stderr, " ok %s @ %s\n", "OrderedListItem", yybuf+yypos)); + return 1; + l1072:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OrderedListItem", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OrderedListLoose() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "OrderedListLoose")); if (!yy_StartList()) goto l1075; yyDo(yySet, -2, 0); if (!yy_OrderedListItem()) goto l1075; yyDo(yySet, -1, 0); + l1078:; + { int yypos1079= yypos, yythunkpos1079= yythunkpos; if (!yy_BlankLine()) goto l1079; goto l1078; + l1079:; yypos= yypos1079; yythunkpos= yythunkpos1079; + } yyDo(yy_1_OrderedListLoose, yybegin, yyend); + l1076:; + { int yypos1077= yypos, yythunkpos1077= yythunkpos; if (!yy_OrderedListItem()) goto l1077; yyDo(yySet, -1, 0); + l1080:; + { int yypos1081= yypos, yythunkpos1081= yythunkpos; if (!yy_BlankLine()) goto l1081; goto l1080; + l1081:; yypos= yypos1081; yythunkpos= yythunkpos1081; + } yyDo(yy_1_OrderedListLoose, yybegin, yyend); goto l1076; + l1077:; yypos= yypos1077; yythunkpos= yythunkpos1077; + } yyDo(yy_2_OrderedListLoose, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "OrderedListLoose", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1075:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OrderedListLoose", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OrderedListTight() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "OrderedListTight")); if (!yy_StartList()) goto l1082; yyDo(yySet, -1, 0); if (!yy_OrderedListItem()) goto l1082; yyDo(yy_1_OrderedListTight, yybegin, yyend); + l1083:; + { int yypos1084= yypos, yythunkpos1084= yythunkpos; if (!yy_OrderedListItem()) goto l1084; yyDo(yy_1_OrderedListTight, yybegin, yyend); goto l1083; + l1084:; yypos= yypos1084; yythunkpos= yythunkpos1084; + } + l1085:; + { int yypos1086= yypos, yythunkpos1086= yythunkpos; if (!yy_BlankLine()) goto l1086; goto l1085; + l1086:; yypos= yypos1086; yythunkpos= yythunkpos1086; + } + { int yypos1087= yypos, yythunkpos1087= yythunkpos; if (!yy_OrderedListLoose()) goto l1087; goto l1082; + l1087:; yypos= yypos1087; yythunkpos= yythunkpos1087; + } yyDo(yy_2_OrderedListTight, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "OrderedListTight", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1082:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OrderedListTight", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Indent() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Indent")); + { int yypos1089= yypos, yythunkpos1089= yythunkpos; if (!yymatchChar('\t')) goto l1090; goto l1089; + l1090:; yypos= yypos1089; yythunkpos= yythunkpos1089; if (!yymatchString(" ")) goto l1088; + } + l1089:; + yyprintf((stderr, " ok %s @ %s\n", "Indent", yybuf+yypos)); + return 1; + l1088:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Indent", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BlankLines() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "BlankLines")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l1091; + l1092:; + { int yypos1093= yypos, yythunkpos1093= yythunkpos; if (!yy_BlankLine()) goto l1093; goto l1092; + l1093:; yypos= yypos1093; yythunkpos= yythunkpos1093; + } yyText(yybegin, yyend); if (!(YY_END)) goto l1091; yyDo(yy_1_BlankLines, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BlankLines", yybuf+yypos)); + return 1; + l1091:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BlankLines", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ListBlockLine() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "ListBlockLine")); + { int yypos1095= yypos, yythunkpos1095= yythunkpos; + { int yypos1096= yypos, yythunkpos1096= yythunkpos; if (!yy_Indent()) goto l1096; goto l1097; + l1096:; yypos= yypos1096; yythunkpos= yythunkpos1096; + } + l1097:; + { int yypos1098= yypos, yythunkpos1098= yythunkpos; if (!yy_BulletListItem()) goto l1099; goto l1098; + l1099:; yypos= yypos1098; yythunkpos= yythunkpos1098; if (!yy_OrderedListItem()) goto l1095; + } + l1098:; goto l1094; + l1095:; yypos= yypos1095; yythunkpos= yythunkpos1095; + } + { int yypos1100= yypos, yythunkpos1100= yythunkpos; if (!yy_BlankLine()) goto l1100; goto l1094; + l1100:; yypos= yypos1100; yythunkpos= yythunkpos1100; + } if (!yy_OptionallyIndentedLine()) goto l1094; + yyprintf((stderr, " ok %s @ %s\n", "ListBlockLine", yybuf+yypos)); + return 1; + l1094:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ListBlockLine", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ListContinuationBlock() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "ListContinuationBlock")); if (!yy_StartList()) goto l1101; yyDo(yySet, -1, 0); if (!yy_BlankLines()) goto l1101; yyDo(yy_1_ListContinuationBlock, yybegin, yyend); if (!yy_Indent()) goto l1101; if (!yy_ListBlock()) goto l1101; yyDo(yy_2_ListContinuationBlock, yybegin, yyend); + l1102:; + { int yypos1103= yypos, yythunkpos1103= yythunkpos; if (!yy_Indent()) goto l1103; if (!yy_ListBlock()) goto l1103; yyDo(yy_2_ListContinuationBlock, yybegin, yyend); goto l1102; + l1103:; yypos= yypos1103; yythunkpos= yythunkpos1103; + } yyDo(yy_3_ListContinuationBlock, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ListContinuationBlock", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1101:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ListContinuationBlock", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ListBlock() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "ListBlock")); if (!yy_StartList()) goto l1104; yyDo(yySet, -1, 0); if (!yy_Line()) goto l1104; yyDo(yy_1_ListBlock, yybegin, yyend); + l1105:; + { int yypos1106= yypos, yythunkpos1106= yythunkpos; if (!yy_ListBlockLine()) goto l1106; yyDo(yy_2_ListBlock, yybegin, yyend); goto l1105; + l1106:; yypos= yypos1106; yythunkpos= yythunkpos1106; + } yyDo(yy_3_ListBlock, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ListBlock", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1104:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ListBlock", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Enumerator() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Enumerator")); if (!yy_NonindentSpace()) goto l1107; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l1107; + l1108:; + { int yypos1109= yypos, yythunkpos1109= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l1109; goto l1108; + l1109:; yypos= yypos1109; yythunkpos= yythunkpos1109; + } if (!yymatchChar('.')) goto l1107; if (!yy_Spacechar()) goto l1107; + l1110:; + { int yypos1111= yypos, yythunkpos1111= yythunkpos; if (!yy_Spacechar()) goto l1111; goto l1110; + l1111:; yypos= yypos1111; yythunkpos= yythunkpos1111; + } + yyprintf((stderr, " ok %s @ %s\n", "Enumerator", yybuf+yypos)); + return 1; + l1107:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Enumerator", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_ListItem() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "ListItem")); + { int yypos1113= yypos, yythunkpos1113= yythunkpos; if (!yy_Bullet()) goto l1114; goto l1113; + l1114:; yypos= yypos1113; yythunkpos= yythunkpos1113; if (!yy_Enumerator()) goto l1112; + } + l1113:; if (!yy_StartList()) goto l1112; yyDo(yySet, -1, 0); if (!yy_ListBlock()) goto l1112; yyDo(yy_1_ListItem, yybegin, yyend); + l1115:; + { int yypos1116= yypos, yythunkpos1116= yythunkpos; if (!yy_ListContinuationBlock()) goto l1116; yyDo(yy_2_ListItem, yybegin, yyend); goto l1115; + l1116:; yypos= yypos1116; yythunkpos= yythunkpos1116; + } yyDo(yy_3_ListItem, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "ListItem", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1112:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "ListItem", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BulletListItem() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "BulletListItem")); + { int yypos1118= yypos, yythunkpos1118= yythunkpos; if (!yy_HorizontalRule()) goto l1118; goto l1117; + l1118:; yypos= yypos1118; yythunkpos= yythunkpos1118; + } + { int yypos1119= yypos, yythunkpos1119= yythunkpos; if (!yy_Bullet()) goto l1117; yypos= yypos1119; yythunkpos= yythunkpos1119; + } if (!yy_ListItem()) goto l1117; + yyprintf((stderr, " ok %s @ %s\n", "BulletListItem", yybuf+yypos)); + return 1; + l1117:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BulletListItem", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BulletListLoose() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "BulletListLoose")); if (!yy_StartList()) goto l1120; yyDo(yySet, -2, 0); if (!yy_BulletListItem()) goto l1120; yyDo(yySet, -1, 0); + l1123:; + { int yypos1124= yypos, yythunkpos1124= yythunkpos; if (!yy_BlankLine()) goto l1124; goto l1123; + l1124:; yypos= yypos1124; yythunkpos= yythunkpos1124; + } yyDo(yy_1_BulletListLoose, yybegin, yyend); + l1121:; + { int yypos1122= yypos, yythunkpos1122= yythunkpos; if (!yy_BulletListItem()) goto l1122; yyDo(yySet, -1, 0); + l1125:; + { int yypos1126= yypos, yythunkpos1126= yythunkpos; if (!yy_BlankLine()) goto l1126; goto l1125; + l1126:; yypos= yypos1126; yythunkpos= yythunkpos1126; + } yyDo(yy_1_BulletListLoose, yybegin, yyend); goto l1121; + l1122:; yypos= yypos1122; yythunkpos= yythunkpos1122; + } yyDo(yy_2_BulletListLoose, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BulletListLoose", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1120:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BulletListLoose", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BulletListTight() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "BulletListTight")); if (!yy_StartList()) goto l1127; yyDo(yySet, -1, 0); if (!yy_BulletListItem()) goto l1127; yyDo(yy_1_BulletListTight, yybegin, yyend); + l1128:; + { int yypos1129= yypos, yythunkpos1129= yythunkpos; if (!yy_BulletListItem()) goto l1129; yyDo(yy_1_BulletListTight, yybegin, yyend); goto l1128; + l1129:; yypos= yypos1129; yythunkpos= yythunkpos1129; + } + l1130:; + { int yypos1131= yypos, yythunkpos1131= yythunkpos; if (!yy_BlankLine()) goto l1131; goto l1130; + l1131:; yypos= yypos1131; yythunkpos= yythunkpos1131; + } + { int yypos1132= yypos, yythunkpos1132= yythunkpos; if (!yy_BulletListLoose()) goto l1132; goto l1127; + l1132:; yypos= yypos1132; yythunkpos= yythunkpos1132; + } yyDo(yy_2_BulletListTight, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BulletListTight", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1127:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BulletListTight", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Spacechar() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Spacechar")); + { int yypos1134= yypos, yythunkpos1134= yythunkpos; if (!yymatchChar(' ')) goto l1135; goto l1134; + l1135:; yypos= yypos1134; yythunkpos= yythunkpos1134; if (!yymatchChar('\t')) goto l1133; + } + l1134:; + yyprintf((stderr, " ok %s @ %s\n", "Spacechar", yybuf+yypos)); + return 1; + l1133:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Spacechar", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Bullet() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Bullet")); if (!yy_NonindentSpace()) goto l1136; + { int yypos1137= yypos, yythunkpos1137= yythunkpos; if (!yymatchChar('+')) goto l1138; goto l1137; + l1138:; yypos= yypos1137; yythunkpos= yythunkpos1137; if (!yymatchChar('*')) goto l1139; goto l1137; + l1139:; yypos= yypos1137; yythunkpos= yythunkpos1137; if (!yymatchChar('-')) goto l1136; + } + l1137:; if (!yy_Spacechar()) goto l1136; + l1140:; + { int yypos1141= yypos, yythunkpos1141= yythunkpos; if (!yy_Spacechar()) goto l1141; goto l1140; + l1141:; yypos= yypos1141; yythunkpos= yythunkpos1141; + } + yyprintf((stderr, " ok %s @ %s\n", "Bullet", yybuf+yypos)); + return 1; + l1136:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Bullet", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_VerbatimChunk() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "VerbatimChunk")); if (!yy_StartList()) goto l1142; yyDo(yySet, -1, 0); + l1143:; + { int yypos1144= yypos, yythunkpos1144= yythunkpos; if (!yy_BlankLine()) goto l1144; yyDo(yy_1_VerbatimChunk, yybegin, yyend); goto l1143; + l1144:; yypos= yypos1144; yythunkpos= yythunkpos1144; + } if (!yy_NonblankIndentedLine()) goto l1142; yyDo(yy_2_VerbatimChunk, yybegin, yyend); + l1145:; + { int yypos1146= yypos, yythunkpos1146= yythunkpos; if (!yy_NonblankIndentedLine()) goto l1146; yyDo(yy_2_VerbatimChunk, yybegin, yyend); goto l1145; + l1146:; yypos= yypos1146; yythunkpos= yythunkpos1146; + } yyDo(yy_3_VerbatimChunk, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "VerbatimChunk", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1142:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "VerbatimChunk", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_IndentedLine() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "IndentedLine")); if (!yy_Indent()) goto l1147; if (!yy_Line()) goto l1147; + yyprintf((stderr, " ok %s @ %s\n", "IndentedLine", yybuf+yypos)); + return 1; + l1147:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "IndentedLine", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_NonblankIndentedLine() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "NonblankIndentedLine")); + { int yypos1149= yypos, yythunkpos1149= yythunkpos; if (!yy_BlankLine()) goto l1149; goto l1148; + l1149:; yypos= yypos1149; yythunkpos= yythunkpos1149; + } if (!yy_IndentedLine()) goto l1148; + yyprintf((stderr, " ok %s @ %s\n", "NonblankIndentedLine", yybuf+yypos)); + return 1; + l1148:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "NonblankIndentedLine", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Line() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Line")); + { int yypos1151= yypos, yythunkpos1151= yythunkpos; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l1152; + l1153:; + { int yypos1154= yypos, yythunkpos1154= yythunkpos; + { int yypos1155= yypos, yythunkpos1155= yythunkpos; if (!yymatchChar('\r')) goto l1155; goto l1154; + l1155:; yypos= yypos1155; yythunkpos= yythunkpos1155; + } + { int yypos1156= yypos, yythunkpos1156= yythunkpos; if (!yymatchChar('\n')) goto l1156; goto l1154; + l1156:; yypos= yypos1156; yythunkpos= yythunkpos1156; + } if (!yymatchDot()) goto l1154; goto l1153; + l1154:; yypos= yypos1154; yythunkpos= yythunkpos1154; + } if (!yy_Newline()) goto l1152; yyText(yybegin, yyend); if (!(YY_END)) goto l1152; goto l1151; + l1152:; yypos= yypos1151; yythunkpos= yythunkpos1151; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l1150; if (!yymatchDot()) goto l1150; + l1157:; + { int yypos1158= yypos, yythunkpos1158= yythunkpos; if (!yymatchDot()) goto l1158; goto l1157; + l1158:; yypos= yypos1158; yythunkpos= yythunkpos1158; + } yyText(yybegin, yyend); if (!(YY_END)) goto l1150; if (!yy_Eof()) goto l1150; + } + l1151:; yyDo(yy_1_Line, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Line", yybuf+yypos)); + return 1; + l1150:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Line", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BlockQuoteRaw() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "BlockQuoteRaw")); if (!yy_StartList()) goto l1159; yyDo(yySet, -1, 0); if (!yymatchChar('>')) goto l1159; + { int yypos1162= yypos, yythunkpos1162= yythunkpos; if (!yymatchChar(' ')) goto l1162; goto l1163; + l1162:; yypos= yypos1162; yythunkpos= yythunkpos1162; + } + l1163:; if (!yy_Line()) goto l1159; yyDo(yy_1_BlockQuoteRaw, yybegin, yyend); + l1164:; + { int yypos1165= yypos, yythunkpos1165= yythunkpos; + { int yypos1166= yypos, yythunkpos1166= yythunkpos; if (!yymatchChar('>')) goto l1166; goto l1165; + l1166:; yypos= yypos1166; yythunkpos= yythunkpos1166; + } + { int yypos1167= yypos, yythunkpos1167= yythunkpos; if (!yy_BlankLine()) goto l1167; goto l1165; + l1167:; yypos= yypos1167; yythunkpos= yythunkpos1167; + } if (!yy_Line()) goto l1165; yyDo(yy_2_BlockQuoteRaw, yybegin, yyend); goto l1164; + l1165:; yypos= yypos1165; yythunkpos= yythunkpos1165; + } + l1168:; + { int yypos1169= yypos, yythunkpos1169= yythunkpos; if (!yy_BlankLine()) goto l1169; yyDo(yy_3_BlockQuoteRaw, yybegin, yyend); goto l1168; + l1169:; yypos= yypos1169; yythunkpos= yythunkpos1169; + } + l1160:; + { int yypos1161= yypos, yythunkpos1161= yythunkpos; if (!yymatchChar('>')) goto l1161; + { int yypos1170= yypos, yythunkpos1170= yythunkpos; if (!yymatchChar(' ')) goto l1170; goto l1171; + l1170:; yypos= yypos1170; yythunkpos= yythunkpos1170; + } + l1171:; if (!yy_Line()) goto l1161; yyDo(yy_1_BlockQuoteRaw, yybegin, yyend); + l1172:; + { int yypos1173= yypos, yythunkpos1173= yythunkpos; + { int yypos1174= yypos, yythunkpos1174= yythunkpos; if (!yymatchChar('>')) goto l1174; goto l1173; + l1174:; yypos= yypos1174; yythunkpos= yythunkpos1174; + } + { int yypos1175= yypos, yythunkpos1175= yythunkpos; if (!yy_BlankLine()) goto l1175; goto l1173; + l1175:; yypos= yypos1175; yythunkpos= yythunkpos1175; + } if (!yy_Line()) goto l1173; yyDo(yy_2_BlockQuoteRaw, yybegin, yyend); goto l1172; + l1173:; yypos= yypos1173; yythunkpos= yythunkpos1173; + } + l1176:; + { int yypos1177= yypos, yythunkpos1177= yythunkpos; if (!yy_BlankLine()) goto l1177; yyDo(yy_3_BlockQuoteRaw, yybegin, yyend); goto l1176; + l1177:; yypos= yypos1177; yythunkpos= yythunkpos1177; + } goto l1160; + l1161:; yypos= yypos1161; yythunkpos= yythunkpos1161; + } yyDo(yy_4_BlockQuoteRaw, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BlockQuoteRaw", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1159:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BlockQuoteRaw", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Endline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Endline")); + { int yypos1179= yypos, yythunkpos1179= yythunkpos; if (!yy_TerminalEndline()) goto l1180; goto l1179; + l1180:; yypos= yypos1179; yythunkpos= yythunkpos1179; if (!yy_NormalEndline()) goto l1178; + } + l1179:; + yyprintf((stderr, " ok %s @ %s\n", "Endline", yybuf+yypos)); + return 1; + l1178:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Endline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SetextHeading2() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "SetextHeading2")); if (!yy_StartList()) goto l1181; yyDo(yySet, -1, 0); + { int yypos1184= yypos, yythunkpos1184= yythunkpos; if (!yy_Endline()) goto l1184; goto l1181; + l1184:; yypos= yypos1184; yythunkpos= yythunkpos1184; + } if (!yy_Inline()) goto l1181; yyDo(yy_1_SetextHeading2, yybegin, yyend); + l1182:; + { int yypos1183= yypos, yythunkpos1183= yythunkpos; + { int yypos1185= yypos, yythunkpos1185= yythunkpos; if (!yy_Endline()) goto l1185; goto l1183; + l1185:; yypos= yypos1185; yythunkpos= yythunkpos1185; + } if (!yy_Inline()) goto l1183; yyDo(yy_1_SetextHeading2, yybegin, yyend); goto l1182; + l1183:; yypos= yypos1183; yythunkpos= yythunkpos1183; + } if (!yy_Newline()) goto l1181; if (!yymatchString("---")) goto l1181; + l1186:; + { int yypos1187= yypos, yythunkpos1187= yythunkpos; if (!yymatchChar('-')) goto l1187; goto l1186; + l1187:; yypos= yypos1187; yythunkpos= yythunkpos1187; + } if (!yy_Newline()) goto l1181; yyDo(yy_2_SetextHeading2, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "SetextHeading2", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1181:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SetextHeading2", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SetextHeading1() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "SetextHeading1")); if (!yy_StartList()) goto l1188; yyDo(yySet, -1, 0); + { int yypos1191= yypos, yythunkpos1191= yythunkpos; if (!yy_Endline()) goto l1191; goto l1188; + l1191:; yypos= yypos1191; yythunkpos= yythunkpos1191; + } if (!yy_Inline()) goto l1188; yyDo(yy_1_SetextHeading1, yybegin, yyend); + l1189:; + { int yypos1190= yypos, yythunkpos1190= yythunkpos; + { int yypos1192= yypos, yythunkpos1192= yythunkpos; if (!yy_Endline()) goto l1192; goto l1190; + l1192:; yypos= yypos1192; yythunkpos= yythunkpos1192; + } if (!yy_Inline()) goto l1190; yyDo(yy_1_SetextHeading1, yybegin, yyend); goto l1189; + l1190:; yypos= yypos1190; yythunkpos= yythunkpos1190; + } if (!yy_Newline()) goto l1188; if (!yymatchString("===")) goto l1188; + l1193:; + { int yypos1194= yypos, yythunkpos1194= yythunkpos; if (!yymatchChar('=')) goto l1194; goto l1193; + l1194:; yypos= yypos1194; yythunkpos= yythunkpos1194; + } if (!yy_Newline()) goto l1188; yyDo(yy_2_SetextHeading1, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "SetextHeading1", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1188:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SetextHeading1", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_SetextHeading() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "SetextHeading")); + { int yypos1196= yypos, yythunkpos1196= yythunkpos; if (!yy_SetextHeading1()) goto l1197; goto l1196; + l1197:; yypos= yypos1196; yythunkpos= yythunkpos1196; if (!yy_SetextHeading2()) goto l1195; + } + l1196:; + yyprintf((stderr, " ok %s @ %s\n", "SetextHeading", yybuf+yypos)); + return 1; + l1195:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "SetextHeading", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AtxHeading() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "AtxHeading")); if (!yy_AtxStart()) goto l1198; yyDo(yySet, -2, 0); if (!yy_Sp()) goto l1198; if (!yy_StartList()) goto l1198; yyDo(yySet, -1, 0); if (!yy_AtxInline()) goto l1198; yyDo(yy_1_AtxHeading, yybegin, yyend); + l1199:; + { int yypos1200= yypos, yythunkpos1200= yythunkpos; if (!yy_AtxInline()) goto l1200; yyDo(yy_1_AtxHeading, yybegin, yyend); goto l1199; + l1200:; yypos= yypos1200; yythunkpos= yythunkpos1200; + } + { int yypos1201= yypos, yythunkpos1201= yythunkpos; if (!yy_Sp()) goto l1201; + l1203:; + { int yypos1204= yypos, yythunkpos1204= yythunkpos; if (!yymatchChar('#')) goto l1204; goto l1203; + l1204:; yypos= yypos1204; yythunkpos= yythunkpos1204; + } if (!yy_Sp()) goto l1201; goto l1202; + l1201:; yypos= yypos1201; yythunkpos= yythunkpos1201; + } + l1202:; if (!yy_Newline()) goto l1198; yyDo(yy_2_AtxHeading, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "AtxHeading", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1198:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AtxHeading", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AtxStart() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "AtxStart")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l1205; + { int yypos1206= yypos, yythunkpos1206= yythunkpos; if (!yymatchString("######")) goto l1207; goto l1206; + l1207:; yypos= yypos1206; yythunkpos= yythunkpos1206; if (!yymatchString("#####")) goto l1208; goto l1206; + l1208:; yypos= yypos1206; yythunkpos= yythunkpos1206; if (!yymatchString("####")) goto l1209; goto l1206; + l1209:; yypos= yypos1206; yythunkpos= yythunkpos1206; if (!yymatchString("###")) goto l1210; goto l1206; + l1210:; yypos= yypos1206; yythunkpos= yythunkpos1206; if (!yymatchString("##")) goto l1211; goto l1206; + l1211:; yypos= yypos1206; yythunkpos= yythunkpos1206; if (!yymatchChar('#')) goto l1205; + } + l1206:; yyText(yybegin, yyend); if (!(YY_END)) goto l1205; yyDo(yy_1_AtxStart, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "AtxStart", yybuf+yypos)); + return 1; + l1205:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AtxStart", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Inline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Inline")); + { int yypos1213= yypos, yythunkpos1213= yythunkpos; if (!yy_Str()) goto l1214; goto l1213; + l1214:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_LineBreak()) goto l1215; goto l1213; + l1215:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Endline()) goto l1216; goto l1213; + l1216:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Space()) goto l1217; goto l1213; + l1217:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Strong()) goto l1218; goto l1213; + l1218:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Emph()) goto l1219; goto l1213; + l1219:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Image()) goto l1220; goto l1213; + l1220:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Link()) goto l1221; goto l1213; + l1221:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_NoteReference()) goto l1222; goto l1213; + l1222:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_InlineNote()) goto l1223; goto l1213; + l1223:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Code()) goto l1224; goto l1213; + l1224:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_RawHtml()) goto l1225; goto l1213; + l1225:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Entity()) goto l1226; goto l1213; + l1226:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_EscapedChar()) goto l1227; goto l1213; + l1227:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Smart()) goto l1228; goto l1213; + l1228:; yypos= yypos1213; yythunkpos= yythunkpos1213; if (!yy_Symbol()) goto l1212; + } + l1213:; + yyprintf((stderr, " ok %s @ %s\n", "Inline", yybuf+yypos)); + return 1; + l1212:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Inline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Sp() +{ + yyprintf((stderr, "%s\n", "Sp")); + l1230:; + { int yypos1231= yypos, yythunkpos1231= yythunkpos; if (!yy_Spacechar()) goto l1231; goto l1230; + l1231:; yypos= yypos1231; yythunkpos= yythunkpos1231; + } + yyprintf((stderr, " ok %s @ %s\n", "Sp", yybuf+yypos)); + return 1; +} +YY_RULE(int) yy_Newline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Newline")); + { int yypos1233= yypos, yythunkpos1233= yythunkpos; if (!yymatchChar('\n')) goto l1234; goto l1233; + l1234:; yypos= yypos1233; yythunkpos= yythunkpos1233; if (!yymatchChar('\r')) goto l1232; + { int yypos1235= yypos, yythunkpos1235= yythunkpos; if (!yymatchChar('\n')) goto l1235; goto l1236; + l1235:; yypos= yypos1235; yythunkpos= yythunkpos1235; + } + l1236:; + } + l1233:; + yyprintf((stderr, " ok %s @ %s\n", "Newline", yybuf+yypos)); + return 1; + l1232:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Newline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_AtxInline() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "AtxInline")); + { int yypos1238= yypos, yythunkpos1238= yythunkpos; if (!yy_Newline()) goto l1238; goto l1237; + l1238:; yypos= yypos1238; yythunkpos= yythunkpos1238; + } + { int yypos1239= yypos, yythunkpos1239= yythunkpos; if (!yy_Sp()) goto l1239; + l1240:; + { int yypos1241= yypos, yythunkpos1241= yythunkpos; if (!yymatchChar('#')) goto l1241; goto l1240; + l1241:; yypos= yypos1241; yythunkpos= yythunkpos1241; + } if (!yy_Sp()) goto l1239; if (!yy_Newline()) goto l1239; goto l1237; + l1239:; yypos= yypos1239; yythunkpos= yythunkpos1239; + } if (!yy_Inline()) goto l1237; + yyprintf((stderr, " ok %s @ %s\n", "AtxInline", yybuf+yypos)); + return 1; + l1237:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "AtxInline", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Inlines() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "Inlines")); if (!yy_StartList()) goto l1242; yyDo(yySet, -2, 0); + { int yypos1245= yypos, yythunkpos1245= yythunkpos; + { int yypos1247= yypos, yythunkpos1247= yythunkpos; if (!yy_Endline()) goto l1247; goto l1246; + l1247:; yypos= yypos1247; yythunkpos= yythunkpos1247; + } if (!yy_Inline()) goto l1246; yyDo(yy_1_Inlines, yybegin, yyend); goto l1245; + l1246:; yypos= yypos1245; yythunkpos= yythunkpos1245; if (!yy_Endline()) goto l1242; yyDo(yySet, -1, 0); + { int yypos1248= yypos, yythunkpos1248= yythunkpos; if (!yy_Inline()) goto l1242; yypos= yypos1248; yythunkpos= yythunkpos1248; + } yyDo(yy_2_Inlines, yybegin, yyend); + } + l1245:; + l1243:; + { int yypos1244= yypos, yythunkpos1244= yythunkpos; + { int yypos1249= yypos, yythunkpos1249= yythunkpos; + { int yypos1251= yypos, yythunkpos1251= yythunkpos; if (!yy_Endline()) goto l1251; goto l1250; + l1251:; yypos= yypos1251; yythunkpos= yythunkpos1251; + } if (!yy_Inline()) goto l1250; yyDo(yy_1_Inlines, yybegin, yyend); goto l1249; + l1250:; yypos= yypos1249; yythunkpos= yythunkpos1249; if (!yy_Endline()) goto l1244; yyDo(yySet, -1, 0); + { int yypos1252= yypos, yythunkpos1252= yythunkpos; if (!yy_Inline()) goto l1244; yypos= yypos1252; yythunkpos= yythunkpos1252; + } yyDo(yy_2_Inlines, yybegin, yyend); + } + l1249:; goto l1243; + l1244:; yypos= yypos1244; yythunkpos= yythunkpos1244; + } + { int yypos1253= yypos, yythunkpos1253= yythunkpos; if (!yy_Endline()) goto l1253; goto l1254; + l1253:; yypos= yypos1253; yythunkpos= yythunkpos1253; + } + l1254:; yyDo(yy_3_Inlines, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Inlines", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1242:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Inlines", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_NonindentSpace() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "NonindentSpace")); + { int yypos1256= yypos, yythunkpos1256= yythunkpos; if (!yymatchString(" ")) goto l1257; goto l1256; + l1257:; yypos= yypos1256; yythunkpos= yythunkpos1256; if (!yymatchString(" ")) goto l1258; goto l1256; + l1258:; yypos= yypos1256; yythunkpos= yythunkpos1256; if (!yymatchChar(' ')) goto l1259; goto l1256; + l1259:; yypos= yypos1256; yythunkpos= yythunkpos1256; if (!yymatchString("")) goto l1255; + } + l1256:; + yyprintf((stderr, " ok %s @ %s\n", "NonindentSpace", yybuf+yypos)); + return 1; + l1255:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "NonindentSpace", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Plain() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Plain")); if (!yy_Inlines()) goto l1260; yyDo(yySet, -1, 0); yyDo(yy_1_Plain, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Plain", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1260:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Plain", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Para() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Para")); if (!yy_NonindentSpace()) goto l1261; if (!yy_Inlines()) goto l1261; yyDo(yySet, -1, 0); if (!yy_BlankLine()) goto l1261; + l1262:; + { int yypos1263= yypos, yythunkpos1263= yythunkpos; if (!yy_BlankLine()) goto l1263; goto l1262; + l1263:; yypos= yypos1263; yythunkpos= yythunkpos1263; + } yyDo(yy_1_Para, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Para", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1261:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Para", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HtmlBlock() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HtmlBlock")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l1264; + { int yypos1265= yypos, yythunkpos1265= yythunkpos; if (!yy_HtmlBlockInTags()) goto l1266; goto l1265; + l1266:; yypos= yypos1265; yythunkpos= yythunkpos1265; if (!yy_HtmlComment()) goto l1267; goto l1265; + l1267:; yypos= yypos1265; yythunkpos= yythunkpos1265; if (!yy_HtmlBlockSelfClosing()) goto l1264; + } + l1265:; yyText(yybegin, yyend); if (!(YY_END)) goto l1264; if (!yy_BlankLine()) goto l1264; + l1268:; + { int yypos1269= yypos, yythunkpos1269= yythunkpos; if (!yy_BlankLine()) goto l1269; goto l1268; + l1269:; yypos= yypos1269; yythunkpos= yythunkpos1269; + } yyDo(yy_1_HtmlBlock, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "HtmlBlock", yybuf+yypos)); + return 1; + l1264:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HtmlBlock", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_HorizontalRule() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "HorizontalRule")); if (!yy_NonindentSpace()) goto l1270; + { int yypos1271= yypos, yythunkpos1271= yythunkpos; if (!yymatchChar('*')) goto l1272; if (!yy_Sp()) goto l1272; if (!yymatchChar('*')) goto l1272; if (!yy_Sp()) goto l1272; if (!yymatchChar('*')) goto l1272; + l1273:; + { int yypos1274= yypos, yythunkpos1274= yythunkpos; if (!yy_Sp()) goto l1274; if (!yymatchChar('*')) goto l1274; goto l1273; + l1274:; yypos= yypos1274; yythunkpos= yythunkpos1274; + } goto l1271; + l1272:; yypos= yypos1271; yythunkpos= yythunkpos1271; if (!yymatchChar('-')) goto l1275; if (!yy_Sp()) goto l1275; if (!yymatchChar('-')) goto l1275; if (!yy_Sp()) goto l1275; if (!yymatchChar('-')) goto l1275; + l1276:; + { int yypos1277= yypos, yythunkpos1277= yythunkpos; if (!yy_Sp()) goto l1277; if (!yymatchChar('-')) goto l1277; goto l1276; + l1277:; yypos= yypos1277; yythunkpos= yythunkpos1277; + } goto l1271; + l1275:; yypos= yypos1271; yythunkpos= yythunkpos1271; if (!yymatchChar('_')) goto l1270; if (!yy_Sp()) goto l1270; if (!yymatchChar('_')) goto l1270; if (!yy_Sp()) goto l1270; if (!yymatchChar('_')) goto l1270; + l1278:; + { int yypos1279= yypos, yythunkpos1279= yythunkpos; if (!yy_Sp()) goto l1279; if (!yymatchChar('_')) goto l1279; goto l1278; + l1279:; yypos= yypos1279; yythunkpos= yythunkpos1279; + } + } + l1271:; if (!yy_Sp()) goto l1270; if (!yy_Newline()) goto l1270; if (!yy_BlankLine()) goto l1270; + l1280:; + { int yypos1281= yypos, yythunkpos1281= yythunkpos; if (!yy_BlankLine()) goto l1281; goto l1280; + l1281:; yypos= yypos1281; yythunkpos= yythunkpos1281; + } yyDo(yy_1_HorizontalRule, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "HorizontalRule", yybuf+yypos)); + return 1; + l1270:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "HorizontalRule", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BulletList() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "BulletList")); + { int yypos1283= yypos, yythunkpos1283= yythunkpos; if (!yy_BulletListTight()) goto l1284; goto l1283; + l1284:; yypos= yypos1283; yythunkpos= yythunkpos1283; if (!yy_BulletListLoose()) goto l1282; + } + l1283:; + yyprintf((stderr, " ok %s @ %s\n", "BulletList", yybuf+yypos)); + return 1; + l1282:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BulletList", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_OrderedList() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "OrderedList")); + { int yypos1286= yypos, yythunkpos1286= yythunkpos; if (!yy_OrderedListTight()) goto l1287; goto l1286; + l1287:; yypos= yypos1286; yythunkpos= yythunkpos1286; if (!yy_OrderedListLoose()) goto l1285; + } + l1286:; + yyprintf((stderr, " ok %s @ %s\n", "OrderedList", yybuf+yypos)); + return 1; + l1285:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "OrderedList", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Heading() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Heading")); + { int yypos1289= yypos, yythunkpos1289= yythunkpos; if (!yy_AtxHeading()) goto l1290; goto l1289; + l1290:; yypos= yypos1289; yythunkpos= yythunkpos1289; if (!yy_SetextHeading()) goto l1288; + } + l1289:; + yyprintf((stderr, " ok %s @ %s\n", "Heading", yybuf+yypos)); + return 1; + l1288:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Heading", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Reference() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 3, 0); + yyprintf((stderr, "%s\n", "Reference")); if (!yy_NonindentSpace()) goto l1291; + { int yypos1292= yypos, yythunkpos1292= yythunkpos; if (!yymatchString("[]")) goto l1292; goto l1291; + l1292:; yypos= yypos1292; yythunkpos= yythunkpos1292; + } if (!yy_Label()) goto l1291; yyDo(yySet, -3, 0); if (!yymatchChar(':')) goto l1291; if (!yy_Spnl()) goto l1291; if (!yy_RefSrc()) goto l1291; yyDo(yySet, -2, 0); if (!yy_Spnl()) goto l1291; if (!yy_RefTitle()) goto l1291; yyDo(yySet, -1, 0); + l1293:; + { int yypos1294= yypos, yythunkpos1294= yythunkpos; if (!yy_BlankLine()) goto l1294; goto l1293; + l1294:; yypos= yypos1294; yythunkpos= yythunkpos1294; + } yyDo(yy_1_Reference, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Reference", yybuf+yypos)); yyDo(yyPop, 3, 0); + return 1; + l1291:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Reference", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Note() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 2, 0); + yyprintf((stderr, "%s\n", "Note")); yyText(yybegin, yyend); if (!( extension(EXT_NOTES) )) goto l1295; if (!yy_NonindentSpace()) goto l1295; if (!yy_RawNoteReference()) goto l1295; yyDo(yySet, -2, 0); if (!yymatchChar(':')) goto l1295; if (!yy_Sp()) goto l1295; if (!yy_StartList()) goto l1295; yyDo(yySet, -1, 0); if (!yy_RawNoteBlock()) goto l1295; yyDo(yy_1_Note, yybegin, yyend); + l1296:; + { int yypos1297= yypos, yythunkpos1297= yythunkpos; + { int yypos1298= yypos, yythunkpos1298= yythunkpos; if (!yy_Indent()) goto l1297; yypos= yypos1298; yythunkpos= yythunkpos1298; + } if (!yy_RawNoteBlock()) goto l1297; yyDo(yy_2_Note, yybegin, yyend); goto l1296; + l1297:; yypos= yypos1297; yythunkpos= yythunkpos1297; + } yyDo(yy_3_Note, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Note", yybuf+yypos)); yyDo(yyPop, 2, 0); + return 1; + l1295:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Note", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Verbatim() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Verbatim")); if (!yy_StartList()) goto l1299; yyDo(yySet, -1, 0); if (!yy_VerbatimChunk()) goto l1299; yyDo(yy_1_Verbatim, yybegin, yyend); + l1300:; + { int yypos1301= yypos, yythunkpos1301= yythunkpos; if (!yy_VerbatimChunk()) goto l1301; yyDo(yy_1_Verbatim, yybegin, yyend); goto l1300; + l1301:; yypos= yypos1301; yythunkpos= yythunkpos1301; + } yyDo(yy_2_Verbatim, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Verbatim", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1299:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Verbatim", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BlockQuote() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "BlockQuote")); if (!yy_BlockQuoteRaw()) goto l1302; yyDo(yySet, -1, 0); yyDo(yy_1_BlockQuote, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BlockQuote", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1302:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BlockQuote", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Block() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Block")); + l1304:; + { int yypos1305= yypos, yythunkpos1305= yythunkpos; if (!yy_BlankLine()) goto l1305; goto l1304; + l1305:; yypos= yypos1305; yythunkpos= yythunkpos1305; + } + { int yypos1306= yypos, yythunkpos1306= yythunkpos; if (!yy_BlockQuote()) goto l1307; goto l1306; + l1307:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Verbatim()) goto l1308; goto l1306; + l1308:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Note()) goto l1309; goto l1306; + l1309:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Reference()) goto l1310; goto l1306; + l1310:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Heading()) goto l1311; goto l1306; + l1311:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_OrderedList()) goto l1312; goto l1306; + l1312:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_BulletList()) goto l1313; goto l1306; + l1313:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_HorizontalRule()) goto l1314; goto l1306; + l1314:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_HtmlBlock()) goto l1315; goto l1306; + l1315:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Para()) goto l1316; goto l1306; + l1316:; yypos= yypos1306; yythunkpos= yythunkpos1306; if (!yy_Plain()) goto l1303; + } + l1306:; + yyprintf((stderr, " ok %s @ %s\n", "Block", yybuf+yypos)); + return 1; + l1303:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Block", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_StartList() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "StartList")); + { int yypos1318= yypos, yythunkpos1318= yythunkpos; if (!yymatchDot()) goto l1317; yypos= yypos1318; yythunkpos= yythunkpos1318; + } yyDo(yy_1_StartList, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "StartList", yybuf+yypos)); + return 1; + l1317:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "StartList", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Eof() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "Eof")); + { int yypos1320= yypos, yythunkpos1320= yythunkpos; if (!yymatchDot()) goto l1320; goto l1319; + l1320:; yypos= yypos1320; yythunkpos= yythunkpos1320; + } + yyprintf((stderr, " ok %s @ %s\n", "Eof", yybuf+yypos)); + return 1; + l1319:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Eof", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_BlankLine() +{ int yypos0= yypos, yythunkpos0= yythunkpos; + yyprintf((stderr, "%s\n", "BlankLine")); if (!yy_Sp()) goto l1321; if (!yy_Newline()) goto l1321; yyDo(yy_1_BlankLine, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "BlankLine", yybuf+yypos)); + return 1; + l1321:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "BlankLine", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Blocks() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Blocks")); if (!yy_StartList()) goto l1322; yyDo(yySet, -1, 0); + l1323:; + { int yypos1324= yypos, yythunkpos1324= yythunkpos; if (!yy_Block()) goto l1324; yyDo(yy_1_Blocks, yybegin, yyend); goto l1323; + l1324:; yypos= yypos1324; yythunkpos= yythunkpos1324; + } yyDo(yy_2_Blocks, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Blocks", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1322:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Blocks", yybuf+yypos)); + return 0; +} +YY_RULE(int) yy_Doc() +{ int yypos0= yypos, yythunkpos0= yythunkpos; yyDo(yyPush, 1, 0); + yyprintf((stderr, "%s\n", "Doc")); if (!yy_Blocks()) goto l1325; yyDo(yySet, -1, 0); + l1326:; + { int yypos1327= yypos, yythunkpos1327= yythunkpos; if (!yy_BlankLine()) goto l1327; goto l1326; + l1327:; yypos= yypos1327; yythunkpos= yythunkpos1327; + } if (!yy_Eof()) goto l1325; yyDo(yy_1_Doc, yybegin, yyend); + yyprintf((stderr, " ok %s @ %s\n", "Doc", yybuf+yypos)); yyDo(yyPop, 1, 0); + return 1; + l1325:; yypos= yypos0; yythunkpos= yythunkpos0; + yyprintf((stderr, " fail %s @ %s\n", "Doc", yybuf+yypos)); + return 0; +} + +#ifndef YY_PART + +typedef int (*yyrule)(); + +YY_PARSE(int) YYPARSEFROM(yyrule yystart) +{ + int yyok; + if (!yybuflen) + { + yybuflen= 1024; + yybuf= malloc(yybuflen); + yytextlen= 1024; + yytext= malloc(yytextlen); + yythunkslen= 32; + yythunks= malloc(sizeof(yythunk) * yythunkslen); + yyvalslen= 32; + yyvals= malloc(sizeof(YYSTYPE) * yyvalslen); + yybegin= yyend= yypos= yylimit= yythunkpos= 0; + } + yybegin= yyend= yypos; + yythunkpos= 0; + yyval= yyvals; + yyok= yystart(); + if (yyok) yyDone(); + yyCommit(); + return yyok; + (void)yyrefill; + (void)yymatchDot; + (void)yymatchChar; + (void)yymatchString; + (void)yymatchClass; + (void)yyDo; + (void)yyText; + (void)yyDone; + (void)yyCommit; + (void)yyAccept; + (void)yyPush; + (void)yyPop; + (void)yySet; + (void)yytextmax; +} + +YY_PARSE(int) YYPARSE(void) +{ + return YYPARSEFROM(yy_Doc); +} + +#endif + + +element markdown(char *string, int extensions) { + + char *oldcharbuf; + + syntax_extensions = extensions; + + oldcharbuf = charbuf; + charbuf = string; + yyparsefrom(yy_References); /* first pass, just to collect references */ + + if (extension(EXT_NOTES)) { + charbuf = string; + yyparsefrom(yy_Notes); /* second pass for notes */ + } + + charbuf = string; /* third pass, for real this time */ + yyparsefrom(yy_Doc); + + charbuf = oldcharbuf; /* restore charbuf to original value */ + return parse_result; + +} + + diff --git a/ext/markdown_peg.h b/ext/markdown_peg.h new file mode 100644 index 0000000..9132dc5 --- /dev/null +++ b/ext/markdown_peg.h @@ -0,0 +1,84 @@ +/* markdown_peg.h */ + +extern char *strdup(const char *string); + +/********************************************************************** + + Data Structures + + ***********************************************************************/ + +/* Information (label, URL and title) for a link. */ +struct Link { + struct Element *label; + char *url; + char *title; +}; + +typedef struct Link link; + +/* Union for contents of an Element (string, list, or link). */ +union Contents { + char *str; + struct Link link; +}; + +/* Types of semantic values returned by parsers. */ +enum keys { LIST, /* A generic list of values. For ordered and bullet lists, see below. */ + RAW, /* Raw markdown to be processed further */ + SPACE, + LINEBREAK, + ELLIPSIS, + EMDASH, + ENDASH, + APOSTROPHE, + SINGLEQUOTED, + DOUBLEQUOTED, + STR, + LINK, + IMAGE, + CODE, + HTML, + EMPH, + STRONG, + PLAIN, + PARA, + LISTITEM, + BULLETLIST, + ORDEREDLIST, + H1, H2, H3, H4, H5, H6, /* Code assumes that these are in order. */ + BLOCKQUOTE, + VERBATIM, + HTMLBLOCK, + HRULE, + REFERENCE, + NOTE, + }; + +/* Semantic value of a parsing action. */ +struct Element { + int key; + union Contents contents; + struct Element *children; + struct Element *next; +}; + +typedef struct Element element; + +enum markdown_extensions { + EXT_SMART = 1, + EXT_NOTES = 2 +}; + +element *cons(element new, element *list); +element *reverse(element *list); +element markdown(char *string, int extensions); + +/* Output formats. */ +enum formats { HTML_FORMAT, + LATEX_FORMAT, + GROFF_MM_FORMAT + }; + +void print_element(element elt, int format); +