diff options
author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-30 20:38:41 +0000 |
---|---|---|
committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-30 20:38:41 +0000 |
commit | a2523332ce58ab4af4f531306ebbdf10bacaa892 (patch) | |
tree | fe2f47fc4a44f80f7c57f2d52455cfdcc2be9ce8 /ext/syck | |
parent | eb851961c794995cc75024ab7366f866c31fdf7c (diff) |
* lib/yaml.rb (YAML::load_file, YAML::parse_file): added.
* 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.
* ext/syck/token.c: re2c compiled with bit vectors now.
* ext/syck/implicit.c: ditto.
* ext/syck/bytecode.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck')
-rw-r--r-- | ext/syck/bytecode.c | 252 | ||||
-rw-r--r-- | ext/syck/implicit.c | 238 | ||||
-rw-r--r-- | ext/syck/token.c | 2335 |
3 files changed, 1454 insertions, 1371 deletions
diff --git a/ext/syck/bytecode.c b/ext/syck/bytecode.c index 322d17dc0e..9a82f1bb8f 100644 --- a/ext/syck/bytecode.c +++ b/ext/syck/bytecode.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Mon Jan 12 11:40:10 2004 */ +/* Generated by re2c 0.9.3 on Fri Jun 18 18:55:09 2004 */ #line 1 "bytecode.re" /* * bytecode.re @@ -149,7 +149,7 @@ sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser ) return t; } -#line 173 +#line 173 "bytecode.re" lvl = CURRENT_LEVEL(); @@ -162,6 +162,8 @@ Header: YYTOKEN = YYCURSOR; + +#line 7 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -187,16 +189,18 @@ yy3: yyaccept = 0; default: goto yy4; } yy4: -#line 200 - { YYPOS(0); +#line 200 "bytecode.re" +{ YYPOS(0); goto Document; } +#line 37 "<stdout>" yy5: yych = *++YYCURSOR; goto yy4; -yy6: yych = *++YYCURSOR; +yy6: ++YYCURSOR; + goto yy7; yy7: -#line 187 - { if ( lvl->status == syck_lvl_header ) +#line 187 "bytecode.re" +{ if ( lvl->status == syck_lvl_header ) { CHK_NL(YYCURSOR); goto Directive; @@ -208,13 +212,14 @@ yy7: return 0; } } -yy8: yych = *++YYCURSOR; - switch(yych){ +#line 56 "<stdout>" +yy8: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy6; default: goto yy2; } } -#line 204 +#line 204 "bytecode.re" Document: @@ -227,6 +232,8 @@ Document: YYTOKEN = YYCURSOR; + +#line 65 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -281,34 +288,41 @@ yy16: yych = *++YYCURSOR; case '\r': goto yy34; default: goto yy11; } -yy17: yych = *++YYCURSOR; +yy17: ++YYCURSOR; + goto yy18; yy18: -#line 289 - { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); +#line 289 "bytecode.re" +{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); goto Scalar; } -yy19: yych = *++YYCURSOR; +#line 127 "<stdout>" +yy19: ++YYCURSOR; + goto yy20; yy20: -#line 293 - { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); +#line 293 "bytecode.re" +{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); sycklval->name = get_inline( parser ); syck_hdlr_remove_anchor( parser, sycklval->name ); CHK_NL(YYCURSOR); return YAML_ANCHOR; } -yy21: yych = *++YYCURSOR; +#line 138 "<stdout>" +yy21: ++YYCURSOR; + goto yy22; yy22: -#line 300 - { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); +#line 300 "bytecode.re" +{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); sycklval->name = get_inline( parser ); POP_LEVEL(); if ( *( YYCURSOR - 1 ) == '\n' ) YYCURSOR--; return YAML_ALIAS; } -yy23: yych = *++YYCURSOR; +#line 149 "<stdout>" +yy23: ++YYCURSOR; + goto yy24; yy24: -#line 307 - { char *qstr; +#line 307 "bytecode.re" +{ char *qstr; ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); qstr = get_inline( parser ); CHK_NL(YYCURSOR); @@ -367,14 +381,18 @@ yy24: sycklval->name = qstr; return YAML_TAGURI; } -yy25: yych = *++YYCURSOR; +#line 213 "<stdout>" +yy25: ++YYCURSOR; + goto yy26; yy26: -#line 367 - { goto Comment; } -yy27: yych = *++YYCURSOR; +#line 367 "bytecode.re" +{ goto Comment; } +#line 219 "<stdout>" +yy27: ++YYCURSOR; + goto yy28; yy28: -#line 369 - { CHK_NL(YYCURSOR); +#line 369 "bytecode.re" +{ CHK_NL(YYCURSOR); if ( lvl->status == syck_lvl_seq ) { return YAML_INDENT; @@ -386,22 +404,26 @@ yy28: } goto Document; } +#line 236 "<stdout>" yy29: yych = *++YYCURSOR; switch(yych){ case '\n': goto yy27; default: goto yy11; } -yy30: yych = *++YYCURSOR; +yy30: ++YYCURSOR; + goto yy31; yy31: -#line 382 - { ENSURE_YAML_IEND(lvl, -1); +#line 382 "bytecode.re" +{ ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } -yy32: yych = *++YYCURSOR; +#line 250 "<stdout>" +yy32: ++YYCURSOR; + goto yy33; yy33: -#line 253 - { if ( lvl->status == syck_lvl_seq && lvl->ncount == 0 ) +#line 253 "bytecode.re" +{ if ( lvl->status == syck_lvl_seq && lvl->ncount == 0 ) { lvl->ncount++; YYPOS(0); @@ -436,15 +458,17 @@ yy33: CHK_NL(YYCURSOR); return YAML_IEND; } +#line 290 "<stdout>" yy34: yych = *++YYCURSOR; switch(yych){ case '\n': goto yy32; default: goto yy11; } -yy35: yych = *++YYCURSOR; +yy35: ++YYCURSOR; + goto yy36; yy36: -#line 238 - { int complex = 0; +#line 238 "bytecode.re" +{ int complex = 0; if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) ) { complex = 1; @@ -458,15 +482,17 @@ yy36: } return YAML_IOPEN; } +#line 314 "<stdout>" yy37: yych = *++YYCURSOR; switch(yych){ case '\n': goto yy35; default: goto yy11; } -yy38: yych = *++YYCURSOR; +yy38: ++YYCURSOR; + goto yy39; yy39: -#line 223 - { int complex = 0; +#line 223 "bytecode.re" +{ int complex = 0; if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) ) { complex = 1; @@ -480,30 +506,33 @@ yy39: } return YAML_IOPEN; } +#line 338 "<stdout>" yy40: yych = *++YYCURSOR; switch(yych){ case '\n': goto yy38; default: goto yy11; } -yy41: yych = *++YYCURSOR; +yy41: ++YYCURSOR; + goto yy42; yy42: -#line 218 - { ENSURE_YAML_IEND(lvl, -1); +#line 218 "bytecode.re" +{ ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } +#line 352 "<stdout>" yy43: yych = *++YYCURSOR; switch(yych){ case '\n': goto yy41; default: goto yy11; } -yy44: yych = *++YYCURSOR; - switch(yych){ +yy44: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy41; default: goto yy11; } } -#line 387 +#line 387 "bytecode.re" } @@ -512,6 +541,8 @@ Directive: { YYTOKEN = YYCURSOR; + +#line 366 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -610,15 +641,17 @@ yy48: yyaccept = 0; default: goto yy49; } yy49: -#line 400 - { YYCURSOR = YYTOKEN; +#line 400 "bytecode.re" +{ YYCURSOR = YYTOKEN; return YAML_DOCSEP; } +#line 469 "<stdout>" yy50: yych = *++YYCURSOR; goto yy49; yy51: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy52; yy52: switch(yych){ case '.': case '/': @@ -778,6 +811,7 @@ yy53: yych = *++YYCURSOR; yy54: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy55; yy55: switch(yych){ case '\n': goto yy56; case '\r': goto yy58; @@ -858,18 +892,20 @@ yy55: switch(yych){ case 'z': goto yy54; default: goto yy47; } -yy56: yych = *++YYCURSOR; +yy56: ++YYCURSOR; + goto yy57; yy57: -#line 397 - { CHK_NL(YYCURSOR); +#line 397 "bytecode.re" +{ CHK_NL(YYCURSOR); goto Directive; } -yy58: yych = *++YYCURSOR; - switch(yych){ +#line 724 "<stdout>" +yy58: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy56; default: goto yy47; } } -#line 403 +#line 403 "bytecode.re" } @@ -878,6 +914,8 @@ Comment: { YYTOKEN = YYCURSOR; + +#line 733 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -892,25 +930,29 @@ yy59: case '\r': goto yy64; default: goto yy66; } -yy61:yy62: yych = *++YYCURSOR; +yy61:yy62: ++YYCURSOR; + goto yy63; yy63: -#line 413 - { CHK_NL(YYCURSOR); +#line 413 "bytecode.re" +{ CHK_NL(YYCURSOR); goto Document; } -yy64: yych = *++YYCURSOR; - switch(yych){ +#line 754 "<stdout>" +yy64: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy67; default: goto yy65; } yy65: -#line 416 - { goto Comment; } +#line 416 "bytecode.re" +{ goto Comment; } +#line 763 "<stdout>" yy66: yych = *++YYCURSOR; goto yy65; -yy67: yych = *++YYCURSOR; +yy67: ++YYCURSOR; + yych = *YYCURSOR; goto yy63; } -#line 418 +#line 418 "bytecode.re" } @@ -927,6 +969,8 @@ Scalar: Scalar2: tok = YYCURSOR; + +#line 771 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -941,34 +985,38 @@ yy68: case '\r': goto yy72; default: goto yy76; } -yy70: yych = *++YYCURSOR; - switch(yych){ +yy70: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case 'C': goto yy78; case 'N': goto yy80; case 'Z': goto yy83; default: goto yy71; } yy71: -#line 462 - { YYCURSOR = tok; +#line 462 "bytecode.re" +{ YYCURSOR = tok; goto ScalarEnd; } -yy72: yych = *++YYCURSOR; - switch(yych){ +#line 798 "<stdout>" +yy72: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy77; default: goto yy73; } yy73: -#line 470 - { CAT(str, cap, idx, tok[0]); +#line 470 "bytecode.re" +{ CAT(str, cap, idx, tok[0]); goto Scalar2; } -yy74: yych = *++YYCURSOR; +#line 809 "<stdout>" +yy74: ++YYCURSOR; + goto yy75; yy75: -#line 466 - { YYCURSOR = tok; +#line 466 "bytecode.re" +{ YYCURSOR = tok; goto ScalarEnd; } +#line 817 "<stdout>" yy76: yych = *++YYCURSOR; goto yy73; yy77: yych = *++YYCURSOR; @@ -978,14 +1026,17 @@ yy77: yych = *++YYCURSOR; case 'Z': goto yy83; default: goto yy71; } -yy78: yych = *++YYCURSOR; +yy78: ++YYCURSOR; + goto yy79; yy79: -#line 436 - { CHK_NL(tok+1); +#line 436 "bytecode.re" +{ CHK_NL(tok+1); goto Scalar2; } +#line 833 "<stdout>" yy80: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy81; yy81: switch(yych){ case '0': case '1': @@ -1000,8 +1051,8 @@ yy81: switch(yych){ default: goto yy82; } yy82: -#line 439 - { CHK_NL(tok+1); +#line 439 "bytecode.re" +{ CHK_NL(tok+1); if ( tok + 2 < YYCURSOR ) { char *count = tok + 2; @@ -1018,15 +1069,18 @@ yy82: } goto Scalar2; } -yy83: yych = *++YYCURSOR; +#line 871 "<stdout>" +yy83: ++YYCURSOR; + goto yy84; yy84: -#line 457 - { CHK_NL(tok+1); +#line 457 "bytecode.re" +{ CHK_NL(tok+1); CAT(str, cap, idx, '\0'); goto Scalar2; } +#line 880 "<stdout>" } -#line 474 +#line 474 "bytecode.re" ScalarEnd: @@ -1060,6 +1114,8 @@ Inline: { tok = YYCURSOR; + +#line 884 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -1074,33 +1130,39 @@ yy85: case '\r': goto yy89; default: goto yy93; } -yy87: yych = *++YYCURSOR; +yy87: ++YYCURSOR; + goto yy88; yy88: -#line 509 - { CHK_NL(YYCURSOR); +#line 509 "bytecode.re" +{ CHK_NL(YYCURSOR); return str; } -yy89: yych = *++YYCURSOR; - switch(yych){ +#line 905 "<stdout>" +yy89: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case '\n': goto yy94; default: goto yy90; } yy90: -#line 516 - { CAT(str, cap, idx, tok[0]); +#line 516 "bytecode.re" +{ CAT(str, cap, idx, tok[0]); goto Inline; } -yy91: yych = *++YYCURSOR; +#line 916 "<stdout>" +yy91: ++YYCURSOR; + goto yy92; yy92: -#line 512 - { YYCURSOR = tok; +#line 512 "bytecode.re" +{ YYCURSOR = tok; return str; } +#line 924 "<stdout>" yy93: yych = *++YYCURSOR; goto yy90; -yy94: yych = *++YYCURSOR; +yy94: ++YYCURSOR; + yych = *YYCURSOR; goto yy88; } -#line 520 +#line 520 "bytecode.re" } diff --git a/ext/syck/implicit.c b/ext/syck/implicit.c index dee5cce636..c70b9e2205 100644 --- a/ext/syck/implicit.c +++ b/ext/syck/implicit.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Mon Jan 12 00:56:58 2004 */ +/* Generated by re2c 0.9.3 on Fri Jun 18 18:55:09 2004 */ #line 1 "implicit.re" /* * implicit.re @@ -50,6 +50,8 @@ char *syck_match_implicit( char *str, size_t len ) cursor = str; limit = str + len; + +#line 6 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -88,11 +90,13 @@ yy0: case '~': goto yy2; default: goto yy23; } -yy2: yych = *++YYCURSOR; - if(yych <= '\000') goto yy6; +yy2: ++YYCURSOR; + if((yych = *YYCURSOR) <= '\000') goto yy6; + goto yy3; yy3: -#line 119 - { return "str"; } +#line 119 "implicit.re" +{ return "str"; } +#line 51 "<stdout>" yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ @@ -108,10 +112,12 @@ yy5: yyaccept = 0; case 'u': goto yy192; default: goto yy3; } -yy6: yych = *++YYCURSOR; +yy6: ++YYCURSOR; + goto yy7; yy7: -#line 83 - { return "null"; } +#line 83 "implicit.re" +{ return "null"; } +#line 72 "<stdout>" yy8: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ @@ -259,18 +265,23 @@ yy23: yych = *++YYCURSOR; goto yy3; yy24: yych = *++YYCURSOR; if(yych <= '\000') goto yy26; + goto yy25; yy25: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy3; } -yy26: yych = *++YYCURSOR; +yy26: ++YYCURSOR; + goto yy27; yy27: -#line 117 - { return "merge"; } -yy28: yych = *++YYCURSOR; +#line 117 "implicit.re" +{ return "merge"; } +#line 230 "<stdout>" +yy28: ++YYCURSOR; + goto yy29; yy29: -#line 115 - { return "default"; } +#line 115 "implicit.re" +{ return "default"; } +#line 236 "<stdout>" yy30: yych = *++YYCURSOR; switch(yych){ case 'a': goto yy45; @@ -305,10 +316,13 @@ yy35: yych = *++YYCURSOR; } yy36: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy37: yych = *++YYCURSOR; + goto yy37; +yy37: ++YYCURSOR; + goto yy38; yy38: -#line 101 - { return "float#inf"; } +#line 101 "implicit.re" +{ return "float#inf"; } +#line 277 "<stdout>" yy39: yych = *++YYCURSOR; switch(yych){ case 'f': goto yy36; @@ -326,10 +340,13 @@ yy41: yych = *++YYCURSOR; } yy42: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy43: yych = *++YYCURSOR; + goto yy43; +yy43: ++YYCURSOR; + goto yy44; yy44: -#line 105 - { return "float#nan"; } +#line 105 "implicit.re" +{ return "float#nan"; } +#line 301 "<stdout>" yy45: yych = *++YYCURSOR; switch(yych){ case 'n': goto yy42; @@ -352,6 +369,7 @@ yy46: yych = *++YYCURSOR; yy47: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy48; yy48: switch(yych){ case '\000': goto yy51; case ',': case '0': @@ -371,6 +389,7 @@ yy48: switch(yych){ yy49: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy50; yy50: switch(yych){ case '\000': goto yy60; case ',': goto yy58; @@ -388,10 +407,12 @@ yy50: switch(yych){ case 'E': case 'e': goto yy64; default: goto yy25; } -yy51: yych = *++YYCURSOR; +yy51: ++YYCURSOR; + goto yy52; yy52: -#line 95 - { return "int"; } +#line 95 "implicit.re" +{ return "int"; } +#line 369 "<stdout>" yy53: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; @@ -434,13 +455,16 @@ yy55: ++YYCURSOR; case ':': goto yy53; default: goto yy25; } -yy56: yych = *++YYCURSOR; +yy56: ++YYCURSOR; + goto yy57; yy57: -#line 93 - { return "int#base60"; } +#line 93 "implicit.re" +{ return "int#base60"; } +#line 420 "<stdout>" yy58: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy59; yy59: switch(yych){ case '\000': goto yy60; case ',': case '0': @@ -455,13 +479,16 @@ yy59: switch(yych){ case '9': goto yy58; default: goto yy25; } -yy60: yych = *++YYCURSOR; +yy60: ++YYCURSOR; + goto yy61; yy61: -#line 97 - { return "float#fix"; } +#line 97 "implicit.re" +{ return "float#fix"; } +#line 445 "<stdout>" yy62: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy63; yy63: switch(yych){ case '.': case '0': case '1': @@ -487,6 +514,7 @@ yy65: yych = *++YYCURSOR; yy66: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy67; yy67: switch(yych){ case '\000': goto yy68; case '0': @@ -501,10 +529,12 @@ yy67: switch(yych){ case '9': goto yy66; default: goto yy25; } -yy68: yych = *++YYCURSOR; +yy68: ++YYCURSOR; + goto yy69; yy69: -#line 99 - { return "float#exp"; } +#line 99 "implicit.re" +{ return "float#exp"; } +#line 497 "<stdout>" yy70: yych = *++YYCURSOR; switch(yych){ case '0': @@ -602,10 +632,12 @@ yy77: yych = *++YYCURSOR; case 't': goto yy81; default: goto yy83; } -yy78: yych = *++YYCURSOR; +yy78: ++YYCURSOR; + goto yy79; yy79: -#line 107 - { return "timestamp#ymd"; } +#line 107 "implicit.re" +{ return "timestamp#ymd"; } +#line 600 "<stdout>" yy80: yych = *++YYCURSOR; switch(yych){ case '0': @@ -637,6 +669,7 @@ yy81: yych = *++YYCURSOR; yy82: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy83; yy83: switch(yych){ case '\t': case ' ': goto yy82; case '0': @@ -740,6 +773,7 @@ yy91: yych = *++YYCURSOR; yy92: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy93; yy93: switch(yych){ case '\t': case ' ': goto yy94; case '0': @@ -757,6 +791,7 @@ yy93: switch(yych){ yy94: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy95; yy95: switch(yych){ case '\t': case ' ': goto yy94; case '+': case '-': goto yy97; @@ -814,10 +849,12 @@ yy100: yych = *++YYCURSOR; case '9': goto yy103; default: goto yy25; } -yy101: yych = *++YYCURSOR; +yy101: ++YYCURSOR; + goto yy102; yy102: -#line 111 - { return "timestamp#spaced"; } +#line 111 "implicit.re" +{ return "timestamp#spaced"; } +#line 820 "<stdout>" yy103: yych = *++YYCURSOR; switch(yych){ case '0': @@ -930,6 +967,7 @@ yy111: yych = *++YYCURSOR; yy112: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy113; yy113: switch(yych){ case '+': case '-': goto yy115; case '0': @@ -996,10 +1034,12 @@ yy118: yych = *++YYCURSOR; case '9': goto yy121; default: goto yy25; } -yy119: yych = *++YYCURSOR; +yy119: ++YYCURSOR; + goto yy120; yy120: -#line 109 - { return "timestamp#iso8601"; } +#line 109 "implicit.re" +{ return "timestamp#iso8601"; } +#line 1006 "<stdout>" yy121: yych = *++YYCURSOR; switch(yych){ case '0': @@ -1113,6 +1153,7 @@ yy129: yych = *++YYCURSOR; yy130: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; + goto yy131; yy131: switch(yych){ case '+': case '-': goto yy115; case '0': goto yy130; @@ -1130,11 +1171,13 @@ yy131: switch(yych){ } yy132: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; + goto yy133; yy133: yych = *++YYCURSOR; goto yy120; yy134: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; + goto yy135; yy135: switch(yych){ case '+': case '-': goto yy115; case '0': goto yy130; @@ -1181,6 +1224,7 @@ yy137: yych = *++YYCURSOR; yy138: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy139; yy139: switch(yych){ case '\000': goto yy145; case ',': case '0': @@ -1203,6 +1247,7 @@ yy140: yych = *++YYCURSOR; yy141: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy142; yy142: switch(yych){ case '\000': goto yy143; case ',': case '0': @@ -1227,17 +1272,22 @@ yy142: switch(yych){ case 'f': goto yy141; default: goto yy25; } -yy143: yych = *++YYCURSOR; +yy143: ++YYCURSOR; + goto yy144; yy144: -#line 89 - { return "int#hex"; } -yy145: yych = *++YYCURSOR; +#line 89 "implicit.re" +{ return "int#hex"; } +#line 1248 "<stdout>" +yy145: ++YYCURSOR; + goto yy146; yy146: -#line 91 - { return "int#oct"; } +#line 91 "implicit.re" +{ return "int#oct"; } +#line 1254 "<stdout>" yy147: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy148; yy148: switch(yych){ case ',': case '0': case '1': @@ -1326,10 +1376,13 @@ yy158: yych = *++YYCURSOR; } yy159: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy160: yych = *++YYCURSOR; + goto yy160; +yy160: ++YYCURSOR; + goto yy161; yy161: -#line 103 - { return "float#neginf"; } +#line 103 "implicit.re" +{ return "float#neginf"; } +#line 1354 "<stdout>" yy162: yych = *++YYCURSOR; switch(yych){ case 'f': goto yy159; @@ -1363,10 +1416,13 @@ yy167: yych = *++YYCURSOR; } yy168: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy169: yych = *++YYCURSOR; + goto yy169; +yy169: ++YYCURSOR; + goto yy170; yy170: -#line 87 - { return "bool#no"; } +#line 87 "implicit.re" +{ return "bool#no"; } +#line 1394 "<stdout>" yy171: yych = *++YYCURSOR; switch(yych){ case 'S': goto yy172; @@ -1404,10 +1460,13 @@ yy177: yych = *++YYCURSOR; } yy178: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy179: yych = *++YYCURSOR; + goto yy179; +yy179: ++YYCURSOR; + goto yy180; yy180: -#line 85 - { return "bool#yes"; } +#line 85 "implicit.re" +{ return "bool#yes"; } +#line 1438 "<stdout>" yy181: yych = *++YYCURSOR; switch(yych){ case 'f': goto yy168; @@ -1486,13 +1545,13 @@ yy196: yych = *++YYCURSOR; case 'l': goto yy197; default: goto yy25; } -yy197: yych = *++YYCURSOR; - switch(yych){ +yy197: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case 'l': goto yy194; default: goto yy25; } } -#line 121 +#line 121 "implicit.re" } @@ -1505,6 +1564,8 @@ syck_type_id_to_uri( char *type_id ) cursor = type_id; limit = type_id + strlen( type_id ); + +#line 1525 "<stdout>" { YYCTYPE yych; unsigned int yyaccept; @@ -1650,8 +1711,9 @@ yy201: yyaccept = 0; default: goto yy202; } yy202: -#line 173 - { return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); } +#line 173 "implicit.re" +{ return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); } +#line 1673 "<stdout>" yy203: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ @@ -1720,10 +1782,12 @@ yy203: yyaccept = 0; case '-': goto yy232; default: goto yy202; } -yy204: yych = *++YYCURSOR; +yy204: ++YYCURSOR; + goto yy205; yy205: -#line 147 - { return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); } +#line 147 "implicit.re" +{ return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); } +#line 1747 "<stdout>" yy206: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ @@ -1798,6 +1862,7 @@ yy207: yych = *++YYCURSOR; yy208: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy209; yy209: switch(yych){ case '-': goto yy208; case '0': @@ -1865,6 +1930,7 @@ yy209: switch(yych){ yy210: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy211; yy211: switch(yych){ case ',': goto yy212; case '-': goto yy208; @@ -2012,10 +2078,11 @@ yy213: ++YYCURSOR; case 'z': goto yy216; default: goto yy200; } -yy214: yych = *++YYCURSOR; +yy214: ++YYCURSOR; + goto yy215; yy215: -#line 149 - { char *domain = S_ALLOC_N( char, ( YYCURSOR - type_id ) + 15 ); +#line 149 "implicit.re" +{ char *domain = S_ALLOC_N( char, ( YYCURSOR - type_id ) + 15 ); char *uri; domain[0] = '\0'; @@ -2027,9 +2094,11 @@ yy215: S_FREE( domain ); return uri; } +#line 2057 "<stdout>" yy216: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; + goto yy217; yy217: switch(yych){ case ',': goto yy212; case '-': goto yy218; @@ -2100,6 +2169,7 @@ yy217: switch(yych){ yy218: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy219; yy219: switch(yych){ case '-': goto yy218; case '0': @@ -2226,10 +2296,11 @@ yy224: yych = *++YYCURSOR; case '9': goto yy227; default: goto yy200; } -yy225: yych = *++YYCURSOR; +yy225: ++YYCURSOR; + goto yy226; yy226: -#line 162 - { char *domain = S_ALLOC_N( char, YYCURSOR - type_id ); +#line 162 "implicit.re" +{ char *domain = S_ALLOC_N( char, YYCURSOR - type_id ); char *uri; domain[0] = '\0'; @@ -2239,6 +2310,7 @@ yy226: S_FREE( domain ); return uri; } +#line 2275 "<stdout>" yy227: yych = *++YYCURSOR; switch(yych){ case '0': @@ -2353,10 +2425,12 @@ yy239: yych = *++YYCURSOR; case ':': goto yy240; default: goto yy209; } -yy240: yych = *++YYCURSOR; +yy240: ++YYCURSOR; + goto yy241; yy241: -#line 145 - { return type_id; } +#line 145 "implicit.re" +{ return type_id; } +#line 2395 "<stdout>" yy242: yych = *++YYCURSOR; switch(yych){ case ',': goto yy212; @@ -2383,6 +2457,7 @@ yy244: yych = *++YYCURSOR; yy245: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy246; yy246: switch(yych){ case ',': goto yy249; case '-': goto yy247; @@ -2452,6 +2527,7 @@ yy246: switch(yych){ yy247: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy248; yy248: switch(yych){ case '-': goto yy247; case '0': @@ -2599,6 +2675,7 @@ yy250: ++YYCURSOR; yy251: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; + goto yy252; yy252: switch(yych){ case ',': goto yy249; case '-': goto yy253; @@ -2668,6 +2745,7 @@ yy252: switch(yych){ yy253: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; + goto yy254; yy254: switch(yych){ case '-': goto yy253; case '0': @@ -2794,10 +2872,12 @@ yy259: yych = *++YYCURSOR; case '9': goto yy262; default: goto yy200; } -yy260: yych = *++YYCURSOR; +yy260: ++YYCURSOR; + goto yy261; yy261: -#line 143 - { return type_id; } +#line 143 "implicit.re" +{ return type_id; } +#line 2847 "<stdout>" yy262: yych = *++YYCURSOR; switch(yych){ case '0': @@ -2846,13 +2926,13 @@ yy265: yych = *++YYCURSOR; case '9': goto yy266; default: goto yy200; } -yy266: yych = *++YYCURSOR; - switch(yych){ +yy266: ++YYCURSOR; + switch((yych = *YYCURSOR)) { case ':': goto yy260; default: goto yy200; } } -#line 175 +#line 175 "implicit.re" } diff --git a/ext/syck/token.c b/ext/syck/token.c index ff192f24e1..703f7fa0a1 100644 --- a/ext/syck/token.c +++ b/ext/syck/token.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Thu May 13 01:45:26 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 +#line 279 "token.re" if ( YYLINEPTR != YYCURSOR ) @@ -271,121 +272,167 @@ Header: YYTOKEN = YYCURSOR; + +#line 7 "<stdout>" { 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 - { YYPOS(0); +#line 338 "token.re" +{ YYPOS(0); goto Document; } +#line 80 "<stdout>" yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '.': goto yy21; - default: goto yy3; - } -yy5: yych = *++YYCURSOR; + if(yych == '.') goto yy21; + goto yy3; +yy5: ++YYCURSOR; + goto yy6; yy6: -#line 319 - { eat_comments( parser ); +#line 320 "token.re" +{ eat_comments( parser ); goto Header; } -yy7: yych = *++YYCURSOR; +#line 92 "<stdout>" +yy7: ++YYCURSOR; + goto yy8; yy8: -#line 323 - { SyckLevel *lvl = CURRENT_LEVEL(); +#line 324 "token.re" +{ SyckLevel *lvl = CURRENT_LEVEL(); ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } +#line 102 "<stdout>" yy9: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); goto yy18; yy10: -#line 329 - { GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); +#line 330 "token.re" +{ GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); goto Header; } +#line 111 "<stdout>" yy11: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy3; - } -yy12: yych = *++YYCURSOR; + if(yych == '\n') goto yy17; + goto yy3; +yy12: ++YYCURSOR; + yych = *YYCURSOR; goto yy16; yy13: -#line 333 - { doc_level = YYCURSOR - YYLINEPTR; +#line 334 "token.re" +{ doc_level = YYCURSOR - YYLINEPTR; goto Header; } +#line 122 "<stdout>" yy14: yych = *++YYCURSOR; goto yy3; yy15: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy16: switch(yych){ - case ' ': goto yy15; - default: goto yy13; - } + goto yy16; +yy16: if(yybm[0+yych] & 64) goto yy15; + goto yy13; yy17: yyaccept = 1; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy18: switch(yych){ - case '\n': case ' ': goto yy17; - case '\r': goto yy19; - default: goto yy10; - } + goto yy18; +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; - } -yy23: yych = *++YYCURSOR; + 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 - { SyckLevel *lvl = CURRENT_LEVEL(); +#line 306 "token.re" +{ SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { goto Header; @@ -398,34 +445,33 @@ yy24: } return 0; } +#line 180 "<stdout>" yy25: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy26: switch(yych){ - case ' ': goto yy25; - default: goto yy24; - } + goto yy26; +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; - } -yy30: yych = *++YYCURSOR; + 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 - { SyckLevel *lvl = CURRENT_LEVEL(); +#line 292 "token.re" +{ SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { YYPOS(3); @@ -438,20 +484,18 @@ yy31: return 0; } } +#line 220 "<stdout>" yy32: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy33: switch(yych){ - case ' ': goto yy32; - default: goto yy31; - } -yy34: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - default: goto yy20; - } + goto yy33; +yy33: if(yych == ' ') goto yy32; + goto yy31; +yy34: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy30; + goto yy20; } -#line 341 +#line 342 "token.re" Document: @@ -464,38 +508,106 @@ Document: YYTOKEN = YYCURSOR; + +#line 234 "<stdout>" { 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 - { /* Isolate spaces */ +#line 356 "token.re" +{ /* Isolate spaces */ int indt_len; GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); lvl = CURRENT_LEVEL(); @@ -516,419 +628,219 @@ yy38: } return YAML_INDENT; } -yy39: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy40; - } +#line 353 "<stdout>" +yy39: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy89; + goto yy40; yy40: -#line 447 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); +#line 448 "token.re" +{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto Plain; } -yy41: yych = *++YYCURSOR; +#line 362 "<stdout>" +yy41: ++YYCURSOR; + goto yy42; yy42: -#line 377 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); +#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]; } -yy43: yych = *++YYCURSOR; +#line 372 "<stdout>" +yy43: ++YYCURSOR; + goto yy44; yy44: -#line 383 - { POP_LEVEL(); +#line 384 "token.re" +{ POP_LEVEL(); return YYTOKEN[0]; } +#line 380 "<stdout>" 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; - } -yy49: yych = *++YYCURSOR; + if(yybm[0+yych] & 64) goto yy73; + goto yy40; +yy49: ++YYCURSOR; + goto yy50; yy50: -#line 421 - { goto TransferMethod; } -yy51: yych = *++YYCURSOR; +#line 422 "token.re" +{ goto TransferMethod; } +#line 430 "<stdout>" +yy51: ++YYCURSOR; + goto yy52; yy52: -#line 423 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); +#line 424 "token.re" +{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto SingleQuote; } -yy53: yych = *++YYCURSOR; +#line 437 "<stdout>" +yy53: ++YYCURSOR; + goto yy54; yy54: -#line 426 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); +#line 427 "token.re" +{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto DoubleQuote; } +#line 444 "<stdout>" 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; - } -yy56: yych = *++YYCURSOR; + 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 - { eat_comments( parser ); +#line 437 "token.re" +{ eat_comments( parser ); goto Document; } -yy58: yych = *++YYCURSOR; +#line 463 "<stdout>" +yy58: ++YYCURSOR; + yych = *YYCURSOR; goto yy64; yy59: -#line 440 - { goto Document; } -yy60: yych = *++YYCURSOR; +#line 441 "token.re" +{ goto Document; } +#line 469 "<stdout>" +yy60: ++YYCURSOR; + goto yy61; yy61: -#line 442 - { ENSURE_YAML_IEND(lvl, -1); +#line 443 "token.re" +{ ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; } +#line 478 "<stdout>" yy62: yych = *++YYCURSOR; goto yy40; yy63: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy64: switch(yych){ - case ' ': goto yy63; - default: goto yy59; - } + goto yy64; +yy64: if(yybm[0+yych] & 16) goto yy63; + goto yy59; yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; + goto yy66; +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){ case 0: goto yy38; case 1: goto yy40; } -yy68: yych = *++YYCURSOR; +yy68: ++YYCURSOR; + goto yy69; yy69: -#line 429 - { if ( is_newline( YYCURSOR - 1 ) ) +#line 430 "token.re" +{ if ( is_newline( YYCURSOR - 1 ) ) { YYCURSOR--; } goto ScalarBlock; } +#line 517 "<stdout>" yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy71: switch(yych){ - case ' ': goto yy70; - default: goto yy69; - } + goto yy71; +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; -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; - } + goto yy74; +yy74: if(yybm[0+yych] & 64) goto yy73; + goto yy75; yy75: -#line 416 - { ENSURE_YAML_IOPEN(lvl, doc_level, 1); +#line 417 "token.re" +{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); return YAML_ALIAS; } +#line 541 "<stdout>" yy76: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; + goto yy77; +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 - { sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); +#line 406 "token.re" +{ sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); /* * Remove previous anchors of the same name. Since the parser will likely @@ -938,10 +850,12 @@ yy78: syck_hdlr_remove_anchor(parser, sycklval->name); return YAML_ANCHOR; } -yy79: yych = *++YYCURSOR; +#line 579 "<stdout>" +yy79: ++YYCURSOR; + goto yy80; yy80: -#line 391 - { ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); +#line 392 "token.re" +{ ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); FORCE_NEXT_TOKEN(YAML_IOPEN); if ( is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) ) { @@ -954,54 +868,48 @@ yy80: } return YYTOKEN[0]; } +#line 597 "<stdout>" yy81: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy82: switch(yych){ - case ' ': goto yy81; - default: goto yy80; - } + goto yy82; +yy82: if(yych == ' ') goto yy81; + goto yy80; yy83: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy79; - default: goto yy67; - } -yy84: yych = *++YYCURSOR; + if(yych == '\n') goto yy79; + goto yy67; +yy84: ++YYCURSOR; + goto yy85; yy85: -#line 387 - { YYPOS(1); +#line 388 "token.re" +{ YYPOS(1); return YYTOKEN[0]; } +#line 615 "<stdout>" yy86: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy87: switch(yych){ - case ' ': goto yy86; - default: goto yy85; - } + goto yy87; +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; -yy90: switch(yych){ - case '\n': case ' ': goto yy89; - case '\r': goto yy91; - default: goto yy38; - } + goto yy90; +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 +#line 452 "token.re" } @@ -1009,19 +917,57 @@ Directive: { YYTOKTMP = YYCURSOR; + +#line 643 "<stdout>" { 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){ @@ -1029,348 +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 - { YYCURSOR = YYTOKTMP; +#line 465 "token.re" +{ YYCURSOR = YYTOKTMP; return YAML_DOCSEP; } -yy97: yych = *++YYCURSOR; +#line 709 "<stdout>" +yy97: ++YYCURSOR; + yych = *YYCURSOR; goto yy101; yy98: -#line 462 - { goto Directive; } +#line 463 "token.re" +{ goto Directive; } +#line 715 "<stdout>" yy99: yych = *++YYCURSOR; goto yy96; yy100: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy101: switch(yych){ - case ' ': goto yy100; - default: goto yy98; - } + goto yy101; +yy101: if(yybm[0+yych] & 32) goto yy100; + goto yy98; yy102: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; - } + goto yy103; +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; -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; - } + goto yy106; +yy106: if(yybm[0+yych] & 128) goto yy105; + goto yy107; yy107: -#line 460 - { goto Directive; } +#line 461 "token.re" +{ goto Directive; } +#line 746 "<stdout>" } -#line 467 +#line 468 "token.re" } @@ -1392,30 +1043,77 @@ Plain2: Plain3: + +#line 750 "<stdout>" { 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 - { int indt_len, nl_count = 0; +#line 491 "token.re" +{ int indt_len, nl_count = 0; SyckLevel *lvl; char *tok = YYTOKEN; GOBBLE_UP_YAML_INDENT( indt_len, tok ); @@ -1428,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 ) { @@ -1446,28 +1148,31 @@ yy111: goto Plain2; } -yy112: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy113; - } +#line 854 "<stdout>" +yy112: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy135; + goto yy113; yy113: -#line 544 - { QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); +#line 549 "token.re" +{ QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); goto Plain2; } +#line 863 "<stdout>" yy114: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy130; - case '\r': goto yy134; - case ' ': goto yy132; - default: goto yy113; - } -yy115: yych = *++YYCURSOR; + 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 - { if ( plvl->status != syck_lvl_inline ) +#line 529 "token.re" +{ if ( plvl->status != syck_lvl_inline ) { if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) { @@ -1478,87 +1183,82 @@ yy116: } RETURN_IMPLICIT(); } +#line 889 "<stdout>" yy117: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy125; - case '\r': goto yy128; - case ' ': goto yy126; - default: goto yy113; - } -yy118: yych = *++YYCURSOR; - switch(yych){ - case '#': goto yy123; - default: goto yy119; - } + if(yybm[0+yych] & 64) goto yy126; + if(yych == '\n') goto yy125; + if(yych == '\r') goto yy128; + goto yy113; +yy118: ++YYCURSOR; + if((yych = *YYCURSOR) == '#') goto yy123; + goto yy119; yy119: -#line 542 - { goto Plain3; } -yy120: yych = *++YYCURSOR; +#line 547 "token.re" +{ goto Plain3; } +#line 902 "<stdout>" +yy120: ++YYCURSOR; + goto yy121; yy121: -#line 540 - { RETURN_IMPLICIT(); } +#line 545 "token.re" +{ RETURN_IMPLICIT(); } +#line 908 "<stdout>" yy122: yych = *++YYCURSOR; goto yy113; -yy123: yych = *++YYCURSOR; +yy123: ++YYCURSOR; + goto yy124; yy124: -#line 536 - { eat_comments( parser ); +#line 541 "token.re" +{ eat_comments( parser ); RETURN_IMPLICIT(); } +#line 918 "<stdout>" yy125: yych = *++YYCURSOR; goto yy116; yy126: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy127: switch(yych){ - case ' ': goto yy126; - default: goto yy116; - } + goto yy127; +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; case 1: goto yy113; } -yy130: yych = *++YYCURSOR; +yy130: ++YYCURSOR; + goto yy131; yy131: -#line 522 - { RETURN_IMPLICIT(); } +#line 527 "token.re" +{ RETURN_IMPLICIT(); } +#line 941 "<stdout>" yy132: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy133: switch(yych){ - case ' ': goto yy132; - default: goto yy131; - } + goto yy133; +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; -yy136: switch(yych){ - case '\n': case ' ': goto yy135; - case '\r': goto yy137; - default: goto yy111; - } + goto yy136; +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 +#line 553 "token.re" } @@ -1571,27 +1271,65 @@ SingleQuote: SingleQuote2: YYTOKEN = YYCURSOR; + +#line 969 "<stdout>" { 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 - { int indt_len; +#line 567 "token.re" +{ int indt_len; int nl_count = 0; SyckLevel *lvl; GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); @@ -1608,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 ) { @@ -1626,24 +1368,22 @@ yy141: goto SingleQuote2; } -yy142: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy143; - } +#line 1065 "<stdout>" +yy142: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy150; + goto yy143; yy143: -#line 618 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); +#line 627 "token.re" +{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto SingleQuote2; } -yy144: yych = *++YYCURSOR; - switch(yych){ - case '\'': goto yy148; - default: goto yy145; - } +#line 1074 "<stdout>" +yy144: ++YYCURSOR; + if((yych = *YYCURSOR) == '\'') goto yy148; + goto yy145; yy145: -#line 602 - { SyckLevel *lvl; +#line 611 "token.re" +{ SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1658,38 +1398,38 @@ yy145: sycklval->nodeData = n; return YAML_PLAIN; } +#line 1095 "<stdout>" yy146: yych = *++YYCURSOR; goto yy145; yy147: yych = *++YYCURSOR; goto yy143; -yy148: yych = *++YYCURSOR; +yy148: ++YYCURSOR; + goto yy149; yy149: -#line 598 - { QUOTECAT(qstr, qcapa, qidx, '\''); +#line 607 "token.re" +{ QUOTECAT(qstr, qcapa, qidx, '\''); goto SingleQuote2; } +#line 1107 "<stdout>" yy150: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy151: switch(yych){ - case '\n': case ' ': goto yy150; - case '\r': goto yy152; - default: goto yy141; - } + goto yy151; +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 +#line 631 "token.re" } @@ -1706,28 +1446,74 @@ DoubleQuote2: YYTOKEN = YYCURSOR; + +#line 1129 "<stdout>" { 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 - { int indt_len; +#line 649 "token.re" +{ int indt_len; int nl_count = 0; SyckLevel *lvl; GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); @@ -1746,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 ) { @@ -1766,32 +1556,66 @@ yy157: keep_nl = 1; goto DoubleQuote2; } -yy158: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy159; - } +#line 1238 "<stdout>" +yy158: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy177; + goto yy159; yy159: -#line 715 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); +#line 728 "token.re" +{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto DoubleQuote2; } +#line 1247 "<stdout>" 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; - } -yy161: yych = *++YYCURSOR; + 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 - { SyckLevel *lvl; +#line 712 "token.re" +{ SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1806,6 +1630,7 @@ yy162: sycklval->nodeData = n; return YAML_PLAIN; } +#line 1312 "<stdout>" yy163: yych = *++YYCURSOR; goto yy162; yy164: yych = *++YYCURSOR; @@ -1813,88 +1638,64 @@ yy164: yych = *++YYCURSOR; yy165: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy166: switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - default: goto yy167; - } + goto yy166; +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; case 1: goto yy159; } -yy168: yych = *++YYCURSOR; +yy168: ++YYCURSOR; + goto yy169; yy169: -#line 694 - { keep_nl = 0; +#line 707 "token.re" +{ keep_nl = 0; YYCURSOR--; goto DoubleQuote2; } +#line 1339 "<stdout>" 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; - } -yy172: yych = *++YYCURSOR; + 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 - { char ch = *( YYCURSOR - 1 ); +#line 693 "token.re" +{ char ch = *( YYCURSOR - 1 ); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); goto DoubleQuote2; } +#line 1362 "<stdout>" 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; - } -yy175: yych = *++YYCURSOR; + 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 - { long ch; +#line 698 "token.re" +{ long ch; char *chr_text = syck_strndup( YYTOKEN, 4 ); chr_text[0] = '0'; ch = strtol( chr_text, NULL, 16 ); @@ -1902,24 +1703,22 @@ yy176: QUOTECAT(qstr, qcapa, qidx, ch); goto DoubleQuote2; } +#line 1386 "<stdout>" yy177: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy178: switch(yych){ - case '\n': case ' ': goto yy177; - case '\r': goto yy179; - default: goto yy157; - } + goto yy178; +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 +#line 732 "token.re" } @@ -1932,30 +1731,77 @@ TransferMethod: TransferMethod2: YYTOKTMP = YYCURSOR; + +#line 1404 "<stdout>" { 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){ case 0: goto yy187; } -yy183: yych = *++YYCURSOR; +yy183: ++YYCURSOR; + goto yy184; yy184: -#line 733 - { SyckLevel *lvl; +#line 746 "token.re" +{ SyckLevel *lvl; YYCURSOR = YYTOKTMP; if ( YYCURSOR == YYTOKEN + 1 ) { @@ -2004,88 +1850,96 @@ yy184: return YAML_TRANSFER; } +#line 1522 "<stdout>" yy185: yych = *++YYCURSOR; goto yy198; -yy186: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy196; - default: goto yy187; - } +yy186: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy196; + goto yy187; yy187: -#line 800 - { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); +#line 813 "token.re" +{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto TransferMethod2; } +#line 1533 "<stdout>" 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; - } -yy191: yych = *++YYCURSOR; + 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 - { char ch = *( YYCURSOR - 1 ); +#line 799 "token.re" +{ char ch = *( YYCURSOR - 1 ); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); goto TransferMethod2; } +#line 1595 "<stdout>" 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; - } -yy194: yych = *++YYCURSOR; + 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 - { long ch; +#line 804 "token.re" +{ long ch; char *chr_text = syck_strndup( YYTOKTMP, 4 ); chr_text[0] = '0'; ch = strtol( chr_text, NULL, 16 ); @@ -2093,17 +1947,17 @@ yy195: QUOTECAT(qstr, qcapa, qidx, ch); goto TransferMethod2; } +#line 1619 "<stdout>" yy196: yych = *++YYCURSOR; goto yy184; yy197: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy198: switch(yych){ - case ' ': goto yy197; - default: goto yy184; - } + goto yy198; +yy198: if(yybm[0+yych] & 128) goto yy197; + goto yy184; } -#line 805 +#line 818 "token.re" } @@ -2149,28 +2003,74 @@ ScalarBlock: ScalarBlock2: YYTOKEN = YYCURSOR; + +#line 1632 "<stdout>" { 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 - { char *pacer; +#line 865 "token.re" +{ char *pacer; char *tok = YYTOKEN; int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0; GOBBLE_UP_YAML_INDENT( indt_len, tok ); @@ -2202,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 ) @@ -2235,20 +2139,21 @@ yy202: } goto ScalarBlock2; } -yy203: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy219; - default: goto yy204; - } +#line 1767 "<stdout>" +yy203: ++YYCURSOR; + if((yych = *YYCURSOR) == '\n') goto yy219; + goto yy204; yy204: -#line 957 - { QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); +#line 974 "token.re" +{ QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); goto ScalarBlock2; } -yy205: yych = *++YYCURSOR; +#line 1776 "<stdout>" +yy205: ++YYCURSOR; + goto yy206; yy206: -#line 919 - { lvl = CURRENT_LEVEL(); +#line 936 "token.re" +{ lvl = CURRENT_LEVEL(); if ( lvl->status != syck_lvl_block ) { eat_comments( parser ); @@ -2260,42 +2165,40 @@ yy206: } goto ScalarBlock2; } -yy207: yych = *++YYCURSOR; +#line 1793 "<stdout>" +yy207: ++YYCURSOR; + goto yy208; yy208: -#line 933 - { YYCURSOR--; +#line 950 "token.re" +{ YYCURSOR--; POP_LEVEL(); RETURN_YAML_BLOCK(); } +#line 1802 "<stdout>" 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; - } -yy214: yych = *++YYCURSOR; + 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 - { if ( YYTOKEN == YYLINEPTR ) +#line 955 "token.re" +{ if ( YYTOKEN == YYLINEPTR ) { if ( blockType == BLOCK_FOLD && qidx > 0 ) { @@ -2313,36 +2216,31 @@ yy215: goto ScalarBlock2; } } +#line 1844 "<stdout>" yy216: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy217: switch(yych){ - case ' ': goto yy216; - default: goto yy215; - } + goto yy217; +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; -yy220: switch(yych){ - case '\n': case ' ': goto yy219; - case '\r': goto yy221; - default: goto yy202; - } + goto yy220; +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 +#line 979 "token.re" } @@ -2357,62 +2255,99 @@ Comment: { YYTOKEN = YYCURSOR; + +#line 1872 "<stdout>" { 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; - } -yy224: yych = *++YYCURSOR; + 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 - { YYCURSOR = YYTOKEN; +#line 995 "token.re" +{ YYCURSOR = YYTOKEN; return; } +#line 1930 "<stdout>" yy226: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy231; -yy227: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy230; - default: goto yy228; - } +yy227: ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 128) yych = *YYCURSOR; + goto yy230; + goto yy228; yy228: -#line 982 - { goto Comment; +#line 999 "token.re" +{ goto Comment; } +#line 1941 "<stdout>" yy229: yych = *++YYCURSOR; goto yy228; yy230: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy231: switch(yych){ - case '\n': goto yy230; - case '\r': goto yy232; - default: goto yy225; - } + goto yy231; +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 +#line 1002 "token.re" } @@ -2440,11 +2375,17 @@ 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; } |