From 45942bdbc6a7dba1caa36c160b734c359881fd25 Mon Sep 17 00:00:00 2001 From: why Date: Fri, 30 Jul 2004 20:31:09 +0000 Subject: * lib/yaml/rubytypes.rb: exceptions were using an older YAML.object_maker. [ruby-core:03080] * ext/syck/token.c (sycklex_yaml_utf8): using newline_len to handline CR-LFs. "\000" was showing up on folded blocks which stopped at EOF. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/token.c | 2116 +++++++++++++++++++++++++----------------------------- 1 file changed, 964 insertions(+), 1152 deletions(-) (limited to 'ext') diff --git a/ext/syck/token.c b/ext/syck/token.c index 295103fc50..703f7fa0a1 100644 --- a/ext/syck/token.c +++ b/ext/syck/token.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.3 on Fri Jun 18 18:55:09 2004 */ +/* Generated by re2c 0.9.3 on Fri Jul 30 13:48:10 2004 */ #line 1 "token.re" /* * token.re @@ -40,7 +40,7 @@ /* * Track line numbers */ -#define NEWLINE(ptr) YYLINEPTR = ptr + 1; if ( YYLINEPTR > YYLINECTPTR ) { YYLINE++; YYLINECTPTR = YYLINEPTR; } +#define NEWLINE(ptr) YYLINEPTR = ptr + newline_len(ptr); if ( YYLINEPTR > YYLINECTPTR ) { YYLINE++; YYLINECTPTR = YYLINEPTR; } /* * I like seeing the level operations as macros... @@ -148,7 +148,7 @@ { \ char *fc = n->data.str->ptr + n->data.str->len - 1; \ while ( is_newline( fc ) ) fc--; \ - if ( nlDoWhat != NL_CHOMP ) \ + if ( nlDoWhat != NL_CHOMP && fc < n->data.str->ptr + n->data.str->len - 1 ) \ fc += 1; \ n->data.str->len = fc - n->data.str->ptr + 1; \ } \ @@ -209,6 +209,7 @@ SyckParser *syck_parser_ptr = NULL; void eat_comments( SyckParser * ); char escape_seq( char ); int is_newline( char *ptr ); +int newline_len( char *ptr ); int sycklex_yaml_utf8( YYSTYPE *, SyckParser * ); int sycklex_bytecode_utf8( YYSTYPE *, SyckParser * ); int syckwrap(); @@ -259,7 +260,7 @@ sycklex_yaml_utf8( YYSTYPE *sycklval, SyckParser *parser ) return t; } -#line 278 "token.re" +#line 279 "token.re" if ( YYLINEPTR != YYCURSOR ) @@ -276,128 +277,161 @@ Header: { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy0; yy1: ++YYCURSOR; yy0: if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy7; - case '\n': goto yy9; - case '\r': goto yy11; - case ' ': goto yy12; - case '#': goto yy5; - case '-': goto yy2; - case '.': goto yy4; - default: goto yy14; + if(yych <= '\037'){ + if(yych <= '\n'){ + if(yych <= '\000') goto yy7; + if(yych <= '\t') goto yy14; + goto yy9; + } else { + if(yych == '\r') goto yy11; + goto yy14; + } + } else { + if(yych <= '#'){ + if(yych <= ' ') goto yy12; + if(yych <= '"') goto yy14; + goto yy5; + } else { + if(yych <= ',') goto yy14; + if(yych <= '-') goto yy2; + if(yych <= '.') goto yy4; + goto yy14; + } } yy2: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '-': goto yy28; - default: goto yy3; - } + if(yych == '-') goto yy28; + goto yy3; yy3: -#line 337 "token.re" +#line 338 "token.re" { YYPOS(0); goto Document; } -#line 37 "" +#line 80 "" yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '.': goto yy21; - default: goto yy3; - } + if(yych == '.') goto yy21; + goto yy3; yy5: ++YYCURSOR; goto yy6; yy6: -#line 319 "token.re" +#line 320 "token.re" { eat_comments( parser ); goto Header; } -#line 51 "" +#line 92 "" yy7: ++YYCURSOR; goto yy8; yy8: -#line 323 "token.re" +#line 324 "token.re" { SyckLevel *lvl = CURRENT_LEVEL(); ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } -#line 61 "" +#line 102 "" yy9: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); goto yy18; yy10: -#line 329 "token.re" +#line 330 "token.re" { GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); goto Header; } -#line 70 "" +#line 111 "" yy11: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy3; - } + if(yych == '\n') goto yy17; + goto yy3; yy12: ++YYCURSOR; yych = *YYCURSOR; goto yy16; yy13: -#line 333 "token.re" +#line 334 "token.re" { doc_level = YYCURSOR - YYLINEPTR; goto Header; } -#line 83 "" +#line 122 "" yy14: yych = *++YYCURSOR; goto yy3; yy15: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy16; -yy16: switch(yych){ - case ' ': goto yy15; - default: goto yy13; - } +yy16: if(yybm[0+yych] & 64) goto yy15; + goto yy13; yy17: yyaccept = 1; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy18; -yy18: switch(yych){ - case '\n': case ' ': goto yy17; - case '\r': goto yy19; - default: goto yy10; - } +yy18: if(yybm[0+yych] & 128) goto yy17; + if(yych != '\r') goto yy10; + goto yy19; yy19: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy20; - } + if(yych == '\n') goto yy17; + goto yy20; yy20: YYCURSOR = YYMARKER; switch(yyaccept){ case 1: goto yy10; case 0: goto yy3; } yy21: yych = *++YYCURSOR; - switch(yych){ - case '.': goto yy22; - default: goto yy20; - } + if(yych != '.') goto yy20; + goto yy22; yy22: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy23; - case '\r': goto yy27; - case ' ': goto yy25; - default: goto yy20; + if(yych <= '\f'){ + if(yych != '\n') goto yy20; + goto yy23; + } else { + if(yych <= '\r') goto yy27; + if(yych == ' ') goto yy25; + goto yy20; } yy23: ++YYCURSOR; goto yy24; yy24: -#line 305 "token.re" +#line 306 "token.re" { SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { @@ -411,36 +445,32 @@ yy24: } return 0; } -#line 147 "" +#line 180 "" yy25: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy26; -yy26: switch(yych){ - case ' ': goto yy25; - default: goto yy24; - } +yy26: if(yych == ' ') goto yy25; + goto yy24; yy27: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy23; - default: goto yy20; - } + if(yych == '\n') goto yy23; + goto yy20; yy28: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy29; - default: goto yy20; - } + if(yych != '-') goto yy20; + goto yy29; yy29: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - case '\r': goto yy34; - case ' ': goto yy32; - default: goto yy20; + if(yych <= '\f'){ + if(yych != '\n') goto yy20; + goto yy30; + } else { + if(yych <= '\r') goto yy34; + if(yych == ' ') goto yy32; + goto yy20; } yy30: ++YYCURSOR; goto yy31; yy31: -#line 291 "token.re" +#line 292 "token.re" { SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { @@ -454,22 +484,18 @@ yy31: return 0; } } -#line 191 "" +#line 220 "" yy32: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy33; -yy33: switch(yych){ - case ' ': goto yy32; - default: goto yy31; - } +yy33: if(yych == ' ') goto yy32; + goto yy31; yy34: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy30; - default: goto yy20; - } + if((yych = *YYCURSOR) == '\n') goto yy30; + goto yy20; } -#line 341 "token.re" +#line 342 "token.re" Document: @@ -483,38 +509,104 @@ Document: YYTOKEN = YYCURSOR; -#line 209 "" +#line 234 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 96, 0, 0, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 0, 0, 0, 0, 0, 0, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 64, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy35; yy36: ++YYCURSOR; yy35: if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy60; - case '\n': goto yy37; - case '\r': goto yy39; - case ' ': goto yy58; - case '!': goto yy49; - case '"': goto yy53; - case '#': goto yy56; - case '&': goto yy47; - case '\'': goto yy51; - case '*': goto yy48; - case ',': case ':': goto yy45; - case '-': case '?': goto yy46; - case '>': case '|': goto yy55; - case '[': case '{': goto yy41; - case ']': case '}': goto yy43; - default: goto yy62; + if(yych <= '+'){ + if(yych <= '!'){ + if(yych <= '\f'){ + if(yych <= '\000') goto yy60; + if(yych != '\n') goto yy62; + goto yy37; + } else { + if(yych <= '\r') goto yy39; + if(yych <= '\037') goto yy62; + if(yych <= ' ') goto yy58; + goto yy49; + } + } else { + if(yych <= '&'){ + if(yych <= '"') goto yy53; + if(yych <= '#') goto yy56; + if(yych <= '%') goto yy62; + goto yy47; + } else { + if(yych <= '\'') goto yy51; + if(yych == '*') goto yy48; + goto yy62; + } + } + } else { + if(yych <= 'Z'){ + if(yych <= ':'){ + if(yych <= ',') goto yy45; + if(yych <= '-') goto yy46; + if(yych <= '9') goto yy62; + goto yy45; + } else { + if(yych <= '=') goto yy62; + if(yych <= '>') goto yy55; + if(yych <= '?') goto yy46; + goto yy62; + } + } else { + if(yych <= 'z'){ + if(yych <= '[') goto yy41; + if(yych == ']') goto yy43; + goto yy62; + } else { + if(yych <= '{') goto yy41; + if(yych <= '|') goto yy55; + if(yych <= '}') goto yy43; + goto yy62; + } + } } yy37: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy90; yy38: -#line 355 "token.re" +#line 356 "token.re" { /* Isolate spaces */ int indt_len; GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); @@ -536,271 +628,153 @@ yy38: } return YAML_INDENT; } -#line 262 "" +#line 353 "" yy39: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy89; - default: goto yy40; - } + if((yych = *YYCURSOR) == '\n') goto yy89; + goto yy40; yy40: -#line 447 "token.re" +#line 448 "token.re" { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto Plain; } -#line 273 "" +#line 362 "" yy41: ++YYCURSOR; goto yy42; yy42: -#line 377 "token.re" +#line 378 "token.re" { ENSURE_YAML_IOPEN(lvl, doc_level, 1); lvl = CURRENT_LEVEL(); ADD_LEVEL(lvl->spaces + 1, syck_lvl_inline); return YYTOKEN[0]; } -#line 283 "" +#line 372 "" yy43: ++YYCURSOR; goto yy44; yy44: -#line 383 "token.re" +#line 384 "token.re" { POP_LEVEL(); return YYTOKEN[0]; } -#line 291 "" +#line 380 "" yy45: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy84; - case '\r': goto yy88; - case ' ': goto yy86; - default: goto yy40; + if(yych <= '\f'){ + if(yych == '\n') goto yy84; + goto yy40; + } else { + if(yych <= '\r') goto yy88; + if(yych == ' ') goto yy86; + goto yy40; } yy46: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy79; - case '\r': goto yy83; - case ' ': goto yy81; - default: goto yy40; + if(yych <= '\f'){ + if(yych == '\n') goto yy79; + goto yy40; + } else { + if(yych <= '\r') goto yy83; + if(yych == ' ') goto yy81; + goto yy40; } yy47: yych = *++YYCURSOR; - switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': 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 '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': goto yy76; - default: goto yy40; + if(yych <= '@'){ + if(yych <= '-'){ + if(yych <= ',') goto yy40; + goto yy76; + } else { + if(yych <= '/') goto yy40; + if(yych <= '9') goto yy76; + goto yy40; + } + } else { + if(yych <= '_'){ + if(yych <= 'Z') goto yy76; + if(yych <= '^') goto yy40; + goto yy76; + } else { + if(yych <= '`') goto yy40; + if(yych <= 'z') goto yy76; + goto yy40; + } } yy48: yych = *++YYCURSOR; - switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': 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 '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': goto yy73; - default: goto yy40; - } + if(yybm[0+yych] & 64) goto yy73; + goto yy40; yy49: ++YYCURSOR; goto yy50; yy50: -#line 421 "token.re" +#line 422 "token.re" { goto TransferMethod; } -#line 441 "" +#line 430 "" yy51: ++YYCURSOR; goto yy52; yy52: -#line 423 "token.re" +#line 424 "token.re" { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto SingleQuote; } -#line 448 "" +#line 437 "" yy53: ++YYCURSOR; goto yy54; yy54: -#line 426 "token.re" +#line 427 "token.re" { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto DoubleQuote; } -#line 455 "" +#line 444 "" yy55: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy40; + if(yybm[0+yych] & 32) goto yy65; + if(yych <= '\f'){ + if(yych == '\n') goto yy68; + goto yy40; + } else { + if(yych <= '\r') goto yy72; + if(yych == ' ') goto yy70; + goto yy40; } yy56: ++YYCURSOR; goto yy57; yy57: -#line 436 "token.re" +#line 437 "token.re" { eat_comments( parser ); goto Document; } -#line 481 "" +#line 463 "" yy58: ++YYCURSOR; yych = *YYCURSOR; goto yy64; yy59: -#line 440 "token.re" +#line 441 "token.re" { goto Document; } -#line 487 "" +#line 469 "" yy60: ++YYCURSOR; goto yy61; yy61: -#line 442 "token.re" +#line 443 "token.re" { ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } -#line 496 "" +#line 478 "" yy62: yych = *++YYCURSOR; goto yy40; yy63: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy64; -yy64: switch(yych){ - case ' ': goto yy63; - default: goto yy59; - } +yy64: if(yybm[0+yych] & 16) goto yy63; + goto yy59; yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy66; -yy66: switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy67; +yy66: if(yybm[0+yych] & 32) goto yy65; + if(yych <= '\f'){ + if(yych == '\n') goto yy68; + goto yy67; + } else { + if(yych <= '\r') goto yy72; + if(yych == ' ') goto yy70; + goto yy67; } yy67: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -810,170 +784,62 @@ yy67: YYCURSOR = YYMARKER; yy68: ++YYCURSOR; goto yy69; yy69: -#line 429 "token.re" +#line 430 "token.re" { if ( is_newline( YYCURSOR - 1 ) ) { YYCURSOR--; } goto ScalarBlock; } -#line 544 "" +#line 517 "" yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy71; -yy71: switch(yych){ - case ' ': goto yy70; - default: goto yy69; - } +yy71: if(yych == ' ') goto yy70; + goto yy69; yy72: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy68; - default: goto yy67; - } + if(yych == '\n') goto yy68; + goto yy67; yy73: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy74; -yy74: switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': 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 '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': goto yy73; - default: goto yy75; - } +yy74: if(yybm[0+yych] & 64) goto yy73; + goto yy75; yy75: -#line 416 "token.re" +#line 417 "token.re" { ENSURE_YAML_IOPEN(lvl, doc_level, 1); sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); return YAML_ALIAS; } -#line 633 "" +#line 541 "" yy76: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy77; -yy77: switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': 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 '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': goto yy76; - default: goto yy78; +yy77: if(yych <= '@'){ + if(yych <= '-'){ + if(yych >= '-') goto yy76; + goto yy78; + } else { + if(yych <= '/') goto yy78; + if(yych <= '9') goto yy76; + goto yy78; + } + } else { + if(yych <= '_'){ + if(yych <= 'Z') goto yy76; + if(yych >= '_') goto yy76; + goto yy78; + } else { + if(yych <= '`') goto yy78; + if(yych <= 'z') goto yy76; + goto yy78; + } } yy78: -#line 405 "token.re" +#line 406 "token.re" { sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); /* @@ -984,11 +850,11 @@ yy78: syck_hdlr_remove_anchor(parser, sycklval->name); return YAML_ANCHOR; } -#line 714 "" +#line 579 "" yy79: ++YYCURSOR; goto yy80; yy80: -#line 391 "token.re" +#line 392 "token.re" { ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); FORCE_NEXT_TOKEN(YAML_IOPEN); if ( is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) ) @@ -1002,60 +868,48 @@ yy80: } return YYTOKEN[0]; } -#line 732 "" +#line 597 "" yy81: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy82; -yy82: switch(yych){ - case ' ': goto yy81; - default: goto yy80; - } +yy82: if(yych == ' ') goto yy81; + goto yy80; yy83: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy79; - default: goto yy67; - } + if(yych == '\n') goto yy79; + goto yy67; yy84: ++YYCURSOR; goto yy85; yy85: -#line 387 "token.re" +#line 388 "token.re" { YYPOS(1); return YYTOKEN[0]; } -#line 754 "" +#line 615 "" yy86: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy87; -yy87: switch(yych){ - case ' ': goto yy86; - default: goto yy85; - } +yy87: if(yych == ' ') goto yy86; + goto yy85; yy88: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy84; - default: goto yy67; - } + if(yych == '\n') goto yy84; + goto yy67; yy89: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy90; -yy90: switch(yych){ - case '\n': case ' ': goto yy89; - case '\r': goto yy91; - default: goto yy38; - } +yy90: if(yybm[0+yych] & 128) goto yy89; + if(yych != '\r') goto yy38; + goto yy91; yy91: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy67; - } + if(yych == '\n') goto yy89; + goto yy67; } -#line 451 "token.re" +#line 452 "token.re" } @@ -1064,20 +918,56 @@ Directive: YYTOKTMP = YYCURSOR; -#line 790 "" +#line 643 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 0, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy92; yy93: ++YYCURSOR; yy92: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy94; - case ' ': goto yy97; - case '%': goto yy95; - default: goto yy99; + if(yych <= ' '){ + if(yych <= '\000') goto yy94; + if(yych <= '\037') goto yy99; + goto yy97; + } else { + if(yych == '%') goto yy95; + goto yy99; } yy94: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -1085,355 +975,53 @@ yy94: YYCURSOR = YYMARKER; } yy95: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - 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 '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': goto yy102; - default: goto yy96; - } + if(yych <= '-') goto yy96; + if(yych == '`') goto yy96; + if(yych <= 'z') goto yy102; + goto yy96; yy96: -#line 464 "token.re" +#line 465 "token.re" { YYCURSOR = YYTOKTMP; return YAML_DOCSEP; } -#line 894 "" +#line 709 "" yy97: ++YYCURSOR; yych = *YYCURSOR; goto yy101; yy98: -#line 462 "token.re" +#line 463 "token.re" { goto Directive; } -#line 900 "" +#line 715 "" yy99: yych = *++YYCURSOR; goto yy96; yy100: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy101; -yy101: switch(yych){ - case ' ': goto yy100; - default: goto yy98; - } +yy101: if(yybm[0+yych] & 32) goto yy100; + goto yy98; yy102: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy103; -yy103: switch(yych){ - 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 '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 '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': goto yy102; - case ':': goto yy104; - default: goto yy94; - } +yy103: if(yybm[0+yych] & 64) goto yy102; + if(yych != ':') goto yy94; + goto yy104; yy104: yych = *++YYCURSOR; - switch(yych){ - 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 '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': goto yy105; - default: goto yy94; - } + if(yybm[0+yych] & 128) goto yy105; + goto yy94; yy105: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy106; -yy106: switch(yych){ - 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 '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': goto yy105; - default: goto yy107; - } +yy106: if(yybm[0+yych] & 128) goto yy105; + goto yy107; yy107: -#line 460 "token.re" +#line 461 "token.re" { goto Directive; } -#line 1159 "" +#line 746 "" } -#line 467 "token.re" +#line 468 "token.re" } @@ -1456,30 +1044,75 @@ Plain2: Plain3: -#line 1163 "" +#line 750 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy108; yy109: ++YYCURSOR; yy108: if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy120; - case '\n': goto yy110; - case '\r': goto yy112; - case ' ': goto yy118; - case ',': goto yy117; - case ':': goto yy114; - case ']': case '}': goto yy115; - default: goto yy122; + if(yych <= '+'){ + if(yych <= '\f'){ + if(yych <= '\000') goto yy120; + if(yych != '\n') goto yy122; + goto yy110; + } else { + if(yych <= '\r') goto yy112; + if(yych == ' ') goto yy118; + goto yy122; + } + } else { + if(yych <= '\\'){ + if(yych <= ',') goto yy117; + if(yych == ':') goto yy114; + goto yy122; + } else { + if(yych <= ']') goto yy115; + if(yych == '}') goto yy115; + goto yy122; + } } yy110: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy136; yy111: -#line 490 "token.re" +#line 491 "token.re" { int indt_len, nl_count = 0; SyckLevel *lvl; char *tok = YYTOKEN; @@ -1493,8 +1126,12 @@ yy111: while ( YYTOKEN < YYCURSOR ) { - if ( is_newline( YYTOKEN++ ) ) + int nl_len = 0; + if ( nl_len = newline_len( YYTOKEN++ ) ) + { nl_count++; + YYTOKEN += nl_len - 1; + } } if ( nl_count <= 1 ) { @@ -1511,30 +1148,30 @@ yy111: goto Plain2; } -#line 1218 "" +#line 854 "" yy112: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy135; - default: goto yy113; - } + if((yych = *YYCURSOR) == '\n') goto yy135; + goto yy113; yy113: -#line 544 "token.re" +#line 549 "token.re" { QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); goto Plain2; } -#line 1229 "" +#line 863 "" yy114: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy130; - case '\r': goto yy134; - case ' ': goto yy132; - default: goto yy113; + if(yych <= '\f'){ + if(yych == '\n') goto yy130; + goto yy113; + } else { + if(yych <= '\r') goto yy134; + if(yych == ' ') goto yy132; + goto yy113; } yy115: ++YYCURSOR; goto yy116; yy116: -#line 524 "token.re" +#line 529 "token.re" { if ( plvl->status != syck_lvl_inline ) { if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) @@ -1546,55 +1183,47 @@ yy116: } RETURN_IMPLICIT(); } -#line 1253 "" +#line 889 "" yy117: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy125; - case '\r': goto yy128; - case ' ': goto yy126; - default: goto yy113; - } + if(yybm[0+yych] & 64) goto yy126; + if(yych == '\n') goto yy125; + if(yych == '\r') goto yy128; + goto yy113; yy118: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '#': goto yy123; - default: goto yy119; - } + if((yych = *YYCURSOR) == '#') goto yy123; + goto yy119; yy119: -#line 542 "token.re" +#line 547 "token.re" { goto Plain3; } -#line 1270 "" +#line 902 "" yy120: ++YYCURSOR; goto yy121; yy121: -#line 540 "token.re" +#line 545 "token.re" { RETURN_IMPLICIT(); } -#line 1276 "" +#line 908 "" yy122: yych = *++YYCURSOR; goto yy113; yy123: ++YYCURSOR; goto yy124; yy124: -#line 536 "token.re" +#line 541 "token.re" { eat_comments( parser ); RETURN_IMPLICIT(); } -#line 1286 "" +#line 918 "" yy125: yych = *++YYCURSOR; goto yy116; yy126: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy127; -yy127: switch(yych){ - case ' ': goto yy126; - default: goto yy116; - } +yy127: if(yybm[0+yych] & 64) goto yy126; + goto yy116; yy128: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy125; - default: goto yy129; - } + if(yych == '\n') goto yy125; + goto yy129; yy129: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy111; @@ -1603,41 +1232,33 @@ yy129: YYCURSOR = YYMARKER; yy130: ++YYCURSOR; goto yy131; yy131: -#line 522 "token.re" +#line 527 "token.re" { RETURN_IMPLICIT(); } -#line 1313 "" +#line 941 "" yy132: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy133; -yy133: switch(yych){ - case ' ': goto yy132; - default: goto yy131; - } +yy133: if(yych == ' ') goto yy132; + goto yy131; yy134: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy130; - default: goto yy129; - } + if(yych == '\n') goto yy130; + goto yy129; yy135: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy136; -yy136: switch(yych){ - case '\n': case ' ': goto yy135; - case '\r': goto yy137; - default: goto yy111; - } +yy136: if(yybm[0+yych] & 128) goto yy135; + if(yych != '\r') goto yy111; + goto yy137; yy137: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy129; - } + if(yych == '\n') goto yy135; + goto yy129; } -#line 548 "token.re" +#line 553 "token.re" } @@ -1651,27 +1272,63 @@ SingleQuote2: YYTOKEN = YYCURSOR; -#line 1349 "" +#line 969 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy138; yy139: ++YYCURSOR; yy138: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy146; - case '\n': goto yy140; - case '\r': goto yy142; - case '\'': goto yy144; - default: goto yy147; + if(yych <= '\f'){ + if(yych <= '\000') goto yy146; + if(yych != '\n') goto yy147; + goto yy140; + } else { + if(yych <= '\r') goto yy142; + if(yych == '\'') goto yy144; + goto yy147; } yy140: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy151; yy141: -#line 562 "token.re" +#line 567 "token.re" { int indt_len; int nl_count = 0; SyckLevel *lvl; @@ -1689,8 +1346,12 @@ yy141: while ( YYTOKEN < YYCURSOR ) { - if ( is_newline( YYTOKEN++ ) ) + int nl_len = 0; + if ( nl_len = newline_len( YYTOKEN++ ) ) + { nl_count++; + YYTOKEN += nl_len - 1; + } } if ( nl_count <= 1 ) { @@ -1707,25 +1368,21 @@ yy141: goto SingleQuote2; } -#line 1405 "" +#line 1065 "" yy142: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy150; - default: goto yy143; - } + if((yych = *YYCURSOR) == '\n') goto yy150; + goto yy143; yy143: -#line 618 "token.re" +#line 627 "token.re" { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto SingleQuote2; } -#line 1416 "" +#line 1074 "" yy144: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\'': goto yy148; - default: goto yy145; - } + if((yych = *YYCURSOR) == '\'') goto yy148; + goto yy145; yy145: -#line 602 "token.re" +#line 611 "token.re" { SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1741,7 +1398,7 @@ yy145: sycklval->nodeData = n; return YAML_PLAIN; } -#line 1439 "" +#line 1095 "" yy146: yych = *++YYCURSOR; goto yy145; yy147: yych = *++YYCURSOR; @@ -1749,34 +1406,30 @@ yy147: yych = *++YYCURSOR; yy148: ++YYCURSOR; goto yy149; yy149: -#line 598 "token.re" +#line 607 "token.re" { QUOTECAT(qstr, qcapa, qidx, '\''); goto SingleQuote2; } -#line 1451 "" +#line 1107 "" yy150: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy151; -yy151: switch(yych){ - case '\n': case ' ': goto yy150; - case '\r': goto yy152; - default: goto yy141; - } +yy151: if(yybm[0+yych] & 128) goto yy150; + if(yych != '\r') goto yy141; + goto yy152; yy152: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy153; - } + if(yych == '\n') goto yy150; + goto yy153; yy153: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy141; } } -#line 622 "token.re" +#line 631 "token.re" } @@ -1794,28 +1447,72 @@ DoubleQuote2: -#line 1477 "" +#line 1129 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy154; yy155: ++YYCURSOR; yy154: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy161; - case '\n': goto yy156; - case '\r': goto yy158; - case '"': goto yy163; - case '\\': goto yy160; - default: goto yy164; + if(yych <= '\r'){ + if(yych <= '\t'){ + if(yych <= '\000') goto yy161; + goto yy164; + } else { + if(yych <= '\n') goto yy156; + if(yych <= '\f') goto yy164; + goto yy158; + } + } else { + if(yych <= '"'){ + if(yych <= '!') goto yy164; + goto yy163; + } else { + if(yych == '\\') goto yy160; + goto yy164; + } } yy156: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy178; yy157: -#line 640 "token.re" +#line 649 "token.re" { int indt_len; int nl_count = 0; SyckLevel *lvl; @@ -1835,8 +1532,12 @@ yy157: { while ( YYTOKEN < YYCURSOR ) { - if ( is_newline( YYTOKEN++ ) ) + int nl_len = 0; + if ( nl_len = newline_len( YYTOKEN++ ) ) + { nl_count++; + YYTOKEN += nl_len - 1; + } } if ( nl_count <= 1 ) { @@ -1855,34 +1556,65 @@ yy157: keep_nl = 1; goto DoubleQuote2; } -#line 1538 "" +#line 1238 "" yy158: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy177; - default: goto yy159; - } + if((yych = *YYCURSOR) == '\n') goto yy177; + goto yy159; yy159: -#line 715 "token.re" +#line 728 "token.re" { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto DoubleQuote2; } -#line 1549 "" +#line 1247 "" yy160: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - case '"': case '0': case '\\': case 'a': - case 'b': case 'e': - case 'f': case 'n': case 'r': case 't': case 'v': goto yy172; - case 'x': goto yy171; - default: goto yy159; + if(yybm[0+yych] & 64) goto yy165; + if(yych <= 'b'){ + if(yych <= '"'){ + if(yych <= '\f'){ + if(yych == '\n') goto yy168; + goto yy159; + } else { + if(yych <= '\r') goto yy170; + if(yych <= '!') goto yy159; + goto yy172; + } + } else { + if(yych <= '['){ + if(yych == '0') goto yy172; + goto yy159; + } else { + if(yych <= '\\') goto yy172; + if(yych <= '`') goto yy159; + goto yy172; + } + } + } else { + if(yych <= 'r'){ + if(yych <= 'm'){ + if(yych <= 'd') goto yy159; + if(yych <= 'f') goto yy172; + goto yy159; + } else { + if(yych <= 'n') goto yy172; + if(yych <= 'q') goto yy159; + goto yy172; + } + } else { + if(yych <= 'u'){ + if(yych == 't') goto yy172; + goto yy159; + } else { + if(yych <= 'v') goto yy172; + if(yych == 'x') goto yy171; + goto yy159; + } + } } yy161: ++YYCURSOR; goto yy162; yy162: -#line 699 "token.re" +#line 712 "token.re" { SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1898,7 +1630,7 @@ yy162: sycklval->nodeData = n; return YAML_PLAIN; } -#line 1581 "" +#line 1312 "" yy163: yych = *++YYCURSOR; goto yy162; yy164: yych = *++YYCURSOR; @@ -1907,12 +1639,10 @@ yy165: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy166; -yy166: switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - default: goto yy167; - } +yy166: if(yybm[0+yych] & 64) goto yy165; + if(yych == '\n') goto yy168; + if(yych == '\r') goto yy170; + goto yy167; yy167: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy157; @@ -1921,78 +1651,50 @@ yy167: YYCURSOR = YYMARKER; yy168: ++YYCURSOR; goto yy169; yy169: -#line 694 "token.re" +#line 707 "token.re" { keep_nl = 0; YYCURSOR--; goto DoubleQuote2; } -#line 1610 "" +#line 1339 "" yy170: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy168; - default: goto yy167; - } + if(yych == '\n') goto yy168; + goto yy167; yy171: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy174; - default: goto yy167; + if(yych <= '@'){ + if(yych <= '/') goto yy167; + if(yych <= '9') goto yy174; + goto yy167; + } else { + if(yych <= 'F') goto yy174; + if(yych <= '`') goto yy167; + if(yych <= 'f') goto yy174; + goto yy167; } yy172: ++YYCURSOR; goto yy173; yy173: -#line 680 "token.re" +#line 693 "token.re" { char ch = *( YYCURSOR - 1 ); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); goto DoubleQuote2; } -#line 1648 "" +#line 1362 "" yy174: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy175; - default: goto yy167; + if(yych <= '@'){ + if(yych <= '/') goto yy167; + if(yych >= ':') goto yy167; + goto yy175; + } else { + if(yych <= 'F') goto yy175; + if(yych <= '`') goto yy167; + if(yych >= 'g') goto yy167; + goto yy175; } yy175: ++YYCURSOR; goto yy176; yy176: -#line 685 "token.re" +#line 698 "token.re" { long ch; char *chr_text = syck_strndup( YYTOKEN, 4 ); chr_text[0] = '0'; @@ -2001,26 +1703,22 @@ yy176: QUOTECAT(qstr, qcapa, qidx, ch); goto DoubleQuote2; } -#line 1685 "" +#line 1386 "" yy177: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy178; -yy178: switch(yych){ - case '\n': case ' ': goto yy177; - case '\r': goto yy179; - default: goto yy157; - } +yy178: if(yybm[0+yych] & 128) goto yy177; + if(yych != '\r') goto yy157; + goto yy179; yy179: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy167; - } + if(yych == '\n') goto yy177; + goto yy167; } -#line 719 "token.re" +#line 732 "token.re" } @@ -2034,22 +1732,66 @@ TransferMethod2: YYTOKTMP = YYCURSOR; -#line 1707 "" +#line 1404 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy180; yy181: ++YYCURSOR; yy180: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy182; - case '\n': goto yy183; - case '\r': goto yy186; - case ' ': goto yy185; - case '\\': goto yy188; - default: goto yy189; + if(yych <= '\r'){ + if(yych <= '\t'){ + if(yych >= '\001') goto yy189; + goto yy182; + } else { + if(yych <= '\n') goto yy183; + if(yych <= '\f') goto yy189; + goto yy186; + } + } else { + if(yych <= ' '){ + if(yych <= '\037') goto yy189; + goto yy185; + } else { + if(yych == '\\') goto yy188; + goto yy189; + } } yy182: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -2058,7 +1800,7 @@ yy182: YYCURSOR = YYMARKER; yy183: ++YYCURSOR; goto yy184; yy184: -#line 733 "token.re" +#line 746 "token.re" { SyckLevel *lvl; YYCURSOR = YYTOKTMP; if ( YYCURSOR == YYTOKEN + 1 ) @@ -2108,92 +1850,95 @@ yy184: return YAML_TRANSFER; } -#line 1781 "" +#line 1522 "" yy185: yych = *++YYCURSOR; goto yy198; yy186: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy196; - default: goto yy187; - } + if((yych = *YYCURSOR) == '\n') goto yy196; + goto yy187; yy187: -#line 800 "token.re" +#line 813 "token.re" { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto TransferMethod2; } -#line 1794 "" +#line 1533 "" yy188: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '"': case '0': case '\\': case 'a': - case 'b': case 'e': - case 'f': case 'n': case 'r': case 't': case 'v': goto yy191; - case 'x': goto yy190; - default: goto yy187; + if(yych <= 'f'){ + if(yych <= '['){ + if(yych <= '"'){ + if(yych <= '!') goto yy187; + goto yy191; + } else { + if(yych == '0') goto yy191; + goto yy187; + } + } else { + if(yych <= '`'){ + if(yych <= '\\') goto yy191; + goto yy187; + } else { + if(yych <= 'b') goto yy191; + if(yych <= 'd') goto yy187; + goto yy191; + } + } + } else { + if(yych <= 's'){ + if(yych <= 'n'){ + if(yych <= 'm') goto yy187; + goto yy191; + } else { + if(yych == 'r') goto yy191; + goto yy187; + } + } else { + if(yych <= 'v'){ + if(yych == 'u') goto yy187; + goto yy191; + } else { + if(yych == 'x') goto yy190; + goto yy187; + } + } } yy189: yych = *++YYCURSOR; goto yy187; yy190: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy193; - default: goto yy182; + if(yych <= '@'){ + if(yych <= '/') goto yy182; + if(yych <= '9') goto yy193; + goto yy182; + } else { + if(yych <= 'F') goto yy193; + if(yych <= '`') goto yy182; + if(yych <= 'f') goto yy193; + goto yy182; } yy191: ++YYCURSOR; goto yy192; yy192: -#line 786 "token.re" +#line 799 "token.re" { char ch = *( YYCURSOR - 1 ); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); goto TransferMethod2; } -#line 1838 "" +#line 1595 "" yy193: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy194; - default: goto yy182; + if(yych <= '@'){ + if(yych <= '/') goto yy182; + if(yych >= ':') goto yy182; + goto yy194; + } else { + if(yych <= 'F') goto yy194; + if(yych <= '`') goto yy182; + if(yych >= 'g') goto yy182; + goto yy194; } yy194: ++YYCURSOR; goto yy195; yy195: -#line 791 "token.re" +#line 804 "token.re" { long ch; char *chr_text = syck_strndup( YYTOKTMP, 4 ); chr_text[0] = '0'; @@ -2202,19 +1947,17 @@ yy195: QUOTECAT(qstr, qcapa, qidx, ch); goto TransferMethod2; } -#line 1875 "" +#line 1619 "" yy196: yych = *++YYCURSOR; goto yy184; yy197: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy198; -yy198: switch(yych){ - case ' ': goto yy197; - default: goto yy184; - } +yy198: if(yybm[0+yych] & 128) goto yy197; + goto yy184; } -#line 805 "token.re" +#line 818 "token.re" } @@ -2261,28 +2004,72 @@ ScalarBlock2: YYTOKEN = YYCURSOR; -#line 1890 "" +#line 1632 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy199; yy200: ++YYCURSOR; yy199: if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy207; - case '\n': goto yy201; - case '\r': goto yy203; - case '#': goto yy205; - case '-': goto yy209; - default: goto yy210; + if(yych <= '\r'){ + if(yych <= '\t'){ + if(yych <= '\000') goto yy207; + goto yy210; + } else { + if(yych <= '\n') goto yy201; + if(yych <= '\f') goto yy210; + goto yy203; + } + } else { + if(yych <= '#'){ + if(yych <= '"') goto yy210; + goto yy205; + } else { + if(yych == '-') goto yy209; + goto yy210; + } } yy201: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy220; yy202: -#line 852 "token.re" +#line 865 "token.re" { char *pacer; char *tok = YYTOKEN; int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0; @@ -2315,8 +2102,12 @@ yy202: pacer = YYTOKEN; while ( pacer < YYCURSOR ) { - if ( is_newline( pacer++ ) ) + int nl_len = 0; + if ( nl_len = newline_len( pacer++ ) ) + { nl_count++; + pacer += nl_len - 1; + } } if ( fold_nl == 1 || nl_begin == 1 ) @@ -2348,22 +2139,20 @@ yy202: } goto ScalarBlock2; } -#line 1977 "" +#line 1767 "" yy203: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy219; - default: goto yy204; - } + if((yych = *YYCURSOR) == '\n') goto yy219; + goto yy204; yy204: -#line 957 "token.re" +#line 974 "token.re" { QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); goto ScalarBlock2; } -#line 1988 "" +#line 1776 "" yy205: ++YYCURSOR; goto yy206; yy206: -#line 919 "token.re" +#line 936 "token.re" { lvl = CURRENT_LEVEL(); if ( lvl->status != syck_lvl_block ) { @@ -2376,45 +2165,39 @@ yy206: } goto ScalarBlock2; } -#line 2005 "" +#line 1793 "" yy207: ++YYCURSOR; goto yy208; yy208: -#line 933 "token.re" +#line 950 "token.re" { YYCURSOR--; POP_LEVEL(); RETURN_YAML_BLOCK(); } -#line 2014 "" +#line 1802 "" yy209: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '-': goto yy211; - default: goto yy204; - } + if(yych == '-') goto yy211; + goto yy204; yy210: yych = *++YYCURSOR; goto yy204; yy211: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy213; - default: goto yy212; - } + if(yych == '-') goto yy213; + goto yy212; yy212: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy202; case 1: goto yy204; } yy213: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy214; - case '\r': goto yy218; - case ' ': goto yy216; - default: goto yy212; - } + if(yybm[0+yych] & 64) goto yy216; + if(yych == '\n') goto yy214; + if(yych == '\r') goto yy218; + goto yy212; yy214: ++YYCURSOR; goto yy215; yy215: -#line 938 "token.re" +#line 955 "token.re" { if ( YYTOKEN == YYLINEPTR ) { if ( blockType == BLOCK_FOLD && qidx > 0 ) @@ -2433,39 +2216,31 @@ yy215: goto ScalarBlock2; } } -#line 2062 "" +#line 1844 "" yy216: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy217; -yy217: switch(yych){ - case ' ': goto yy216; - default: goto yy215; - } +yy217: if(yybm[0+yych] & 64) goto yy216; + goto yy215; yy218: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy214; - default: goto yy212; - } + if(yych == '\n') goto yy214; + goto yy212; yy219: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy220; -yy220: switch(yych){ - case '\n': case ' ': goto yy219; - case '\r': goto yy221; - default: goto yy202; - } +yy220: if(yybm[0+yych] & 128) goto yy219; + if(yych != '\r') goto yy202; + goto yy221; yy221: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy219; - default: goto yy212; - } + if(yych == '\n') goto yy219; + goto yy212; } -#line 962 "token.re" +#line 979 "token.re" } @@ -2481,42 +2256,77 @@ Comment: YYTOKEN = YYCURSOR; -#line 2098 "" +#line 1872 "" { YYCTYPE yych; unsigned int yyaccept; + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; goto yy222; yy223: ++YYCURSOR; yy222: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy224; - case '\n': goto yy226; - case '\r': goto yy227; - default: goto yy229; + if(yych <= '\n'){ + if(yych <= '\000') goto yy224; + if(yych <= '\t') goto yy229; + goto yy226; + } else { + if(yych == '\r') goto yy227; + goto yy229; } yy224: ++YYCURSOR; goto yy225; yy225: -#line 978 "token.re" +#line 995 "token.re" { YYCURSOR = YYTOKEN; return; } -#line 2120 "" +#line 1930 "" yy226: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy231; yy227: ++YYCURSOR; - switch((yych = *YYCURSOR)) { - case '\n': goto yy230; - default: goto yy228; - } + if(yybm[0+(yych = *YYCURSOR)] & 128) yych = *YYCURSOR; + goto yy230; + goto yy228; yy228: -#line 982 "token.re" +#line 999 "token.re" { goto Comment; } -#line 2133 "" +#line 1941 "" yy229: yych = *++YYCURSOR; goto yy228; yy230: yyaccept = 0; @@ -2524,24 +2334,20 @@ yy230: yyaccept = 0; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy231; -yy231: switch(yych){ - case '\n': goto yy230; - case '\r': goto yy232; - default: goto yy225; - } +yy231: if(yybm[0+yych] & 128) goto yy230; + if(yych != '\r') goto yy225; + goto yy232; yy232: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy230; - default: goto yy233; - } + if(yybm[0+yych] & 128) goto yy230; + goto yy233; yy233: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy225; } } -#line 985 "token.re" +#line 1002 "token.re" } @@ -2568,12 +2374,18 @@ escape_seq( char ch ) int is_newline( char *ptr ) +{ + return newline_len( ptr ); +} + +int +newline_len( char *ptr ) { if ( *ptr == '\n' ) return 1; if ( *ptr == '\r' && *( ptr + 1 ) == '\n' ) - return 1; + return 2; return 0; } -- cgit v1.2.3