]> granicus.if.org Git - multimarkdown/commitdiff
CHANGED: Find single non-indenting space at beginning of lines
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Sun, 23 Jul 2017 12:32:49 +0000 (08:32 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Sun, 23 Jul 2017 12:32:49 +0000 (08:32 -0400)
Sources/libMultiMarkdown/i18n.h
Sources/libMultiMarkdown/include/libMultiMarkdown.h
Sources/libMultiMarkdown/lexer.c
Sources/libMultiMarkdown/lexer.re
Sources/libMultiMarkdown/mmd.c
tests/MMD6Tests/Indented Code Blocks.fodt
tests/MMD6Tests/Indented Code Blocks.html
tests/MMD6Tests/Indented Code Blocks.htmlc
tests/MMD6Tests/Indented Code Blocks.tex

index e406ec39b08906e88acae3d1be8c06304fc8c0a1..44e613fcad59b22311f16b4016c65d1dfe8c763f 100644 (file)
@@ -143,7 +143,7 @@ enum lc_languages {
 };
 
 
-// MMD expects a lower case 2 letter code in the metadata or command-line arguments`
+// MMD expects a lower case 2 letter code in the metadata or command-line arguments
 static inline short i18n_language_from_string(const char * l) {
        if (strcmp(l, "es") == 0) {
                return LC_ES;
index 9bd4f9fadbaa18c1ab3c5d0e14d88301826115ce..8da8be563daae0c40a5c9cd4e31e081000fa84e2 100644 (file)
@@ -472,6 +472,7 @@ enum token_types {
        TEXT_HASH,
        TEXT_LINEBREAK,
        TEXT_NL,
+       TEXT_NL_SP,
        TEXT_NUMBER_POSS_LIST,
        TEXT_PERCENT,
        TEXT_PERIOD,
index 9fc7daadde53ff365d0521a9df689dd05037f73f..de74f2f30753fc081cf736c2ed7c8769da154023 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Fri Jun  9 07:53:59 2017 */
+/* Generated by re2c 0.15.3 on Sun Jul 23 08:32:21 2017 */
 /**
 
        MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more.
@@ -80,7 +80,6 @@ int scan(Scanner * s, const char * stop) {
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
-
        yych = *YYCURSOR;
        switch (yych) {
        case 0x00:
@@ -169,24 +168,24 @@ int scan(Scanner * s, const char * stop) {
        case 'y':
        case 'z':
        case 0x7F:      goto yy66;
-       case '\t':      goto yy46;
-       case '\n':      goto yy55;
-       case '\r':      goto yy57;
-       case ' ':       goto yy48;
-       case '!':       goto yy19;
-       case '"':       goto yy29;
-       case '#':       goto yy50;
-       case '$':       goto yy42;
-       case '%':       goto yy52;
-       case '&':       goto yy36;
-       case '\'':      goto yy31;
-       case '(':       goto yy21;
-       case ')':       goto yy23;
+       case '\t':      goto yy49;
+       case '\n':      goto yy3;
+       case '\r':      goto yy5;
+       case ' ':       goto yy51;
+       case '!':       goto yy22;
+       case '"':       goto yy32;
+       case '#':       goto yy53;
+       case '$':       goto yy45;
+       case '%':       goto yy55;
+       case '&':       goto yy39;
+       case '\'':      goto yy34;
+       case '(':       goto yy24;
+       case ')':       goto yy26;
        case '*':       goto yy58;
-       case '+':       goto yy5;
-       case '-':       goto yy7;
-       case '.':       goto yy33;
-       case '/':       goto yy38;
+       case '+':       goto yy8;
+       case '-':       goto yy10;
+       case '.':       goto yy36;
+       case '/':       goto yy41;
        case '0':
        case '1':
        case '2':
@@ -196,22 +195,22 @@ int scan(Scanner * s, const char * stop) {
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy54;
-       case ':':       goto yy34;
-       case '<':       goto yy9;
-       case '=':       goto yy13;
-       case '>':       goto yy25;
-       case '[':       goto yy15;
-       case '\\':      goto yy40;
-       case ']':       goto yy17;
-       case '^':       goto yy44;
+       case '9':       goto yy57;
+       case ':':       goto yy37;
+       case '<':       goto yy12;
+       case '=':       goto yy16;
+       case '>':       goto yy28;
+       case '[':       goto yy18;
+       case '\\':      goto yy43;
+       case ']':       goto yy20;
+       case '^':       goto yy47;
        case '_':       goto yy60;
        case '`':       goto yy62;
-       case '{':       goto yy3;
+       case '{':       goto yy6;
        case '|':       goto yy64;
-       case '}':       goto yy27;
-       case '~':       goto yy11;
-       case 0xC2:      goto yy49;
+       case '}':       goto yy30;
+       case '~':       goto yy14;
+       case 0xC2:      goto yy52;
        case 0xC3:
        case 0xC4:
        case 0xC5:
@@ -268,151 +267,169 @@ yy2:
        YYCURSOR = YYMARKER;
        switch (yyaccept) {
        case 0:         goto yy4;
-       case 1:         goto yy6;
-       case 2:         goto yy10;
-       case 3:         goto yy12;
-       case 4:         goto yy14;
-       case 5:         goto yy20;
-       case 6:         goto yy37;
-       case 7:         goto yy51;
-       case 8:         goto yy81;
-       case 9:         goto yy89;
-       case 10:        goto yy96;
-       case 11:        goto yy105;
-       case 12:        goto yy112;
-       case 13:        goto yy121;
-       case 14:        goto yy128;
-       case 15:        goto yy135;
-       case 16:        goto yy145;
-       default:        goto yy302;
+       case 1:         goto yy7;
+       case 2:         goto yy9;
+       case 3:         goto yy13;
+       case 4:         goto yy15;
+       case 5:         goto yy17;
+       case 6:         goto yy23;
+       case 7:         goto yy40;
+       case 8:         goto yy54;
+       case 9:         goto yy81;
+       case 10:        goto yy89;
+       case 11:        goto yy96;
+       case 12:        goto yy105;
+       case 13:        goto yy112;
+       case 14:        goto yy121;
+       case 15:        goto yy128;
+       case 16:        goto yy135;
+       case 17:        goto yy145;
+       default:        goto yy303;
        }
 yy3:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy306;
-       case '-':       goto yy305;
-       case '=':       goto yy299;
-       case '>':       goto yy304;
-       case '{':       goto yy301;
-       case '~':       goto yy303;
+       case ' ':       goto yy324;
        default:        goto yy4;
        }
 yy4:
-       { return TEXT_BRACE_LEFT; }
+       { return TEXT_NL; }
 yy5:
-       yyaccept = 1;
+       yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy296;
-       default:        goto yy6;
+       case '\n':      goto yy3;
+       case ' ':       goto yy324;
+       default:        goto yy4;
        }
 yy6:
-       { return PLUS; }
-yy7:
-       ++YYCURSOR;
-       switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy288;
-       default:        goto yy8;
+       yyaccept = 1;
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case '+':       goto yy307;
+       case '-':       goto yy306;
+       case '=':       goto yy300;
+       case '>':       goto yy305;
+       case '{':       goto yy302;
+       case '~':       goto yy304;
+       default:        goto yy7;
        }
+yy7:
+       { return TEXT_BRACE_LEFT; }
 yy8:
-       { return DASH_N; }
-yy9:
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '!':       goto yy281;
-       case '<':       goto yy282;
-       default:        goto yy10;
+       case '+':       goto yy297;
+       default:        goto yy9;
        }
+yy9:
+       { return PLUS; }
 yy10:
-       { return ANGLE_LEFT; }
+       ++YYCURSOR;
+       switch ((yych = *YYCURSOR)) {
+       case '-':       goto yy289;
+       default:        goto yy11;
+       }
 yy11:
+       { return DASH_N; }
+yy12:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '>':       goto yy277;
-       case '~':       goto yy276;
-       default:        goto yy12;
+       case '!':       goto yy282;
+       case '<':       goto yy283;
+       default:        goto yy13;
        }
-yy12:
-       { return SUBSCRIPT; }
 yy13:
+       { return ANGLE_LEFT; }
+yy14:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '=':       goto yy273;
-       default:        goto yy14;
+       case '>':       goto yy278;
+       case '~':       goto yy277;
+       default:        goto yy15;
        }
-yy14:
-       { return EQUAL; }
 yy15:
+       { return SUBSCRIPT; }
+yy16:
+       yyaccept = 5;
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case '=':       goto yy274;
+       default:        goto yy17;
+       }
+yy17:
+       { return EQUAL; }
+yy18:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '#':       goto yy269;
-       case '%':       goto yy263;
-       case '>':       goto yy271;
-       case '?':       goto yy265;
-       case '^':       goto yy267;
-       default:        goto yy16;
+       case '#':       goto yy270;
+       case '%':       goto yy264;
+       case '>':       goto yy272;
+       case '?':       goto yy266;
+       case '^':       goto yy268;
+       default:        goto yy19;
        }
-yy16:
+yy19:
        { return BRACKET_LEFT; }
-yy17:
+yy20:
        ++YYCURSOR;
        { return BRACKET_RIGHT; }
-yy19:
+yy22:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '[':       goto yy261;
-       default:        goto yy20;
+       case '[':       goto yy262;
+       default:        goto yy23;
        }
-yy20:
+yy23:
        { goto scan; }
-yy21:
+yy24:
        ++YYCURSOR;
        { return PAREN_LEFT; }
-yy23:
+yy26:
        ++YYCURSOR;
        { return PAREN_RIGHT; }
-yy25:
+yy28:
        ++YYCURSOR;
        { return ANGLE_RIGHT; }
-yy27:
+yy30:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '}':       goto yy259;
-       default:        goto yy28;
+       case '}':       goto yy260;
+       default:        goto yy31;
        }
-yy28:
+yy31:
        { return TEXT_BRACE_RIGHT; }
-yy29:
+yy32:
        ++YYCURSOR;
        { return QUOTE_DOUBLE; }
-yy31:
+yy34:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\'':      goto yy257;
-       default:        goto yy32;
+       case '\'':      goto yy258;
+       default:        goto yy35;
        }
-yy32:
+yy35:
        { return QUOTE_SINGLE; }
-yy33:
-       yyaccept = 5;
+yy36:
+       yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case ' ':       goto yy249;
-       case '.':       goto yy250;
-       default:        goto yy20;
+       case ' ':       goto yy250;
+       case '.':       goto yy251;
+       default:        goto yy23;
        }
-yy34:
+yy37:
        ++YYCURSOR;
        { return COLON; }
-yy36:
-       yyaccept = 6;
+yy39:
+       yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '#':       goto yy233;
+       case '#':       goto yy234;
        case '0':
        case '1':
        case '2':
@@ -472,85 +489,85 @@ yy36:
        case 'w':
        case 'x':
        case 'y':
-       case 'z':       goto yy230;
+       case 'z':       goto yy231;
        case 'A':
-       case 'a':       goto yy232;
-       default:        goto yy37;
+       case 'a':       goto yy233;
+       default:        goto yy40;
        }
-yy37:
+yy40:
        { return AMPERSAND; }
-yy38:
+yy41:
        ++YYCURSOR;
        { return SLASH; }
-yy40:
+yy43:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\n':      goto yy153;
-       case '\r':      goto yy155;
-       case ' ':       goto yy158;
-       case '!':       goto yy218;
-       case '"':       goto yy208;
-       case '#':       goto yy188;
-       case '$':       goto yy186;
-       case '%':       goto yy184;
-       case '&':       goto yy172;
-       case '\'':      goto yy206;
-       case '(':       goto yy200;
-       case ')':       goto yy198;
-       case '*':       goto yy164;
-       case '+':       goto yy182;
-       case ',':       goto yy214;
-       case '-':       goto yy180;
-       case '.':       goto yy220;
-       case '/':       goto yy168;
-       case ':':       goto yy210;
-       case ';':       goto yy212;
-       case '<':       goto yy176;
-       case '=':       goto yy178;
-       case '>':       goto yy174;
-       case '?':       goto yy216;
-       case '@':       goto yy170;
-       case '[':       goto yy192;
-       case '\\':      goto yy156;
-       case ']':       goto yy190;
-       case '^':       goto yy166;
-       case '_':       goto yy162;
-       case '`':       goto yy204;
-       case '{':       goto yy196;
-       case '|':       goto yy160;
-       case '}':       goto yy194;
-       case '~':       goto yy202;
-       default:        goto yy41;
+       case '\n':      goto yy154;
+       case '\r':      goto yy156;
+       case ' ':       goto yy159;
+       case '!':       goto yy219;
+       case '"':       goto yy209;
+       case '#':       goto yy189;
+       case '$':       goto yy187;
+       case '%':       goto yy185;
+       case '&':       goto yy173;
+       case '\'':      goto yy207;
+       case '(':       goto yy201;
+       case ')':       goto yy199;
+       case '*':       goto yy165;
+       case '+':       goto yy183;
+       case ',':       goto yy215;
+       case '-':       goto yy181;
+       case '.':       goto yy221;
+       case '/':       goto yy169;
+       case ':':       goto yy211;
+       case ';':       goto yy213;
+       case '<':       goto yy177;
+       case '=':       goto yy179;
+       case '>':       goto yy175;
+       case '?':       goto yy217;
+       case '@':       goto yy171;
+       case '[':       goto yy193;
+       case '\\':      goto yy157;
+       case ']':       goto yy191;
+       case '^':       goto yy167;
+       case '_':       goto yy163;
+       case '`':       goto yy205;
+       case '{':       goto yy197;
+       case '|':       goto yy161;
+       case '}':       goto yy195;
+       case '~':       goto yy203;
+       default:        goto yy44;
        }
-yy41:
+yy44:
        { return TEXT_BACKSLASH; }
-yy42:
+yy45:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '$':       goto yy151;
-       default:        goto yy43;
+       case '$':       goto yy152;
+       default:        goto yy46;
        }
-yy43:
+yy46:
        { return MATH_DOLLAR_SINGLE; }
-yy44:
+yy47:
        ++YYCURSOR;
        { return SUPERSCRIPT; }
-yy46:
+yy49:
        ++YYCURSOR;
        { return INDENT_TAB; }
-yy48:
-       YYCTXMARKER = YYCURSOR + 1;
-       yyaccept = 5;
+yy51:
+       yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':      goto yy137;
-       case '\n':      goto yy55;
-       case '\r':      goto yy150;
+       case '\n':      goto yy150;
+       case '\r':      goto yy151;
        case ' ':       goto yy134;
        case 0xC2:      goto yy136;
-       default:        goto yy20;
+       default:        goto yy23;
        }
-yy49:
+yy52:
        yych = *++YYCURSOR;
        switch (yych) {
        case 0x80:
@@ -619,10 +636,10 @@ yy49:
        case 0xA0:      goto yy133;
        default:        goto yy2;
        }
-yy50:
-       YYCTXMARKER = YYCURSOR + 1;
-       yyaccept = 7;
+yy53:
+       yyaccept = 8;
        yych = *(YYMARKER = ++YYCURSOR);
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -630,15 +647,15 @@ yy50:
        case ' ':
        case 0xC2:      goto yy88;
        case '#':       goto yy86;
-       default:        goto yy51;
+       default:        goto yy54;
        }
-yy51:
+yy54:
        { return TEXT_HASH; }
-yy52:
+yy55:
        ++YYCURSOR;
        { return TEXT_PERCENT; }
-yy54:
-       yyaccept = 5;
+yy57:
+       yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '.':       goto yy77;
@@ -652,17 +669,7 @@ yy54:
        case '7':
        case '8':
        case '9':       goto yy78;
-       default:        goto yy20;
-       }
-yy55:
-       ++YYCURSOR;
-yy56:
-       { return TEXT_NL; }
-yy57:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '\n':      goto yy55;
-       default:        goto yy56;
+       default:        goto yy23;
        }
 yy58:
        ++YYCURSOR;
@@ -684,7 +691,7 @@ yy65:
        { return PIPE; }
 yy66:
        yych = *++YYCURSOR;
-       goto yy20;
+       goto yy23;
 yy67:
        yych = *++YYCURSOR;
        switch (yych) {
@@ -1020,8 +1027,8 @@ yy76:
        default:        goto yy63;
        }
 yy77:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case ' ':       goto yy83;
@@ -1059,7 +1066,7 @@ yy82:
        default:        goto yy81;
        }
 yy83:
-       yyaccept = 8;
+       yyaccept = 9;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -1076,8 +1083,8 @@ yy85:
        default:        goto yy2;
        }
 yy86:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -1088,7 +1095,7 @@ yy86:
        default:        goto yy2;
        }
 yy87:
-       yyaccept = 9;
+       yyaccept = 10;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy88:
@@ -1121,7 +1128,7 @@ yy93:
        default:        goto yy92;
        }
 yy94:
-       yyaccept = 10;
+       yyaccept = 11;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy95:
@@ -1154,8 +1161,8 @@ yy100:
        default:        goto yy99;
        }
 yy101:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -1166,8 +1173,8 @@ yy101:
        default:        goto yy2;
        }
 yy102:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -1178,7 +1185,7 @@ yy102:
        default:        goto yy2;
        }
 yy103:
-       yyaccept = 11;
+       yyaccept = 12;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy104:
@@ -1211,7 +1218,7 @@ yy109:
        default:        goto yy108;
        }
 yy110:
-       yyaccept = 12;
+       yyaccept = 13;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy111:
@@ -1244,8 +1251,8 @@ yy116:
        default:        goto yy115;
        }
 yy117:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -1256,8 +1263,8 @@ yy117:
        default:        goto yy2;
        }
 yy118:
-       YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
@@ -1267,7 +1274,7 @@ yy118:
        default:        goto yy2;
        }
 yy119:
-       yyaccept = 13;
+       yyaccept = 14;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy120:
@@ -1300,7 +1307,7 @@ yy125:
        default:        goto yy124;
        }
 yy126:
-       yyaccept = 14;
+       yyaccept = 15;
        YYMARKER = ++YYCURSOR;
        yych = *YYCURSOR;
 yy127:
@@ -1333,17 +1340,17 @@ yy132:
        default:        goto yy131;
        }
 yy133:
-       YYCTXMARKER = YYCURSOR + 1;
-       yyaccept = 5;
+       yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
+       YYCTXMARKER = YYCURSOR;
        switch (yych) {
        case '\t':      goto yy137;
        case ' ':       goto yy134;
        case 0xC2:      goto yy136;
-       default:        goto yy20;
+       default:        goto yy23;
        }
 yy134:
-       yyaccept = 15;
+       yyaccept = 16;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '\n':      goto yy141;
@@ -1365,7 +1372,7 @@ yy137:
        YYCURSOR = YYCTXMARKER;
        { return NON_INDENT_SPACE; }
 yy139:
-       yyaccept = 15;
+       yyaccept = 16;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '\n':      goto yy141;
@@ -1391,7 +1398,7 @@ yy143:
        default:        goto yy142;
        }
 yy144:
-       yyaccept = 16;
+       yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '\n':      goto yy141;
@@ -1426,147 +1433,150 @@ yy149:
        default:        goto yy2;
        }
 yy150:
+       yych = *++YYCURSOR;
+       goto yy4;
+yy151:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy55;
-       default:        goto yy56;
+       case '\n':      goto yy150;
+       default:        goto yy4;
        }
-yy151:
+yy152:
        ++YYCURSOR;
        { return MATH_DOLLAR_DOUBLE; }
-yy153:
-       ++YYCURSOR;
 yy154:
-       { return TEXT_LINEBREAK; }
+       ++YYCURSOR;
 yy155:
+       { return TEXT_LINEBREAK; }
+yy156:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy153;
-       default:        goto yy154;
+       case '\n':      goto yy154;
+       default:        goto yy155;
        }
-yy156:
+yy157:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '(':       goto yy222;
-       case ')':       goto yy224;
-       case '[':       goto yy226;
-       case ']':       goto yy228;
-       default:        goto yy157;
+       case '(':       goto yy223;
+       case ')':       goto yy225;
+       case '[':       goto yy227;
+       case ']':       goto yy229;
+       default:        goto yy158;
        }
-yy157:
-       { return ESCAPED_CHARACTER; }
 yy158:
+       { return ESCAPED_CHARACTER; }
+yy159:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy160:
+yy161:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy162:
+yy163:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy164:
+yy165:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy166:
+yy167:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy168:
+yy169:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy170:
+yy171:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy172:
+yy173:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy174:
+yy175:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy176:
+yy177:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy178:
+yy179:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy180:
+yy181:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy182:
+yy183:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy184:
+yy185:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy186:
+yy187:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy188:
+yy189:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy190:
+yy191:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy192:
+yy193:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy194:
+yy195:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy196:
+yy197:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy198:
+yy199:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy200:
+yy201:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy202:
+yy203:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy204:
+yy205:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy206:
+yy207:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy208:
+yy209:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy210:
+yy211:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy212:
+yy213:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy214:
+yy215:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy216:
+yy217:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy218:
+yy219:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy220:
+yy221:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy222:
+yy223:
        ++YYCURSOR;
        { return MATH_PAREN_OPEN; }
-yy224:
+yy225:
        ++YYCURSOR;
        { return MATH_PAREN_CLOSE; }
-yy226:
+yy227:
        ++YYCURSOR;
        { return MATH_BRACKET_OPEN; }
-yy228:
+yy229:
        ++YYCURSOR;
        { return MATH_BRACKET_CLOSE; }
-yy230:
+yy231:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy231:
+yy232:
        switch (yych) {
        case '0':
        case '1':
@@ -1629,18 +1639,18 @@ yy231:
        case 'w':
        case 'x':
        case 'y':
-       case 'z':       goto yy230;
-       case ';':       goto yy244;
+       case 'z':       goto yy231;
+       case ';':       goto yy245;
        default:        goto yy2;
        }
-yy232:
+yy233:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'M':
-       case 'm':       goto yy243;
-       default:        goto yy231;
+       case 'm':       goto yy244;
+       default:        goto yy232;
        }
-yy233:
+yy234:
        yych = *++YYCURSOR;
        switch (yych) {
        case '0':
@@ -1652,18 +1662,18 @@ yy233:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy235;
+       case '9':       goto yy236;
        case 'X':
-       case 'x':       goto yy234;
+       case 'x':       goto yy235;
        default:        goto yy2;
        }
-yy234:
+yy235:
        yych = *++YYCURSOR;
        switch (yych) {
        case ';':       goto yy2;
-       default:        goto yy240;
+       default:        goto yy241;
        }
-yy235:
+yy236:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -1676,17 +1686,17 @@ yy235:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy235;
-       case ';':       goto yy237;
+       case '9':       goto yy236;
+       case ';':       goto yy238;
        default:        goto yy2;
        }
-yy237:
+yy238:
        ++YYCURSOR;
        { return HTML_ENTITY; }
-yy239:
+yy240:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy240:
+yy241:
        switch (yych) {
        case '0':
        case '1':
@@ -1735,228 +1745,222 @@ yy240:
        case 'c':
        case 'd':
        case 'e':
-       case 'f':       goto yy239;
-       case ';':       goto yy241;
+       case 'f':       goto yy240;
+       case ';':       goto yy242;
        default:        goto yy2;
        }
-yy241:
+yy242:
        ++YYCURSOR;
        { return HTML_ENTITY; }
-yy243:
+yy244:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'P':
-       case 'p':       goto yy246;
-       default:        goto yy231;
+       case 'p':       goto yy247;
+       default:        goto yy232;
        }
-yy244:
+yy245:
        ++YYCURSOR;
        { return HTML_ENTITY; }
-yy246:
+yy247:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ';':       goto yy247;
-       default:        goto yy231;
+       case ';':       goto yy248;
+       default:        goto yy232;
        }
-yy247:
+yy248:
        ++YYCURSOR;
        { return AMPERSAND_LONG; }
-yy249:
+yy250:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy253;
+       case '.':       goto yy254;
        default:        goto yy2;
        }
-yy250:
+yy251:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy251;
+       case '.':       goto yy252;
        default:        goto yy2;
        }
-yy251:
+yy252:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy253:
+yy254:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ' ':       goto yy254;
+       case ' ':       goto yy255;
        default:        goto yy2;
        }
-yy254:
+yy255:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy255;
+       case '.':       goto yy256;
        default:        goto yy2;
        }
-yy255:
+yy256:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy257:
+yy258:
        ++YYCURSOR;
        { return QUOTE_RIGHT_ALT; }
-yy259:
+yy260:
        ++YYCURSOR;
        { return BRACE_DOUBLE_RIGHT; }
-yy261:
+yy262:
        ++YYCURSOR;
        { return BRACKET_IMAGE_LEFT; }
-yy263:
+yy264:
        ++YYCURSOR;
        { return BRACKET_VARIABLE_LEFT; }
-yy265:
+yy266:
        ++YYCURSOR;
        { return BRACKET_GLOSSARY_LEFT; }
-yy267:
+yy268:
        ++YYCURSOR;
        { return BRACKET_FOOTNOTE_LEFT; }
-yy269:
+yy270:
        ++YYCURSOR;
        { return BRACKET_CITATION_LEFT; }
-yy271:
+yy272:
        ++YYCURSOR;
        { return BRACKET_ABBREVIATION_LEFT; }
-yy273:
+yy274:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy274;
+       case '}':       goto yy275;
        default:        goto yy2;
        }
-yy274:
+yy275:
        ++YYCURSOR;
        { return CRITIC_HI_CLOSE; }
-yy276:
+yy277:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy279;
+       case '}':       goto yy280;
        default:        goto yy2;
        }
-yy277:
+yy278:
        ++YYCURSOR;
        { return CRITIC_SUB_DIV; }
-yy279:
+yy280:
        ++YYCURSOR;
        { return CRITIC_SUB_CLOSE; }
-yy281:
+yy282:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy285;
+       case '-':       goto yy286;
        default:        goto yy2;
        }
-yy282:
+yy283:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy283;
+       case '}':       goto yy284;
        default:        goto yy2;
        }
-yy283:
+yy284:
        ++YYCURSOR;
        { return CRITIC_COM_CLOSE; }
-yy285:
+yy286:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy286;
+       case '-':       goto yy287;
        default:        goto yy2;
        }
-yy286:
+yy287:
        ++YYCURSOR;
        { return HTML_COMMENT_START; }
-yy288:
+yy289:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy294;
-       case '>':       goto yy292;
-       case '}':       goto yy290;
-       default:        goto yy289;
+       case '-':       goto yy295;
+       case '>':       goto yy293;
+       case '}':       goto yy291;
+       default:        goto yy290;
        }
-yy289:
-       { return DASH_N; }
 yy290:
+       { return DASH_N; }
+yy291:
        ++YYCURSOR;
        { return CRITIC_DEL_CLOSE; }
-yy292:
+yy293:
        ++YYCURSOR;
        { return HTML_COMMENT_STOP; }
-yy294:
+yy295:
        ++YYCURSOR;
        { return DASH_M; }
-yy296:
+yy297:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy297;
+       case '}':       goto yy298;
        default:        goto yy2;
        }
-yy297:
+yy298:
        ++YYCURSOR;
        { return CRITIC_ADD_CLOSE; }
-yy299:
+yy300:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '=':       goto yy321;
-       default:        goto yy300;
+       case '=':       goto yy322;
+       default:        goto yy301;
        }
-yy300:
-       { return RAW_FILTER_LEFT; }
 yy301:
-       yyaccept = 17;
+       { return RAW_FILTER_LEFT; }
+yy302:
+       yyaccept = 18;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case 'T':       goto yy315;
-       default:        goto yy302;
+       case 'T':       goto yy316;
+       default:        goto yy303;
        }
-yy302:
-       { return BRACE_DOUBLE_LEFT; }
 yy303:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '~':       goto yy313;
-       default:        goto yy2;
-       }
+       { return BRACE_DOUBLE_LEFT; }
 yy304:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '>':       goto yy311;
+       case '~':       goto yy314;
        default:        goto yy2;
        }
 yy305:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy309;
+       case '>':       goto yy312;
        default:        goto yy2;
        }
 yy306:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '+':       goto yy307;
+       case '-':       goto yy310;
        default:        goto yy2;
        }
 yy307:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '+':       goto yy308;
+       default:        goto yy2;
+       }
+yy308:
        ++YYCURSOR;
        { return CRITIC_ADD_OPEN; }
-yy309:
+yy310:
        ++YYCURSOR;
        { return CRITIC_DEL_OPEN; }
-yy311:
+yy312:
        ++YYCURSOR;
        { return CRITIC_COM_OPEN; }
-yy313:
+yy314:
        ++YYCURSOR;
        { return CRITIC_SUB_OPEN; }
-yy315:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':       goto yy316;
-       default:        goto yy2;
-       }
 yy316:
        yych = *++YYCURSOR;
        switch (yych) {
-       case 'C':       goto yy317;
+       case 'O':       goto yy317;
        default:        goto yy2;
        }
 yy317:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy318;
+       case 'C':       goto yy318;
        default:        goto yy2;
        }
 yy318:
@@ -1966,11 +1970,520 @@ yy318:
        default:        goto yy2;
        }
 yy319:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '}':       goto yy320;
+       default:        goto yy2;
+       }
+yy320:
        ++YYCURSOR;
        { return TOC; }
-yy321:
+yy322:
        ++YYCURSOR;
        { return CRITIC_HI_OPEN; }
+yy324:
+       yych = *++YYCURSOR;
+       YYCTXMARKER = YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x1F:
+       case '!':
+       case '"':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '<':
+       case '=':
+       case '>':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '[':
+       case '\\':
+       case ']':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '{':
+       case '|':
+       case '}':
+       case '~':
+       case 0x7F:      goto yy325;
+       case 0xC2:
+       case 0xC3:
+       case 0xC4:
+       case 0xC5:
+       case 0xC6:
+       case 0xC7:
+       case 0xC8:
+       case 0xC9:
+       case 0xCA:
+       case 0xCB:
+       case 0xCC:
+       case 0xCD:
+       case 0xCE:
+       case 0xCF:
+       case 0xD0:
+       case 0xD1:
+       case 0xD2:
+       case 0xD3:
+       case 0xD4:
+       case 0xD5:
+       case 0xD6:
+       case 0xD7:
+       case 0xD8:
+       case 0xD9:
+       case 0xDA:
+       case 0xDB:
+       case 0xDC:
+       case 0xDD:
+       case 0xDE:
+       case 0xDF:      goto yy327;
+       case 0xE0:      goto yy328;
+       case 0xE1:
+       case 0xE2:
+       case 0xE3:
+       case 0xE4:
+       case 0xE5:
+       case 0xE6:
+       case 0xE7:
+       case 0xE8:
+       case 0xE9:
+       case 0xEA:
+       case 0xEB:
+       case 0xEC:
+       case 0xED:
+       case 0xEE:
+       case 0xEF:      goto yy329;
+       case 0xF0:      goto yy330;
+       case 0xF1:
+       case 0xF2:
+       case 0xF3:      goto yy331;
+       case 0xF4:      goto yy332;
+       default:        goto yy2;
+       }
+yy325:
+       ++YYCURSOR;
+       YYCURSOR = YYCTXMARKER;
+       { return TEXT_NL_SP; }
+yy327:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x80:
+       case 0x81:
+       case 0x82:
+       case 0x83:
+       case 0x84:
+       case 0x85:
+       case 0x86:
+       case 0x87:
+       case 0x88:
+       case 0x89:
+       case 0x8A:
+       case 0x8B:
+       case 0x8C:
+       case 0x8D:
+       case 0x8E:
+       case 0x8F:
+       case 0x90:
+       case 0x91:
+       case 0x92:
+       case 0x93:
+       case 0x94:
+       case 0x95:
+       case 0x96:
+       case 0x97:
+       case 0x98:
+       case 0x99:
+       case 0x9A:
+       case 0x9B:
+       case 0x9C:
+       case 0x9D:
+       case 0x9E:
+       case 0x9F:
+       case 0xA0:
+       case 0xA1:
+       case 0xA2:
+       case 0xA3:
+       case 0xA4:
+       case 0xA5:
+       case 0xA6:
+       case 0xA7:
+       case 0xA8:
+       case 0xA9:
+       case 0xAA:
+       case 0xAB:
+       case 0xAC:
+       case 0xAD:
+       case 0xAE:
+       case 0xAF:
+       case 0xB0:
+       case 0xB1:
+       case 0xB2:
+       case 0xB3:
+       case 0xB4:
+       case 0xB5:
+       case 0xB6:
+       case 0xB7:
+       case 0xB8:
+       case 0xB9:
+       case 0xBA:
+       case 0xBB:
+       case 0xBC:
+       case 0xBD:
+       case 0xBE:
+       case 0xBF:      goto yy325;
+       default:        goto yy2;
+       }
+yy328:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0xA0:
+       case 0xA1:
+       case 0xA2:
+       case 0xA3:
+       case 0xA4:
+       case 0xA5:
+       case 0xA6:
+       case 0xA7:
+       case 0xA8:
+       case 0xA9:
+       case 0xAA:
+       case 0xAB:
+       case 0xAC:
+       case 0xAD:
+       case 0xAE:
+       case 0xAF:
+       case 0xB0:
+       case 0xB1:
+       case 0xB2:
+       case 0xB3:
+       case 0xB4:
+       case 0xB5:
+       case 0xB6:
+       case 0xB7:
+       case 0xB8:
+       case 0xB9:
+       case 0xBA:
+       case 0xBB:
+       case 0xBC:
+       case 0xBD:
+       case 0xBE:
+       case 0xBF:      goto yy327;
+       default:        goto yy2;
+       }
+yy329:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x80:
+       case 0x81:
+       case 0x82:
+       case 0x83:
+       case 0x84:
+       case 0x85:
+       case 0x86:
+       case 0x87:
+       case 0x88:
+       case 0x89:
+       case 0x8A:
+       case 0x8B:
+       case 0x8C:
+       case 0x8D:
+       case 0x8E:
+       case 0x8F:
+       case 0x90:
+       case 0x91:
+       case 0x92:
+       case 0x93:
+       case 0x94:
+       case 0x95:
+       case 0x96:
+       case 0x97:
+       case 0x98:
+       case 0x99:
+       case 0x9A:
+       case 0x9B:
+       case 0x9C:
+       case 0x9D:
+       case 0x9E:
+       case 0x9F:
+       case 0xA0:
+       case 0xA1:
+       case 0xA2:
+       case 0xA3:
+       case 0xA4:
+       case 0xA5:
+       case 0xA6:
+       case 0xA7:
+       case 0xA8:
+       case 0xA9:
+       case 0xAA:
+       case 0xAB:
+       case 0xAC:
+       case 0xAD:
+       case 0xAE:
+       case 0xAF:
+       case 0xB0:
+       case 0xB1:
+       case 0xB2:
+       case 0xB3:
+       case 0xB4:
+       case 0xB5:
+       case 0xB6:
+       case 0xB7:
+       case 0xB8:
+       case 0xB9:
+       case 0xBA:
+       case 0xBB:
+       case 0xBC:
+       case 0xBD:
+       case 0xBE:
+       case 0xBF:      goto yy327;
+       default:        goto yy2;
+       }
+yy330:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x90:
+       case 0x91:
+       case 0x92:
+       case 0x93:
+       case 0x94:
+       case 0x95:
+       case 0x96:
+       case 0x97:
+       case 0x98:
+       case 0x99:
+       case 0x9A:
+       case 0x9B:
+       case 0x9C:
+       case 0x9D:
+       case 0x9E:
+       case 0x9F:
+       case 0xA0:
+       case 0xA1:
+       case 0xA2:
+       case 0xA3:
+       case 0xA4:
+       case 0xA5:
+       case 0xA6:
+       case 0xA7:
+       case 0xA8:
+       case 0xA9:
+       case 0xAA:
+       case 0xAB:
+       case 0xAC:
+       case 0xAD:
+       case 0xAE:
+       case 0xAF:
+       case 0xB0:
+       case 0xB1:
+       case 0xB2:
+       case 0xB3:
+       case 0xB4:
+       case 0xB5:
+       case 0xB6:
+       case 0xB7:
+       case 0xB8:
+       case 0xB9:
+       case 0xBA:
+       case 0xBB:
+       case 0xBC:
+       case 0xBD:
+       case 0xBE:
+       case 0xBF:      goto yy329;
+       default:        goto yy2;
+       }
+yy331:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x80:
+       case 0x81:
+       case 0x82:
+       case 0x83:
+       case 0x84:
+       case 0x85:
+       case 0x86:
+       case 0x87:
+       case 0x88:
+       case 0x89:
+       case 0x8A:
+       case 0x8B:
+       case 0x8C:
+       case 0x8D:
+       case 0x8E:
+       case 0x8F:
+       case 0x90:
+       case 0x91:
+       case 0x92:
+       case 0x93:
+       case 0x94:
+       case 0x95:
+       case 0x96:
+       case 0x97:
+       case 0x98:
+       case 0x99:
+       case 0x9A:
+       case 0x9B:
+       case 0x9C:
+       case 0x9D:
+       case 0x9E:
+       case 0x9F:
+       case 0xA0:
+       case 0xA1:
+       case 0xA2:
+       case 0xA3:
+       case 0xA4:
+       case 0xA5:
+       case 0xA6:
+       case 0xA7:
+       case 0xA8:
+       case 0xA9:
+       case 0xAA:
+       case 0xAB:
+       case 0xAC:
+       case 0xAD:
+       case 0xAE:
+       case 0xAF:
+       case 0xB0:
+       case 0xB1:
+       case 0xB2:
+       case 0xB3:
+       case 0xB4:
+       case 0xB5:
+       case 0xB6:
+       case 0xB7:
+       case 0xB8:
+       case 0xB9:
+       case 0xBA:
+       case 0xBB:
+       case 0xBC:
+       case 0xBD:
+       case 0xBE:
+       case 0xBF:      goto yy329;
+       default:        goto yy2;
+       }
+yy332:
+       ++YYCURSOR;
+       switch ((yych = *YYCURSOR)) {
+       case 0x80:
+       case 0x81:
+       case 0x82:
+       case 0x83:
+       case 0x84:
+       case 0x85:
+       case 0x86:
+       case 0x87:
+       case 0x88:
+       case 0x89:
+       case 0x8A:
+       case 0x8B:
+       case 0x8C:
+       case 0x8D:
+       case 0x8E:
+       case 0x8F:      goto yy329;
+       default:        goto yy2;
+       }
 }
 
 }
index 84f33f978b451badb327cee0800fc24af7cca30c..db280f18e97725158210594e971772a040c46ea8 100644 (file)
@@ -95,6 +95,10 @@ int scan(Scanner * s, const char * stop) {
                // Don't split `à` character
                //'\303' '\240'                                 { return TEXT_PLAIN; }
 
+               // NL with single space -- this would otherwise be wrapped into a TEXT_PLAIN
+               NL ' ' / [^ \t\r\n]                             { return TEXT_NL_SP; }
+
+
                "{{TOC}}"                                               { return TOC; }
 
                "{++"                                                   { return CRITIC_ADD_OPEN; }
index bba97aa0c51cf85c3afa85fc1625c616fa818d22..aae9858e64147ab074f8fba38a5de74ac342d7ba 100644 (file)
@@ -1013,10 +1013,14 @@ token * mmd_tokenize_string(mmd_engine * e, size_t start, size_t len, bool stop_
                                token_append_child(root, line);
                                break;
 
+                       case TEXT_NL_SP:
+                               t = token_new(TEXT_NL, (size_t)(s.start - e->dstr->str), (size_t)(s.cur - s.start - 1));
                        case TEXT_LINEBREAK:
                        case TEXT_NL:
                                // We hit the end of a line
-                               t = token_new(type, (size_t)(s.start - e->dstr->str), (size_t)(s.cur - s.start));
+                               if (type != TEXT_NL_SP)
+                                       t = token_new(type, (size_t)(s.start - e->dstr->str), (size_t)(s.cur - s.start));
+
                                token_append_child(line, t);
 
                                // What sort of line is this?
@@ -1039,7 +1043,14 @@ token * mmd_tokenize_string(mmd_engine * e, size_t start, size_t len, bool stop_
                                        }
                                }
 
-                               line = token_new(0, s.cur - e->dstr->str, 0);
+                               if (type == TEXT_NL_SP) {
+                    line = token_new(0, s.cur - e->dstr->str - 1, 0);
+                                       t = token_new(NON_INDENT_SPACE, (size_t)(s.cur - e->dstr->str - 1), 1);
+                                       token_append_child(line, t);
+                } else {
+                    line = token_new(0, s.cur - e->dstr->str, 0);
+                }
+
                                break;
 
                        default:
index b5fe9397300b00724ab5ce9407505d4d40af381e..8f344203846d7dabafb2c275d2103b37ad1fcda1 100644 (file)
@@ -286,7 +286,7 @@ office:mimetype="application/vnd.oasis.opendocument.text">
 
 <text:p text:style-name="Standard">foo</text:p>
 
-<text:p text:style-name="Standard"> foo</text:p>
+<text:p text:style-name="Standard">foo</text:p>
 
 <text:p text:style-name="Standard">5</text:p>
 
index fa3043cf5d01a4742ca6c40fbe855a4e4df4c622..2927e841b5f08cff2df758c6399f2d5d583952e9 100644 (file)
@@ -16,7 +16,7 @@
 
 <p>foo</p>
 
-<p> foo</p>
+<p>foo</p>
 
 <p>5</p>
 
index b46569dd0e9d1f5d94d2b0b7c72fa8b79f10cc79..343944abe1348de242fc69256b90a8b72801a4b6 100644 (file)
@@ -11,7 +11,7 @@ latex config: article</p>
 
 <p>foo</p>
 
-<p> foo</p>
+<p>foo</p>
 
 <p>5</p>
 
index 01c1690fcc8255c5a450fb3aa9eb334fe8133453..a909812cf31fb2f4f166b4edcf74453c20dd91e8 100644 (file)
@@ -14,7 +14,7 @@ bar
 
 foo
 
- foo
+foo
 
 5