From: Fletcher T. Penney Date: Tue, 28 Mar 2017 12:39:20 +0000 (-0400) Subject: FIXED: Fix bug between ASCII 160 (non-breaking space) and 'à' character X-Git-Tag: 6.0.1^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b6e58ece713dc318d950d7e9a208ae704add0d1c;p=multimarkdown FIXED: Fix bug between ASCII 160 (non-breaking space) and 'à' character --- diff --git a/Sources/libMultiMarkdown/lexer.c b/Sources/libMultiMarkdown/lexer.c index 19520d1..d6ed45d 100644 --- a/Sources/libMultiMarkdown/lexer.c +++ b/Sources/libMultiMarkdown/lexer.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.14.3 on Wed Mar 15 00:32:21 2017 */ +/* Generated by re2c 0.14.3 on Tue Mar 28 08:27:15 2017 */ /** MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more. @@ -83,24 +83,24 @@ int scan(Scanner * s, const char * stop) { yych = *YYCURSOR; switch (yych) { - case '\t': goto yy45; - case '\n': goto yy54; - case '\r': goto yy56; - case ' ': goto yy47; - case '!': goto yy18; - case '"': goto yy28; - case '#': goto yy49; - case '$': goto yy41; - case '%': goto yy51; - case '&': goto yy35; - case '\'': goto yy30; - case '(': goto yy20; - case ')': goto yy22; - case '*': goto yy57; - case '+': goto yy4; - case '-': goto yy6; - case '.': goto yy32; - case '/': goto yy37; + case '\t': goto yy46; + case '\n': goto yy55; + case '\r': goto yy57; + case ' ': goto yy48; + case '!': goto yy20; + 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 '*': goto yy58; + case '+': goto yy6; + case '-': goto yy8; + case '.': goto yy33; + case '/': goto yy38; case '0': case '1': case '2': @@ -110,235 +110,242 @@ int scan(Scanner * s, const char * stop) { case '6': case '7': case '8': - case '9': goto yy53; - case ':': goto yy33; - case '<': goto yy8; - case '=': goto yy12; - case '>': goto yy24; - case '[': goto yy14; - case '\\': goto yy39; - case ']': goto yy16; - case '^': goto yy43; - case '_': goto yy59; - case '`': goto yy61; - case '{': goto yy2; - case '|': goto yy63; - case '}': goto yy26; - case '~': goto yy10; - case 0xA0: goto yy48; - default: goto yy65; + case '9': goto yy54; + case ':': goto yy34; + case '<': goto yy10; + case '=': goto yy14; + case '>': goto yy25; + case '[': goto yy16; + case '\\': goto yy40; + case ']': goto yy18; + case '^': goto yy44; + case '_': goto yy60; + case '`': goto yy62; + case '{': goto yy4; + case '|': goto yy64; + case '}': goto yy27; + case '~': goto yy12; + case 0xA0: goto yy49; + case 0xC3: goto yy2; + default: goto yy66; } yy2: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case '+': goto yy267; - case '-': goto yy266; - case '=': goto yy263; - case '>': goto yy265; - case '{': goto yy261; - case '~': goto yy264; + ++YYCURSOR; + switch ((yych = *YYCURSOR)) { + case 0xA0: goto yy285; default: goto yy3; } yy3: - { return TEXT_BRACE_LEFT; } + { goto scan; } yy4: - yyaccept = 1; + yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '+': goto yy258; + case '+': goto yy268; + case '-': goto yy267; + case '=': goto yy264; + case '>': goto yy266; + case '{': goto yy262; + case '~': goto yy265; default: goto yy5; } yy5: - { return PLUS; } + { return TEXT_BRACE_LEFT; } yy6: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '-': goto yy252; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + switch (yych) { + case '+': goto yy259; default: goto yy7; } yy7: - { return DASH_N; } + { return PLUS; } yy8: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case '<': goto yy249; + ++YYCURSOR; + switch ((yych = *YYCURSOR)) { + case '-': goto yy253; default: goto yy9; } yy9: - { return ANGLE_LEFT; } + { return DASH_N; } yy10: - yyaccept = 3; + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '>': goto yy245; - case '~': goto yy244; + case '<': goto yy250; default: goto yy11; } yy11: - { return SUBSCRIPT; } + { return ANGLE_LEFT; } yy12: - yyaccept = 4; + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '=': goto yy241; + case '>': goto yy246; + case '~': goto yy245; default: goto yy13; } yy13: - { return EQUAL; } + { return SUBSCRIPT; } yy14: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '#': goto yy237; - case '%': goto yy231; - case '>': goto yy239; - case '?': goto yy233; - case '^': goto yy235; + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + switch (yych) { + case '=': goto yy242; default: goto yy15; } yy15: - { return BRACKET_LEFT; } + { return EQUAL; } yy16: ++YYCURSOR; - { return BRACKET_RIGHT; } + switch ((yych = *YYCURSOR)) { + case '#': goto yy238; + case '%': goto yy232; + case '>': goto yy240; + case '?': goto yy234; + case '^': goto yy236; + default: goto yy17; + } +yy17: + { return BRACKET_LEFT; } yy18: ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '[': goto yy229; - default: goto yy19; - } -yy19: - { goto scan; } + { return BRACKET_RIGHT; } yy20: + yych = *++YYCURSOR; + switch (yych) { + case '[': goto yy230; + default: goto yy3; + } +yy21: ++YYCURSOR; { return PAREN_LEFT; } -yy22: +yy23: ++YYCURSOR; { return PAREN_RIGHT; } -yy24: +yy25: ++YYCURSOR; { return ANGLE_RIGHT; } -yy26: +yy27: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '}': goto yy227; - default: goto yy27; + case '}': goto yy228; + default: goto yy28; } -yy27: - { return TEXT_BRACE_RIGHT; } yy28: + { return TEXT_BRACE_RIGHT; } +yy29: ++YYCURSOR; { return QUOTE_DOUBLE; } -yy30: +yy31: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '\'': goto yy225; - default: goto yy31; + case '\'': goto yy226; + default: goto yy32; } -yy31: - { return QUOTE_SINGLE; } yy32: + { return QUOTE_SINGLE; } +yy33: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case ' ': goto yy217; - case '.': goto yy218; - default: goto yy19; + case ' ': goto yy218; + case '.': goto yy219; + default: goto yy3; } -yy33: +yy34: ++YYCURSOR; { return COLON; } -yy35: +yy36: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case 'A': - case 'a': goto yy212; - default: goto yy36; + case 'a': goto yy213; + default: goto yy37; } -yy36: - { return AMPERSAND; } yy37: + { return AMPERSAND; } +yy38: ++YYCURSOR; { return SLASH; } -yy39: +yy40: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '\n': goto yy135; - case '\r': goto yy137; - case ' ': goto yy140; - case '!': goto yy200; - case '"': goto yy190; - case '#': goto yy170; - case '$': goto yy168; - case '%': goto yy166; - case '&': goto yy154; - case '\'': goto yy188; - case '(': goto yy182; - case ')': goto yy180; - case '*': goto yy146; - case '+': goto yy164; - case ',': goto yy196; - case '-': goto yy162; - case '.': goto yy202; - case '/': goto yy150; - case ':': goto yy192; - case ';': goto yy194; - case '<': goto yy158; - case '=': goto yy160; - case '>': goto yy156; - case '?': goto yy198; - case '@': goto yy152; - case '[': goto yy174; - case '\\': goto yy138; - case ']': goto yy172; - case '^': goto yy148; - case '_': goto yy144; - case '`': goto yy186; - case '{': goto yy178; - case '|': goto yy142; - case '}': goto yy176; - case '~': goto yy184; - default: goto yy40; + case '\n': goto yy136; + case '\r': goto yy138; + case ' ': goto yy141; + case '!': goto yy201; + case '"': goto yy191; + case '#': goto yy171; + case '$': goto yy169; + case '%': goto yy167; + case '&': goto yy155; + case '\'': goto yy189; + case '(': goto yy183; + case ')': goto yy181; + case '*': goto yy147; + case '+': goto yy165; + case ',': goto yy197; + case '-': goto yy163; + case '.': goto yy203; + case '/': goto yy151; + case ':': goto yy193; + case ';': goto yy195; + case '<': goto yy159; + case '=': goto yy161; + case '>': goto yy157; + case '?': goto yy199; + case '@': goto yy153; + case '[': goto yy175; + case '\\': goto yy139; + case ']': goto yy173; + case '^': goto yy149; + case '_': goto yy145; + case '`': goto yy187; + case '{': goto yy179; + case '|': goto yy143; + case '}': goto yy177; + case '~': goto yy185; + default: goto yy41; } -yy40: - { return TEXT_BACKSLASH; } yy41: + { return TEXT_BACKSLASH; } +yy42: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '$': goto yy133; - default: goto yy42; + case '$': goto yy134; + default: goto yy43; } -yy42: - { return MATH_DOLLAR_SINGLE; } yy43: + { return MATH_DOLLAR_SINGLE; } +yy44: ++YYCURSOR; { return SUPERSCRIPT; } -yy45: +yy46: ++YYCURSOR; { return INDENT_TAB; } -yy47: +yy48: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { - case '\t': goto yy120; - case '\n': goto yy54; - case '\r': goto yy132; + case '\t': goto yy121; + case '\n': goto yy55; + case '\r': goto yy133; case ' ': - case 0xA0: goto yy122; - default: goto yy19; + case 0xA0: goto yy123; + default: goto yy3; } -yy48: +yy49: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { - case '\t': goto yy120; + case '\t': goto yy121; case ' ': - case 0xA0: goto yy122; - default: goto yy19; + case 0xA0: goto yy123; + default: goto yy3; } -yy49: +yy50: YYCTXMARKER = YYCURSOR + 1; yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); @@ -347,20 +354,20 @@ yy49: case '\n': case '\r': case ' ': - case 0xA0: goto yy81; - case '#': goto yy79; - default: goto yy50; + case 0xA0: goto yy82; + case '#': goto yy80; + default: goto yy51; } -yy50: - { return TEXT_HASH; } yy51: + { return TEXT_HASH; } +yy52: ++YYCURSOR; { return TEXT_PERCENT; } -yy53: +yy54: yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '.': goto yy70; + case '.': goto yy71; case '0': case '1': case '2': @@ -370,86 +377,86 @@ yy53: case '6': case '7': case '8': - case '9': goto yy72; - default: goto yy19; + case '9': goto yy73; + default: goto yy3; } -yy54: - ++YYCURSOR; yy55: - { return TEXT_NL; } + ++YYCURSOR; yy56: + { return TEXT_NL; } +yy57: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy54; - default: goto yy55; + case '\n': goto yy55; + default: goto yy56; } -yy57: +yy58: ++YYCURSOR; { return STAR; } -yy59: +yy60: ++YYCURSOR; { return UL; } -yy61: +yy62: ++YYCURSOR; yych = *YYCURSOR; - goto yy69; -yy62: - { return BACKTICK; } + goto yy70; yy63: + { return BACKTICK; } +yy64: ++YYCURSOR; yych = *YYCURSOR; - goto yy67; -yy64: - { return PIPE; } + goto yy68; yy65: - yych = *++YYCURSOR; - goto yy19; + { return PIPE; } yy66: + yych = *++YYCURSOR; + goto yy3; +yy67: ++YYCURSOR; yych = *YYCURSOR; -yy67: +yy68: switch (yych) { - case '|': goto yy66; - default: goto yy64; + case '|': goto yy67; + default: goto yy65; } -yy68: +yy69: ++YYCURSOR; yych = *YYCURSOR; -yy69: +yy70: switch (yych) { - case '`': goto yy68; - default: goto yy62; + case '`': goto yy69; + default: goto yy63; } -yy70: +yy71: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { case '\t': case ' ': - case 0xA0: goto yy77; - case '\n': goto yy74; - case '\r': goto yy76; - default: goto yy71; + case 0xA0: goto yy78; + case '\n': goto yy75; + case '\r': goto yy77; + default: goto yy72; } -yy71: +yy72: YYCURSOR = YYMARKER; switch (yyaccept) { - case 0: goto yy3; - case 1: goto yy5; - case 2: goto yy9; - case 3: goto yy11; - case 4: goto yy13; - case 5: goto yy19; - case 6: goto yy36; - case 7: goto yy50; - case 8: goto yy129; - default: goto yy262; - } -yy72: + case 0: goto yy5; + case 1: goto yy7; + case 2: goto yy11; + case 3: goto yy13; + case 4: goto yy15; + case 5: goto yy3; + case 6: goto yy37; + case 7: goto yy51; + case 8: goto yy130; + default: goto yy263; + } +yy73: ++YYCURSOR; yych = *YYCURSOR; switch (yych) { - case '.': goto yy70; + case '.': goto yy71; case '0': case '1': case '2': @@ -459,30 +466,30 @@ yy72: case '6': case '7': case '8': - case '9': goto yy72; - default: goto yy71; + case '9': goto yy73; + default: goto yy72; } -yy74: - ++YYCURSOR; yy75: + ++YYCURSOR; +yy76: YYCURSOR = YYCTXMARKER; { return TEXT_NUMBER_POSS_LIST; } -yy76: +yy77: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy74; - default: goto yy75; + case '\n': goto yy75; + default: goto yy76; } -yy77: +yy78: ++YYCURSOR; yych = *YYCURSOR; switch (yych) { case '\t': case ' ': - case 0xA0: goto yy77; - default: goto yy75; + case 0xA0: goto yy78; + default: goto yy76; } -yy79: +yy80: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { @@ -490,61 +497,61 @@ yy79: case '\n': case '\r': case ' ': - case 0xA0: goto yy87; - case '#': goto yy92; - default: goto yy71; + case 0xA0: goto yy88; + case '#': goto yy93; + default: goto yy72; } -yy80: +yy81: ++YYCURSOR; yych = *YYCURSOR; -yy81: +yy82: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy80; - case '\n': goto yy83; - case '\r': goto yy85; - default: goto yy82; + case 0xA0: goto yy81; + case '\n': goto yy84; + case '\r': goto yy86; + default: goto yy83; } -yy82: - { return HASH1; } yy83: - ++YYCURSOR; + { return HASH1; } yy84: + ++YYCURSOR; +yy85: YYCURSOR = YYCTXMARKER; { return HASH1; } -yy85: +yy86: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy83; - default: goto yy84; + case '\n': goto yy84; + default: goto yy85; } -yy86: +yy87: ++YYCURSOR; yych = *YYCURSOR; -yy87: +yy88: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy86; - case '\n': goto yy89; - case '\r': goto yy91; - default: goto yy88; + case 0xA0: goto yy87; + case '\n': goto yy90; + case '\r': goto yy92; + default: goto yy89; } -yy88: - { return HASH2; } yy89: - ++YYCURSOR; + { return HASH2; } yy90: + ++YYCURSOR; +yy91: YYCURSOR = YYCTXMARKER; { return HASH2; } -yy91: +yy92: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy89; - default: goto yy90; + case '\n': goto yy90; + default: goto yy91; } -yy92: +yy93: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { @@ -552,11 +559,11 @@ yy92: case '\n': case '\r': case ' ': - case 0xA0: goto yy95; - case '#': goto yy93; - default: goto yy71; + case 0xA0: goto yy96; + case '#': goto yy94; + default: goto yy72; } -yy93: +yy94: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { @@ -564,61 +571,61 @@ yy93: case '\n': case '\r': case ' ': - case 0xA0: goto yy101; - case '#': goto yy106; - default: goto yy71; + case 0xA0: goto yy102; + case '#': goto yy107; + default: goto yy72; } -yy94: +yy95: ++YYCURSOR; yych = *YYCURSOR; -yy95: +yy96: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy94; - case '\n': goto yy97; - case '\r': goto yy99; - default: goto yy96; + case 0xA0: goto yy95; + case '\n': goto yy98; + case '\r': goto yy100; + default: goto yy97; } -yy96: - { return HASH3; } yy97: - ++YYCURSOR; + { return HASH3; } yy98: + ++YYCURSOR; +yy99: YYCURSOR = YYCTXMARKER; { return HASH3; } -yy99: +yy100: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy97; - default: goto yy98; + case '\n': goto yy98; + default: goto yy99; } -yy100: +yy101: ++YYCURSOR; yych = *YYCURSOR; -yy101: +yy102: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy100; - case '\n': goto yy103; - case '\r': goto yy105; - default: goto yy102; + case 0xA0: goto yy101; + case '\n': goto yy104; + case '\r': goto yy106; + default: goto yy103; } -yy102: - { return HASH4; } yy103: - ++YYCURSOR; + { return HASH4; } yy104: + ++YYCURSOR; +yy105: YYCURSOR = YYCTXMARKER; { return HASH4; } -yy105: +yy106: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy103; - default: goto yy104; + case '\n': goto yy104; + default: goto yy105; } -yy106: +yy107: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { @@ -626,11 +633,11 @@ yy106: case '\n': case '\r': case ' ': - case 0xA0: goto yy109; - case '#': goto yy107; - default: goto yy71; + case 0xA0: goto yy110; + case '#': goto yy108; + default: goto yy72; } -yy107: +yy108: YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; switch (yych) { @@ -638,465 +645,468 @@ yy107: case '\n': case '\r': case ' ': - case 0xA0: goto yy115; - default: goto yy71; + case 0xA0: goto yy116; + default: goto yy72; } -yy108: +yy109: ++YYCURSOR; yych = *YYCURSOR; -yy109: +yy110: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy108; - case '\n': goto yy111; - case '\r': goto yy113; - default: goto yy110; + case 0xA0: goto yy109; + case '\n': goto yy112; + case '\r': goto yy114; + default: goto yy111; } -yy110: - { return HASH5; } yy111: - ++YYCURSOR; + { return HASH5; } yy112: + ++YYCURSOR; +yy113: YYCURSOR = YYCTXMARKER; { return HASH5; } -yy113: +yy114: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy111; - default: goto yy112; + case '\n': goto yy112; + default: goto yy113; } -yy114: +yy115: ++YYCURSOR; yych = *YYCURSOR; -yy115: +yy116: switch (yych) { case '\t': case ' ': - case 0xA0: goto yy114; - case '\n': goto yy117; - case '\r': goto yy119; - default: goto yy116; + case 0xA0: goto yy115; + case '\n': goto yy118; + case '\r': goto yy120; + default: goto yy117; } -yy116: - { return HASH6; } yy117: - ++YYCURSOR; + { return HASH6; } yy118: + ++YYCURSOR; +yy119: YYCURSOR = YYCTXMARKER; { return HASH6; } -yy119: +yy120: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy117; - default: goto yy118; + case '\n': goto yy118; + default: goto yy119; } -yy120: +yy121: ++YYCURSOR; YYCURSOR = YYCTXMARKER; { return NON_INDENT_SPACE; } -yy122: +yy123: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '\n': goto yy125; - case '\r': goto yy127; + case '\n': goto yy126; + case '\r': goto yy128; case ' ': - case 0xA0: goto yy124; - default: goto yy123; + case 0xA0: goto yy125; + default: goto yy124; } -yy123: - { return NON_INDENT_SPACE; } yy124: + { return NON_INDENT_SPACE; } +yy125: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy125; - case '\r': goto yy127; + case '\n': goto yy126; + case '\r': goto yy128; case ' ': - case 0xA0: goto yy128; - default: goto yy123; + case 0xA0: goto yy129; + default: goto yy124; } -yy125: - ++YYCURSOR; yy126: - { return TEXT_LINEBREAK; } + ++YYCURSOR; yy127: + { return TEXT_LINEBREAK; } +yy128: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy125; - default: goto yy126; + case '\n': goto yy126; + default: goto yy127; } -yy128: +yy129: yyaccept = 8; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '\n': goto yy125; - case '\r': goto yy127; + case '\n': goto yy126; + case '\r': goto yy128; case ' ': - case 0xA0: goto yy130; - default: goto yy129; + case 0xA0: goto yy131; + default: goto yy130; } -yy129: - { return INDENT_SPACE; } yy130: + { return INDENT_SPACE; } +yy131: ++YYCURSOR; yych = *YYCURSOR; switch (yych) { - case '\n': goto yy125; - case '\r': goto yy127; + case '\n': goto yy126; + case '\r': goto yy128; case ' ': - case 0xA0: goto yy130; - default: goto yy71; + case 0xA0: goto yy131; + default: goto yy72; } -yy132: +yy133: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy54; - default: goto yy55; + case '\n': goto yy55; + default: goto yy56; } -yy133: +yy134: ++YYCURSOR; { return MATH_DOLLAR_DOUBLE; } -yy135: - ++YYCURSOR; yy136: - { return TEXT_LINEBREAK; } + ++YYCURSOR; yy137: + { return TEXT_LINEBREAK; } +yy138: yych = *++YYCURSOR; switch (yych) { - case '\n': goto yy135; - default: goto yy136; + case '\n': goto yy136; + default: goto yy137; } -yy138: +yy139: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '(': goto yy204; - case ')': goto yy206; - case '[': goto yy208; - case ']': goto yy210; - default: goto yy139; + case '(': goto yy205; + case ')': goto yy207; + case '[': goto yy209; + case ']': goto yy211; + default: goto yy140; } -yy139: - { return ESCAPED_CHARACTER; } yy140: + { return ESCAPED_CHARACTER; } +yy141: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy142: +yy143: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy144: +yy145: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy146: +yy147: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy148: +yy149: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy150: +yy151: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy152: +yy153: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy154: +yy155: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy156: +yy157: ++YYCURSOR; { return ESCAPED_CHARACTER; } -yy158: +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 MATH_PAREN_OPEN; } -yy206: +yy207: ++YYCURSOR; { return MATH_PAREN_CLOSE; } -yy208: +yy209: ++YYCURSOR; { return MATH_BRACKET_OPEN; } -yy210: +yy211: ++YYCURSOR; { return MATH_BRACKET_CLOSE; } -yy212: +yy213: yych = *++YYCURSOR; switch (yych) { case 'M': - case 'm': goto yy213; - default: goto yy71; + case 'm': goto yy214; + default: goto yy72; } -yy213: +yy214: yych = *++YYCURSOR; switch (yych) { case 'P': - case 'p': goto yy214; - default: goto yy71; + case 'p': goto yy215; + default: goto yy72; } -yy214: +yy215: yych = *++YYCURSOR; switch (yych) { - case ';': goto yy215; - default: goto yy71; + case ';': goto yy216; + default: goto yy72; } -yy215: +yy216: ++YYCURSOR; { return AMPERSAND_LONG; } -yy217: +yy218: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy221; - default: goto yy71; + case '.': goto yy222; + default: goto yy72; } -yy218: +yy219: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy219; - default: goto yy71; + case '.': goto yy220; + default: goto yy72; } -yy219: +yy220: ++YYCURSOR; { return ELLIPSIS; } -yy221: +yy222: yych = *++YYCURSOR; switch (yych) { - case ' ': goto yy222; - default: goto yy71; + case ' ': goto yy223; + default: goto yy72; } -yy222: +yy223: yych = *++YYCURSOR; switch (yych) { - case '.': goto yy223; - default: goto yy71; + case '.': goto yy224; + default: goto yy72; } -yy223: +yy224: ++YYCURSOR; { return ELLIPSIS; } -yy225: +yy226: ++YYCURSOR; { return QUOTE_RIGHT_ALT; } -yy227: +yy228: ++YYCURSOR; { return BRACE_DOUBLE_RIGHT; } -yy229: +yy230: ++YYCURSOR; { return BRACKET_IMAGE_LEFT; } -yy231: +yy232: ++YYCURSOR; { return BRACKET_VARIABLE_LEFT; } -yy233: +yy234: ++YYCURSOR; { return BRACKET_GLOSSARY_LEFT; } -yy235: +yy236: ++YYCURSOR; { return BRACKET_FOOTNOTE_LEFT; } -yy237: +yy238: ++YYCURSOR; { return BRACKET_CITATION_LEFT; } -yy239: +yy240: ++YYCURSOR; { return BRACKET_ABBREVIATION_LEFT; } -yy241: +yy242: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy242; - default: goto yy71; + case '}': goto yy243; + default: goto yy72; } -yy242: +yy243: ++YYCURSOR; { return CRITIC_HI_CLOSE; } -yy244: +yy245: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy247; - default: goto yy71; + case '}': goto yy248; + default: goto yy72; } -yy245: +yy246: ++YYCURSOR; { return CRITIC_SUB_DIV; } -yy247: +yy248: ++YYCURSOR; { return CRITIC_SUB_CLOSE; } -yy249: +yy250: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy250; - default: goto yy71; + case '}': goto yy251; + default: goto yy72; } -yy250: +yy251: ++YYCURSOR; { return CRITIC_COM_CLOSE; } -yy252: +yy253: ++YYCURSOR; switch ((yych = *YYCURSOR)) { - case '-': goto yy256; - case '}': goto yy254; - default: goto yy253; + case '-': goto yy257; + case '}': goto yy255; + default: goto yy254; } -yy253: - { return DASH_N; } yy254: + { return DASH_N; } +yy255: ++YYCURSOR; { return CRITIC_DEL_CLOSE; } -yy256: +yy257: ++YYCURSOR; { return DASH_M; } -yy258: +yy259: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy259; - default: goto yy71; + case '}': goto yy260; + default: goto yy72; } -yy259: +yy260: ++YYCURSOR; { return CRITIC_ADD_CLOSE; } -yy261: +yy262: yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case 'T': goto yy278; - default: goto yy262; + case 'T': goto yy279; + default: goto yy263; } -yy262: - { return BRACE_DOUBLE_LEFT; } yy263: - yych = *++YYCURSOR; - switch (yych) { - case '=': goto yy276; - default: goto yy71; - } + { return BRACE_DOUBLE_LEFT; } yy264: yych = *++YYCURSOR; switch (yych) { - case '~': goto yy274; - default: goto yy71; + case '=': goto yy277; + default: goto yy72; } yy265: yych = *++YYCURSOR; switch (yych) { - case '>': goto yy272; - default: goto yy71; + case '~': goto yy275; + default: goto yy72; } yy266: yych = *++YYCURSOR; switch (yych) { - case '-': goto yy270; - default: goto yy71; + case '>': goto yy273; + default: goto yy72; } yy267: yych = *++YYCURSOR; switch (yych) { - case '+': goto yy268; - default: goto yy71; + case '-': goto yy271; + default: goto yy72; } yy268: + yych = *++YYCURSOR; + switch (yych) { + case '+': goto yy269; + default: goto yy72; + } +yy269: ++YYCURSOR; { return CRITIC_ADD_OPEN; } -yy270: +yy271: ++YYCURSOR; { return CRITIC_DEL_OPEN; } -yy272: +yy273: ++YYCURSOR; { return CRITIC_COM_OPEN; } -yy274: +yy275: ++YYCURSOR; { return CRITIC_SUB_OPEN; } -yy276: +yy277: ++YYCURSOR; { return CRITIC_HI_OPEN; } -yy278: - yych = *++YYCURSOR; - switch (yych) { - case 'O': goto yy279; - default: goto yy71; - } yy279: yych = *++YYCURSOR; switch (yych) { - case 'C': goto yy280; - default: goto yy71; + case 'O': goto yy280; + default: goto yy72; } yy280: yych = *++YYCURSOR; switch (yych) { - case '}': goto yy281; - default: goto yy71; + case 'C': goto yy281; + default: goto yy72; } yy281: yych = *++YYCURSOR; switch (yych) { case '}': goto yy282; - default: goto yy71; + default: goto yy72; } yy282: + yych = *++YYCURSOR; + switch (yych) { + case '}': goto yy283; + default: goto yy72; + } +yy283: ++YYCURSOR; { return TOC; } +yy285: + ++YYCURSOR; + { return TEXT_PLAIN; } } } diff --git a/Sources/libMultiMarkdown/lexer.re b/Sources/libMultiMarkdown/lexer.re index 998169f..44fd265 100644 --- a/Sources/libMultiMarkdown/lexer.re +++ b/Sources/libMultiMarkdown/lexer.re @@ -92,6 +92,9 @@ int scan(Scanner * s, const char * stop) { // The order of these seems to matter + // Don't split `à` character + '\303' '\240' { return TEXT_PLAIN; } + "{{TOC}}" { return TOC; } "{++" { return CRITIC_ADD_OPEN; } diff --git a/tests/MMD6Tests/International.fodt b/tests/MMD6Tests/International.fodt new file mode 100644 index 0000000..e1660b2 --- /dev/null +++ b/tests/MMD6Tests/International.fodt @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bibliography + + + + International + + + +été + +à la + + + diff --git a/tests/MMD6Tests/International.html b/tests/MMD6Tests/International.html new file mode 100644 index 0000000..617edae --- /dev/null +++ b/tests/MMD6Tests/International.html @@ -0,0 +1,15 @@ + + + + + International + + + +

été

+ +

à la

+ + + + diff --git a/tests/MMD6Tests/International.htmlc b/tests/MMD6Tests/International.htmlc new file mode 100644 index 0000000..e06a860 --- /dev/null +++ b/tests/MMD6Tests/International.htmlc @@ -0,0 +1,6 @@ +

Title: International
+latex config: article

+ +

été

+ +

à la

diff --git a/tests/MMD6Tests/International.tex b/tests/MMD6Tests/International.tex new file mode 100644 index 0000000..3c16783 --- /dev/null +++ b/tests/MMD6Tests/International.tex @@ -0,0 +1,10 @@ +\input{mmd6-article-leader} +\def\mytitle{International} +\input{mmd6-article-begin} + +été + +à la + +\input{mmd6-article-footer} +\end{document} diff --git a/tests/MMD6Tests/International.text b/tests/MMD6Tests/International.text new file mode 100644 index 0000000..80ee2d4 --- /dev/null +++ b/tests/MMD6Tests/International.text @@ -0,0 +1,6 @@ +Title: International +latex config: article + +été + +à la