1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from

appearing alone or at the end of plain scalars. [ruby-core:5826]

* ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes
  as complex keys.

* lib/syck.h: version 0.60.

* lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during
  key searches.

* ext/syck/rubyext.c: loading of binary-typed nodes.  prevent
  emission of plain strings that look like symbols, but which aren't.

* ext/syck/emitter.c (syck_emit): passing an int* value to the
  long* parameter causes unaligned access on LP64 systems.
  [ruby-dev:27161]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
why 2005-09-20 06:50:20 +00:00
parent 34b3f481dc
commit d578f9d32e
10 changed files with 395 additions and 356 deletions

View file

@ -1,3 +1,19 @@
Tue Sep 20 15:39:40 2005 why the lucky stiff <why@ruby-lang.org>
* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from
appearing alone or at the end of plain scalars. [ruby-core:5826]
* ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes
as complex keys.
* lib/syck.h: version 0.60.
* lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during
key searches.
* ext/syck/rubyext.c: loading of binary-typed nodes. prevent
emission of plain strings that look like symbols, but which aren't.
Tue Sep 20 05:48:26 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> Tue Sep 20 05:48:26 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* test/xmlrpc/test_webrick_server.rb (setup_http_server): * test/xmlrpc/test_webrick_server.rb (setup_http_server):

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.9.3 on Tue Apr 12 20:34:14 2005 */ /* Generated by re2c 0.9.10 on Mon Sep 19 23:21:26 2005 */
#line 1 "bytecode.re" #line 1 "bytecode.re"
/* /*
* bytecode.re * bytecode.re
@ -135,7 +135,6 @@ int
sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser ) sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser )
{ {
SyckLevel *lvl; SyckLevel *lvl;
int doc_level = 0;
syck_parser_ptr = parser; syck_parser_ptr = parser;
if ( YYCURSOR == NULL ) if ( YYCURSOR == NULL )
{ {
@ -149,7 +148,7 @@ sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser )
return t; return t;
} }
#line 173 "bytecode.re" #line 172 "bytecode.re"
lvl = CURRENT_LEVEL(); lvl = CURRENT_LEVEL();
@ -158,22 +157,22 @@ sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser )
goto Document; goto Document;
} }
Header: /* Header: */
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 7 "<stdout>" #line 165 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
goto yy0; goto yy0;
yy1: ++YYCURSOR; ++YYCURSOR;
yy0: yy0:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy2; case 0x00: goto yy2;
case 'D': goto yy3; case 'D': goto yy3;
default: goto yy5; default: goto yy5;
} }
@ -184,22 +183,22 @@ yy2: YYCURSOR = YYMARKER;
yy3: yyaccept = 0; yy3: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
case '\n': goto yy6; case 0x0A: goto yy6;
case '\r': goto yy8; case 0x0D: goto yy8;
default: goto yy4; default: goto yy4;
} }
yy4: yy4:
#line 200 "bytecode.re" #line 199 "bytecode.re"
{ YYPOS(0); { YYPOS(0);
goto Document; goto Document;
} }
#line 37 "<stdout>" #line 195 "<stdout>"
yy5: yych = *++YYCURSOR; yy5: yych = *++YYCURSOR;
goto yy4; goto yy4;
yy6: ++YYCURSOR; yy6: ++YYCURSOR;
goto yy7; goto yy7;
yy7: yy7:
#line 187 "bytecode.re" #line 186 "bytecode.re"
{ if ( lvl->status == syck_lvl_header ) { if ( lvl->status == syck_lvl_header )
{ {
CHK_NL(YYCURSOR); CHK_NL(YYCURSOR);
@ -212,14 +211,14 @@ yy7:
return 0; return 0;
} }
} }
#line 56 "<stdout>" #line 214 "<stdout>"
yy8: ++YYCURSOR; yy8: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy6; case 0x0A: goto yy6;
default: goto yy2; default: goto yy2;
} }
} }
#line 204 "bytecode.re" #line 203 "bytecode.re"
Document: Document:
@ -233,19 +232,18 @@ Document:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 65 "<stdout>" #line 235 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept;
goto yy9; goto yy9;
yy10: ++YYCURSOR; ++YYCURSOR;
yy9: yy9:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy30; case 0x00: goto yy30;
case '\n': goto yy27; case 0x0A: goto yy27;
case '\r': goto yy29; case 0x0D: goto yy29;
case 'A': goto yy19; case 'A': goto yy19;
case 'D': goto yy12; case 'D': goto yy12;
case 'E': goto yy16; case 'E': goto yy16;
@ -260,68 +258,68 @@ yy9:
} }
yy11:yy12: yych = *++YYCURSOR; yy11:yy12: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy41; case 0x0A: goto yy41;
case '\r': goto yy44; case 0x0D: goto yy44;
default: goto yy11; default: goto yy11;
} }
yy13: yych = *++YYCURSOR; yy13: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy41; case 0x0A: goto yy41;
case '\r': goto yy43; case 0x0D: goto yy43;
default: goto yy11; default: goto yy11;
} }
yy14: yych = *++YYCURSOR; yy14: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy38; case 0x0A: goto yy38;
case '\r': goto yy40; case 0x0D: goto yy40;
default: goto yy11; default: goto yy11;
} }
yy15: yych = *++YYCURSOR; yy15: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy35; case 0x0A: goto yy35;
case '\r': goto yy37; case 0x0D: goto yy37;
default: goto yy11; default: goto yy11;
} }
yy16: yych = *++YYCURSOR; yy16: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy32; case 0x0A: goto yy32;
case '\r': goto yy34; case 0x0D: goto yy34;
default: goto yy11; default: goto yy11;
} }
yy17: ++YYCURSOR; yy17: ++YYCURSOR;
goto yy18; goto yy18;
yy18: yy18:
#line 289 "bytecode.re" #line 288 "bytecode.re"
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str);
goto Scalar; goto Scalar;
} }
#line 127 "<stdout>" #line 296 "<stdout>"
yy19: ++YYCURSOR; yy19: ++YYCURSOR;
goto yy20; goto yy20;
yy20: yy20:
#line 293 "bytecode.re" #line 292 "bytecode.re"
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open);
sycklval->name = get_inline( parser ); sycklval->name = get_inline( parser );
syck_hdlr_remove_anchor( parser, sycklval->name ); syck_hdlr_remove_anchor( parser, sycklval->name );
CHK_NL(YYCURSOR); CHK_NL(YYCURSOR);
return YAML_ANCHOR; return YAML_ANCHOR;
} }
#line 138 "<stdout>" #line 307 "<stdout>"
yy21: ++YYCURSOR; yy21: ++YYCURSOR;
goto yy22; goto yy22;
yy22: yy22:
#line 300 "bytecode.re" #line 299 "bytecode.re"
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str);
sycklval->name = get_inline( parser ); sycklval->name = get_inline( parser );
POP_LEVEL(); POP_LEVEL();
if ( *( YYCURSOR - 1 ) == '\n' ) YYCURSOR--; if ( *( YYCURSOR - 1 ) == '\n' ) YYCURSOR--;
return YAML_ALIAS; return YAML_ALIAS;
} }
#line 149 "<stdout>" #line 318 "<stdout>"
yy23: ++YYCURSOR; yy23: ++YYCURSOR;
goto yy24; goto yy24;
yy24: yy24:
#line 307 "bytecode.re" #line 306 "bytecode.re"
{ char *qstr; { char *qstr;
ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open);
qstr = get_inline( parser ); qstr = get_inline( parser );
@ -381,17 +379,17 @@ yy24:
sycklval->name = qstr; sycklval->name = qstr;
return YAML_TAGURI; return YAML_TAGURI;
} }
#line 213 "<stdout>" #line 382 "<stdout>"
yy25: ++YYCURSOR; yy25: ++YYCURSOR;
goto yy26; goto yy26;
yy26: yy26:
#line 367 "bytecode.re" #line 366 "bytecode.re"
{ goto Comment; } { goto Comment; }
#line 219 "<stdout>" #line 388 "<stdout>"
yy27: ++YYCURSOR; yy27: ++YYCURSOR;
goto yy28; goto yy28;
yy28: yy28:
#line 369 "bytecode.re" #line 368 "bytecode.re"
{ CHK_NL(YYCURSOR); { CHK_NL(YYCURSOR);
if ( lvl->status == syck_lvl_seq ) if ( lvl->status == syck_lvl_seq )
{ {
@ -404,25 +402,25 @@ yy28:
} }
goto Document; goto Document;
} }
#line 236 "<stdout>" #line 405 "<stdout>"
yy29: yych = *++YYCURSOR; yy29: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy27; case 0x0A: goto yy27;
default: goto yy11; default: goto yy11;
} }
yy30: ++YYCURSOR; yy30: ++YYCURSOR;
goto yy31; goto yy31;
yy31: yy31:
#line 382 "bytecode.re" #line 381 "bytecode.re"
{ ENSURE_YAML_IEND(lvl, -1); { ENSURE_YAML_IEND(lvl, -1);
YYPOS(0); YYPOS(0);
return 0; return 0;
} }
#line 250 "<stdout>" #line 419 "<stdout>"
yy32: ++YYCURSOR; yy32: ++YYCURSOR;
goto yy33; goto yy33;
yy33: yy33:
#line 253 "bytecode.re" #line 252 "bytecode.re"
{ if ( lvl->status == syck_lvl_seq && lvl->ncount == 0 ) { if ( lvl->status == syck_lvl_seq && lvl->ncount == 0 )
{ {
lvl->ncount++; lvl->ncount++;
@ -458,16 +456,16 @@ yy33:
CHK_NL(YYCURSOR); CHK_NL(YYCURSOR);
return YAML_IEND; return YAML_IEND;
} }
#line 290 "<stdout>" #line 459 "<stdout>"
yy34: yych = *++YYCURSOR; yy34: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy32; case 0x0A: goto yy32;
default: goto yy11; default: goto yy11;
} }
yy35: ++YYCURSOR; yy35: ++YYCURSOR;
goto yy36; goto yy36;
yy36: yy36:
#line 238 "bytecode.re" #line 237 "bytecode.re"
{ int complex = 0; { int complex = 0;
if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) ) if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) )
{ {
@ -482,16 +480,16 @@ yy36:
} }
return YAML_IOPEN; return YAML_IOPEN;
} }
#line 314 "<stdout>" #line 483 "<stdout>"
yy37: yych = *++YYCURSOR; yy37: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy35; case 0x0A: goto yy35;
default: goto yy11; default: goto yy11;
} }
yy38: ++YYCURSOR; yy38: ++YYCURSOR;
goto yy39; goto yy39;
yy39: yy39:
#line 223 "bytecode.re" #line 222 "bytecode.re"
{ int complex = 0; { int complex = 0;
if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) ) if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) )
{ {
@ -506,33 +504,33 @@ yy39:
} }
return YAML_IOPEN; return YAML_IOPEN;
} }
#line 338 "<stdout>" #line 507 "<stdout>"
yy40: yych = *++YYCURSOR; yy40: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy38; case 0x0A: goto yy38;
default: goto yy11; default: goto yy11;
} }
yy41: ++YYCURSOR; yy41: ++YYCURSOR;
goto yy42; goto yy42;
yy42: yy42:
#line 218 "bytecode.re" #line 217 "bytecode.re"
{ ENSURE_YAML_IEND(lvl, -1); { ENSURE_YAML_IEND(lvl, -1);
YYPOS(0); YYPOS(0);
return 0; return 0;
} }
#line 352 "<stdout>" #line 521 "<stdout>"
yy43: yych = *++YYCURSOR; yy43: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\n': goto yy41; case 0x0A: goto yy41;
default: goto yy11; default: goto yy11;
} }
yy44: ++YYCURSOR; yy44: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy41; case 0x0A: goto yy41;
default: goto yy11; default: goto yy11;
} }
} }
#line 387 "bytecode.re" #line 386 "bytecode.re"
} }
@ -542,17 +540,17 @@ Directive:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 366 "<stdout>" #line 543 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
goto yy45; goto yy45;
yy46: ++YYCURSOR; ++YYCURSOR;
yy45: yy45:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy47; case 0x00: goto yy47;
case 'V': goto yy48; case 'V': goto yy48;
default: goto yy50; default: goto yy50;
} }
@ -641,15 +639,15 @@ yy48: yyaccept = 0;
default: goto yy49; default: goto yy49;
} }
yy49: yy49:
#line 400 "bytecode.re" #line 399 "bytecode.re"
{ YYCURSOR = YYTOKEN; { YYCURSOR = YYTOKEN;
return YAML_DOCSEP; return YAML_DOCSEP;
} }
#line 469 "<stdout>" #line 646 "<stdout>"
yy50: yych = *++YYCURSOR; yy50: yych = *++YYCURSOR;
goto yy49; goto yy49;
yy51: ++YYCURSOR; yy51: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy52; goto yy52;
yy52: switch(yych){ yy52: switch(yych){
@ -809,12 +807,12 @@ yy53: yych = *++YYCURSOR;
default: goto yy47; default: goto yy47;
} }
yy54: ++YYCURSOR; yy54: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy55; goto yy55;
yy55: switch(yych){ yy55: switch(yych){
case '\n': goto yy56; case 0x0A: goto yy56;
case '\r': goto yy58; case 0x0D: goto yy58;
case '.': case '.':
case '/': case '/':
case '0': case '0':
@ -895,17 +893,17 @@ yy55: switch(yych){
yy56: ++YYCURSOR; yy56: ++YYCURSOR;
goto yy57; goto yy57;
yy57: yy57:
#line 397 "bytecode.re" #line 396 "bytecode.re"
{ CHK_NL(YYCURSOR); { CHK_NL(YYCURSOR);
goto Directive; } goto Directive; }
#line 724 "<stdout>" #line 899 "<stdout>"
yy58: ++YYCURSOR; yy58: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy56; case 0x0A: goto yy56;
default: goto yy47; default: goto yy47;
} }
} }
#line 403 "bytecode.re" #line 402 "bytecode.re"
} }
@ -915,44 +913,43 @@ Comment:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 733 "<stdout>" #line 916 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept;
goto yy59; goto yy59;
yy60: ++YYCURSOR; ++YYCURSOR;
yy59: yy59:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy61; case 0x00: goto yy61;
case '\n': goto yy62; case 0x0A: goto yy62;
case '\r': goto yy64; case 0x0D: goto yy64;
default: goto yy66; default: goto yy66;
} }
yy61:yy62: ++YYCURSOR; yy61:yy62: ++YYCURSOR;
goto yy63; goto yy63;
yy63: yy63:
#line 413 "bytecode.re" #line 412 "bytecode.re"
{ CHK_NL(YYCURSOR); { CHK_NL(YYCURSOR);
goto Document; } goto Document; }
#line 754 "<stdout>" #line 936 "<stdout>"
yy64: ++YYCURSOR; yy64: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy67; case 0x0A: goto yy67;
default: goto yy65; default: goto yy65;
} }
yy65: yy65:
#line 416 "bytecode.re" #line 415 "bytecode.re"
{ goto Comment; } { goto Comment; }
#line 763 "<stdout>" #line 945 "<stdout>"
yy66: yych = *++YYCURSOR; yy66: yych = *++YYCURSOR;
goto yy65; goto yy65;
yy67: ++YYCURSOR; yy67: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy63; goto yy63;
} }
#line 418 "bytecode.re" #line 417 "bytecode.re"
} }
@ -970,19 +967,18 @@ Scalar2:
tok = YYCURSOR; tok = YYCURSOR;
#line 771 "<stdout>" #line 970 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept;
goto yy68; goto yy68;
yy69: ++YYCURSOR; ++YYCURSOR;
yy68: yy68:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy74; case 0x00: goto yy74;
case '\n': goto yy70; case 0x0A: goto yy70;
case '\r': goto yy72; case 0x0D: goto yy72;
default: goto yy76; default: goto yy76;
} }
yy70: ++YYCURSOR; yy70: ++YYCURSOR;
@ -993,30 +989,30 @@ yy70: ++YYCURSOR;
default: goto yy71; default: goto yy71;
} }
yy71: yy71:
#line 462 "bytecode.re" #line 461 "bytecode.re"
{ YYCURSOR = tok; { YYCURSOR = tok;
goto ScalarEnd; goto ScalarEnd;
} }
#line 798 "<stdout>" #line 996 "<stdout>"
yy72: ++YYCURSOR; yy72: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy77; case 0x0A: goto yy77;
default: goto yy73; default: goto yy73;
} }
yy73: yy73:
#line 470 "bytecode.re" #line 469 "bytecode.re"
{ CAT(str, cap, idx, tok[0]); { CAT(str, cap, idx, tok[0]);
goto Scalar2; goto Scalar2;
} }
#line 809 "<stdout>" #line 1007 "<stdout>"
yy74: ++YYCURSOR; yy74: ++YYCURSOR;
goto yy75; goto yy75;
yy75: yy75:
#line 466 "bytecode.re" #line 465 "bytecode.re"
{ YYCURSOR = tok; { YYCURSOR = tok;
goto ScalarEnd; goto ScalarEnd;
} }
#line 817 "<stdout>" #line 1015 "<stdout>"
yy76: yych = *++YYCURSOR; yy76: yych = *++YYCURSOR;
goto yy73; goto yy73;
yy77: yych = *++YYCURSOR; yy77: yych = *++YYCURSOR;
@ -1029,10 +1025,10 @@ yy77: yych = *++YYCURSOR;
yy78: ++YYCURSOR; yy78: ++YYCURSOR;
goto yy79; goto yy79;
yy79: yy79:
#line 436 "bytecode.re" #line 435 "bytecode.re"
{ CHK_NL(tok+1); { CHK_NL(tok+1);
goto Scalar2; } goto Scalar2; }
#line 833 "<stdout>" #line 1031 "<stdout>"
yy80: ++YYCURSOR; yy80: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1051,7 +1047,7 @@ yy81: switch(yych){
default: goto yy82; default: goto yy82;
} }
yy82: yy82:
#line 439 "bytecode.re" #line 438 "bytecode.re"
{ CHK_NL(tok+1); { CHK_NL(tok+1);
if ( tok + 2 < YYCURSOR ) if ( tok + 2 < YYCURSOR )
{ {
@ -1069,18 +1065,18 @@ yy82:
} }
goto Scalar2; goto Scalar2;
} }
#line 871 "<stdout>" #line 1068 "<stdout>"
yy83: ++YYCURSOR; yy83: ++YYCURSOR;
goto yy84; goto yy84;
yy84: yy84:
#line 457 "bytecode.re" #line 456 "bytecode.re"
{ CHK_NL(tok+1); { CHK_NL(tok+1);
CAT(str, cap, idx, '\0'); CAT(str, cap, idx, '\0');
goto Scalar2; goto Scalar2;
} }
#line 880 "<stdout>" #line 1077 "<stdout>"
} }
#line 474 "bytecode.re" #line 473 "bytecode.re"
ScalarEnd: ScalarEnd:
@ -1115,54 +1111,53 @@ Inline:
tok = YYCURSOR; tok = YYCURSOR;
#line 884 "<stdout>" #line 1114 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept;
goto yy85; goto yy85;
yy86: ++YYCURSOR; ++YYCURSOR;
yy85: yy85:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy91; case 0x00: goto yy91;
case '\n': goto yy87; case 0x0A: goto yy87;
case '\r': goto yy89; case 0x0D: goto yy89;
default: goto yy93; default: goto yy93;
} }
yy87: ++YYCURSOR; yy87: ++YYCURSOR;
goto yy88; goto yy88;
yy88: yy88:
#line 509 "bytecode.re" #line 508 "bytecode.re"
{ CHK_NL(YYCURSOR); { CHK_NL(YYCURSOR);
return str; } return str; }
#line 905 "<stdout>" #line 1134 "<stdout>"
yy89: ++YYCURSOR; yy89: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\n': goto yy94; case 0x0A: goto yy94;
default: goto yy90; default: goto yy90;
} }
yy90: yy90:
#line 516 "bytecode.re" #line 515 "bytecode.re"
{ CAT(str, cap, idx, tok[0]); { CAT(str, cap, idx, tok[0]);
goto Inline; goto Inline;
} }
#line 916 "<stdout>" #line 1145 "<stdout>"
yy91: ++YYCURSOR; yy91: ++YYCURSOR;
goto yy92; goto yy92;
yy92: yy92:
#line 512 "bytecode.re" #line 511 "bytecode.re"
{ YYCURSOR = tok; { YYCURSOR = tok;
return str; return str;
} }
#line 924 "<stdout>" #line 1153 "<stdout>"
yy93: yych = *++YYCURSOR; yy93: yych = *++YYCURSOR;
goto yy90; goto yy90;
yy94: ++YYCURSOR; yy94: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy88; goto yy88;
} }
#line 520 "bytecode.re" #line 519 "bytecode.re"
} }

View file

@ -359,7 +359,8 @@ syck_emit( SyckEmitter *e, st_data_t n )
{ {
SYMID oid; SYMID oid;
char *anchor_name = NULL; char *anchor_name = NULL;
int indent = 0, x = 0; int indent = 0;
long x = 0;
SyckLevel *lvl = syck_emitter_current_level( e ); SyckLevel *lvl = syck_emitter_current_level( e );
/* /*
@ -559,7 +560,8 @@ syck_scan_scalar( int req_width, char *cursor, long len )
} }
if ( ( cursor[0] == '-' || cursor[0] == ':' || if ( ( cursor[0] == '-' || cursor[0] == ':' ||
cursor[0] == '?' || cursor[0] == ',' ) && cursor[0] == '?' || cursor[0] == ',' ) &&
cursor[1] == ' ' ) { ( cursor[1] == ' ' || cursor[1] == '\n' || len == 1 ) )
{
flags |= SCAN_INDIC_S; flags |= SCAN_INDIC_S;
} }
@ -618,11 +620,13 @@ syck_scan_scalar( int req_width, char *cursor, long len )
} }
/* remember, if plain collections get implemented, to add nb-plain-flow-char */ /* remember, if plain collections get implemented, to add nb-plain-flow-char */
else if ( ( cursor[i] == ' ' && cursor[i+1] == '#' ) || else if ( ( cursor[i] == ' ' && cursor[i+1] == '#' ) ||
( cursor[i] == ':' && cursor[i+1] == ' ' ) ) ( cursor[i] == ':' &&
( cursor[i+1] == ' ' || cursor[i+1] == '\n' || i == len - 1 ) ) )
{ {
flags |= SCAN_INDIC_C; flags |= SCAN_INDIC_C;
} }
else if ( cursor[i] == ',' && cursor[i+1] == ' ' ) else if ( cursor[i] == ',' &&
( cursor[i+1] == ' ' || cursor[i+1] == '\n' || i == len - 1 ) )
{ {
flags |= SCAN_FLOWMAP; flags |= SCAN_FLOWMAP;
flags |= SCAN_FLOWSEQ; flags |= SCAN_FLOWSEQ;
@ -642,7 +646,7 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
enum scalar_style favor_style = scalar_literal; enum scalar_style favor_style = scalar_literal;
SyckLevel *parent = syck_emitter_parent_level( e ); SyckLevel *parent = syck_emitter_parent_level( e );
SyckLevel *lvl = syck_emitter_current_level( e ); SyckLevel *lvl = syck_emitter_current_level( e );
int scan; int scan = 0;
char *implicit; char *implicit;
if ( str == NULL ) str = ""; if ( str == NULL ) str = "";
@ -663,6 +667,14 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
if ( syck_tagcmp( tag, implicit ) != 0 && syck_tagcmp( tag, "tag:yaml.org,2002:str" ) == 0 ) { if ( syck_tagcmp( tag, implicit ) != 0 && syck_tagcmp( tag, "tag:yaml.org,2002:str" ) == 0 ) {
force_style = scalar_2quote; force_style = scalar_2quote;
} else { } else {
/* complex key */
if ( parent->status == syck_lvl_map && parent->ncount % 2 == 1 &&
( !( tag == NULL ||
( implicit != NULL && syck_tagcmp( tag, implicit ) == 0 && e->explicit_typing == 0 ) ) ) )
{
syck_emitter_write( e, "? ", 2 );
parent->status = syck_lvl_mapx;
}
syck_emit_tag( e, tag, implicit ); syck_emit_tag( e, tag, implicit );
} }
S_FREE( implicit ); S_FREE( implicit );
@ -710,7 +722,7 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
} }
/* For now, all ambiguous keys are going to be double-quoted */ /* For now, all ambiguous keys are going to be double-quoted */
if ( parent->status == syck_lvl_map && parent->ncount % 2 == 1 ) { if ( ( parent->status == syck_lvl_map || parent->status == syck_lvl_mapx ) && parent->ncount % 2 == 1 ) {
if ( force_style != scalar_plain ) { if ( force_style != scalar_plain ) {
force_style = scalar_2quote; force_style = scalar_2quote;
} }
@ -737,6 +749,7 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
syck_emit_1quoted( e, force_width, str, len ); syck_emit_1quoted( e, force_width, str, len );
break; break;
case scalar_none:
case scalar_2quote: case scalar_2quote:
syck_emit_2quoted( e, force_width, str, len ); syck_emit_2quoted( e, force_width, str, len );
break; break;
@ -753,6 +766,11 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
syck_emitter_write( e, str, len ); syck_emitter_write( e, str, len );
break; break;
} }
if ( parent->status == syck_lvl_mapx )
{
syck_emitter_write( e, "\n", 1 );
}
} }
void void
@ -1122,6 +1140,8 @@ void syck_emit_item( SyckEmitter *e, st_data_t n )
} }
} }
break; break;
default: break;
} }
lvl->ncount++; lvl->ncount++;
@ -1162,6 +1182,8 @@ void syck_emit_end( SyckEmitter *e )
case syck_lvl_imap: case syck_lvl_imap:
syck_emitter_write( e, "}\n", 1 ); syck_emitter_write( e, "}\n", 1 );
break; break;
default: break;
} }
} }

View file

@ -31,7 +31,6 @@ syck_hdlr_add_node( SyckParser *p, SyckNode *n )
SyckNode * SyckNode *
syck_hdlr_add_anchor( SyckParser *p, char *a, SyckNode *n ) syck_hdlr_add_anchor( SyckParser *p, char *a, SyckNode *n )
{ {
char *atmp = NULL;
SyckNode *ntmp = NULL; SyckNode *ntmp = NULL;
n->anchor = a; n->anchor = a;

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.9.3 on Wed Mar 30 08:27:25 2005 */ /* Generated by re2c 0.9.10 on Mon Sep 19 21:46:50 2005 */
#line 1 "implicit.re" #line 1 "implicit.re"
/* /*
* implicit.re * implicit.re
@ -52,17 +52,17 @@ char *syck_match_implicit( char *str, size_t len )
limit = str + len; limit = str + len;
#line 6 "<stdout>" #line 55 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
goto yy0; goto yy0;
yy1: ++YYCURSOR; ++YYCURSOR;
yy0: yy0:
if((YYLIMIT - YYCURSOR) < 26) YYFILL(26); if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy6; case 0x00: goto yy6;
case '+': goto yy16; case '+': goto yy16;
case '-': goto yy17; case '-': goto yy17;
case '.': goto yy20; case '.': goto yy20;
@ -92,12 +92,12 @@ yy0:
default: goto yy23; default: goto yy23;
} }
yy2: ++YYCURSOR; yy2: ++YYCURSOR;
if((yych = *YYCURSOR) <= '\000') goto yy6; if((yych = *YYCURSOR) <= 0x00) goto yy6;
goto yy3; goto yy3;
yy3: yy3:
#line 123 "implicit.re" #line 123 "implicit.re"
{ return "str"; } { return "str"; }
#line 51 "<stdout>" #line 100 "<stdout>"
yy4: yyaccept = 0; yy4: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -118,7 +118,7 @@ yy6: ++YYCURSOR;
yy7: yy7:
#line 85 "implicit.re" #line 85 "implicit.re"
{ return "null"; } { return "null"; }
#line 72 "<stdout>" #line 121 "<stdout>"
yy8: yyaccept = 0; yy8: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -208,7 +208,7 @@ yy17: yyaccept = 0;
yy18: yyaccept = 0; yy18: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
case '\000': goto yy52; case 0x00: goto yy52;
case ',': goto yy142; case ',': goto yy142;
case '.': goto yy50; case '.': goto yy50;
case '0': case '0':
@ -228,7 +228,7 @@ yy18: yyaccept = 0;
yy19: yyaccept = 0; yy19: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
case '\000': goto yy52; case 0x00: goto yy52;
case ',': goto yy47; case ',': goto yy47;
case '.': goto yy50; case '.': goto yy50;
case '0': case '0':
@ -254,7 +254,7 @@ yy20: yyaccept = 0;
default: goto yy3; default: goto yy3;
} }
yy21: yych = *++YYCURSOR; yy21: yych = *++YYCURSOR;
if(yych <= '\000') goto yy28; if(yych <= 0x00) goto yy28;
goto yy3; goto yy3;
yy22: yyaccept = 0; yy22: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
@ -265,7 +265,7 @@ yy22: yyaccept = 0;
yy23: yych = *++YYCURSOR; yy23: yych = *++YYCURSOR;
goto yy3; goto yy3;
yy24: yych = *++YYCURSOR; yy24: yych = *++YYCURSOR;
if(yych <= '\000') goto yy26; if(yych <= 0x00) goto yy26;
goto yy25; goto yy25;
yy25: YYCURSOR = YYMARKER; yy25: YYCURSOR = YYMARKER;
switch(yyaccept){ switch(yyaccept){
@ -276,13 +276,13 @@ yy26: ++YYCURSOR;
yy27: yy27:
#line 121 "implicit.re" #line 121 "implicit.re"
{ return "merge"; } { return "merge"; }
#line 230 "<stdout>" #line 279 "<stdout>"
yy28: ++YYCURSOR; yy28: ++YYCURSOR;
goto yy29; goto yy29;
yy29: yy29:
#line 119 "implicit.re" #line 119 "implicit.re"
{ return "default"; } { return "default"; }
#line 236 "<stdout>" #line 285 "<stdout>"
yy30: yych = *++YYCURSOR; yy30: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'a': goto yy45; case 'a': goto yy45;
@ -316,14 +316,14 @@ yy35: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy36: yych = *++YYCURSOR; yy36: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy37; goto yy37;
yy37: ++YYCURSOR; yy37: ++YYCURSOR;
goto yy38; goto yy38;
yy38: yy38:
#line 105 "implicit.re" #line 105 "implicit.re"
{ return "float#inf"; } { return "float#inf"; }
#line 277 "<stdout>" #line 326 "<stdout>"
yy39: yych = *++YYCURSOR; yy39: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'f': goto yy36; case 'f': goto yy36;
@ -340,14 +340,14 @@ yy41: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy42: yych = *++YYCURSOR; yy42: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy43; goto yy43;
yy43: ++YYCURSOR; yy43: ++YYCURSOR;
goto yy44; goto yy44;
yy44: yy44:
#line 109 "implicit.re" #line 109 "implicit.re"
{ return "float#nan"; } { return "float#nan"; }
#line 301 "<stdout>" #line 350 "<stdout>"
yy45: yych = *++YYCURSOR; yy45: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'n': goto yy42; case 'n': goto yy42;
@ -372,7 +372,7 @@ yy47: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy48; goto yy48;
yy48: switch(yych){ yy48: switch(yych){
case '\000': goto yy52; case 0x00: goto yy52;
case ',': case '0': case ',': case '0':
case '1': case '1':
case '2': case '2':
@ -404,11 +404,11 @@ yy49: ++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy50: ++YYCURSOR; yy50: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy51; goto yy51;
yy51: switch(yych){ yy51: switch(yych){
case '\000': goto yy56; case 0x00: goto yy56;
case ',': goto yy54; case ',': goto yy54;
case '.': goto yy58; case '.': goto yy58;
case '0': case '0':
@ -429,13 +429,13 @@ yy52: ++YYCURSOR;
yy53: yy53:
#line 97 "implicit.re" #line 97 "implicit.re"
{ return "int"; } { return "int"; }
#line 386 "<stdout>" #line 432 "<stdout>"
yy54: ++YYCURSOR; yy54: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy55; goto yy55;
yy55: switch(yych){ yy55: switch(yych){
case '\000': goto yy56; case 0x00: goto yy56;
case ',': case '0': case ',': case '0':
case '1': case '1':
case '2': case '2':
@ -453,9 +453,9 @@ yy56: ++YYCURSOR;
yy57: yy57:
#line 99 "implicit.re" #line 99 "implicit.re"
{ return "float#fix"; } { return "float#fix"; }
#line 411 "<stdout>" #line 456 "<stdout>"
yy58: ++YYCURSOR; yy58: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy59; goto yy59;
yy59: switch(yych){ yy59: switch(yych){
@ -478,14 +478,14 @@ yy60: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy61: yych = *++YYCURSOR; yy61: yych = *++YYCURSOR;
if(yych <= '\000') goto yy25; if(yych <= 0x00) goto yy25;
goto yy63; goto yy63;
yy62: ++YYCURSOR; yy62: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy63; goto yy63;
yy63: switch(yych){ yy63: switch(yych){
case '\000': goto yy64; case 0x00: goto yy64;
case '0': case '0':
case '1': case '1':
case '2': case '2':
@ -503,12 +503,12 @@ yy64: ++YYCURSOR;
yy65: yy65:
#line 101 "implicit.re" #line 101 "implicit.re"
{ return "float#exp"; } { return "float#exp"; }
#line 463 "<stdout>" #line 506 "<stdout>"
yy66: ++YYCURSOR; yy66: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy70; case 0x00: goto yy70;
case '.': goto yy68; case '.': goto yy68;
case '0': case '0':
case '1': case '1':
@ -527,7 +527,7 @@ yy67: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy70; case 0x00: goto yy70;
case '.': goto yy68; case '.': goto yy68;
case ':': goto yy49; case ':': goto yy49;
default: goto yy25; default: goto yy25;
@ -537,7 +537,7 @@ yy68: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy69; goto yy69;
yy69: switch(yych){ yy69: switch(yych){
case '\000': goto yy72; case 0x00: goto yy72;
case ',': case '0': case ',': case '0':
case '1': case '1':
case '2': case '2':
@ -555,13 +555,13 @@ yy70: ++YYCURSOR;
yy71: yy71:
#line 95 "implicit.re" #line 95 "implicit.re"
{ return "int#base60"; } { return "int#base60"; }
#line 518 "<stdout>" #line 558 "<stdout>"
yy72: ++YYCURSOR; yy72: ++YYCURSOR;
goto yy73; goto yy73;
yy73: yy73:
#line 103 "implicit.re" #line 103 "implicit.re"
{ return "float#base60"; } { return "float#base60"; }
#line 524 "<stdout>" #line 564 "<stdout>"
yy74: yych = *++YYCURSOR; yy74: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -644,7 +644,7 @@ yy80: yych = *++YYCURSOR;
} }
yy81: yych = *++YYCURSOR; yy81: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy82; case 0x00: goto yy82;
case '0': case '0':
case '1': case '1':
case '2': case '2':
@ -664,7 +664,7 @@ yy82: ++YYCURSOR;
yy83: yy83:
#line 111 "implicit.re" #line 111 "implicit.re"
{ return "timestamp#ymd"; } { return "timestamp#ymd"; }
#line 627 "<stdout>" #line 667 "<stdout>"
yy84: yych = *++YYCURSOR; yy84: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -694,11 +694,11 @@ yy85: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy86: ++YYCURSOR; yy86: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy87; goto yy87;
yy87: switch(yych){ yy87: switch(yych){
case '\t': case ' ': goto yy86; case 0x09: case ' ': goto yy86;
case '0': case '0':
case '1': case '1':
case '2': case '2':
@ -793,7 +793,7 @@ yy94: yych = *++YYCURSOR;
} }
yy95: yych = *++YYCURSOR; yy95: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\t': case ' ': goto yy98; case 0x09: case ' ': goto yy98;
case '.': goto yy96; case '.': goto yy96;
default: goto yy25; default: goto yy25;
} }
@ -802,7 +802,7 @@ yy96: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy97; goto yy97;
yy97: switch(yych){ yy97: switch(yych){
case '\t': case ' ': goto yy98; case 0x09: case ' ': goto yy98;
case '0': case '0':
case '1': case '1':
case '2': case '2':
@ -816,17 +816,17 @@ yy97: switch(yych){
default: goto yy25; default: goto yy25;
} }
yy98: ++YYCURSOR; yy98: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy99; goto yy99;
yy99: switch(yych){ yy99: switch(yych){
case '\t': case ' ': goto yy98; case 0x09: case ' ': goto yy98;
case '+': case '-': goto yy101; case '+': case '-': goto yy101;
case 'Z': goto yy100; case 'Z': goto yy100;
default: goto yy25; default: goto yy25;
} }
yy100: yych = *++YYCURSOR; yy100: yych = *++YYCURSOR;
if(yych <= '\000') goto yy105; if(yych <= 0x00) goto yy105;
goto yy25; goto yy25;
yy101: yych = *++YYCURSOR; yy101: yych = *++YYCURSOR;
switch(yych){ switch(yych){
@ -858,7 +858,7 @@ yy102: yych = *++YYCURSOR;
} }
yy103: yych = *++YYCURSOR; yy103: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy105; case 0x00: goto yy105;
case ':': goto yy104; case ':': goto yy104;
default: goto yy25; default: goto yy25;
} }
@ -881,7 +881,7 @@ yy105: ++YYCURSOR;
yy106: yy106:
#line 115 "implicit.re" #line 115 "implicit.re"
{ return "timestamp#spaced"; } { return "timestamp#spaced"; }
#line 847 "<stdout>" #line 884 "<stdout>"
yy107: yych = *++YYCURSOR; yy107: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -992,7 +992,7 @@ yy115: yych = *++YYCURSOR;
default: goto yy117; default: goto yy117;
} }
yy116: ++YYCURSOR; yy116: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy117; goto yy117;
yy117: switch(yych){ yy117: switch(yych){
@ -1011,7 +1011,7 @@ yy117: switch(yych){
default: goto yy25; default: goto yy25;
} }
yy118: yych = *++YYCURSOR; yy118: yych = *++YYCURSOR;
if(yych <= '\000') goto yy123; if(yych <= 0x00) goto yy123;
goto yy25; goto yy25;
yy119: yych = *++YYCURSOR; yy119: yych = *++YYCURSOR;
switch(yych){ switch(yych){
@ -1043,7 +1043,7 @@ yy120: yych = *++YYCURSOR;
} }
yy121: yych = *++YYCURSOR; yy121: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy123; case 0x00: goto yy123;
case ':': goto yy122; case ':': goto yy122;
default: goto yy25; default: goto yy25;
} }
@ -1066,7 +1066,7 @@ yy123: ++YYCURSOR;
yy124: yy124:
#line 113 "implicit.re" #line 113 "implicit.re"
{ return "timestamp#iso8601"; } { return "timestamp#iso8601"; }
#line 1033 "<stdout>" #line 1069 "<stdout>"
yy125: yych = *++YYCURSOR; yy125: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -1197,7 +1197,7 @@ yy135: switch(yych){
default: goto yy25; default: goto yy25;
} }
yy136: yych = *++YYCURSOR; yy136: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy137; goto yy137;
yy137: yych = *++YYCURSOR; yy137: yych = *++YYCURSOR;
goto yy124; goto yy124;
@ -1253,7 +1253,7 @@ yy142: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy143; goto yy143;
yy143: switch(yych){ yy143: switch(yych){
case '\000': goto yy149; case 0x00: goto yy149;
case ',': case '0': case ',': case '0':
case '1': case '1':
case '2': case '2':
@ -1269,14 +1269,14 @@ yy143: switch(yych){
default: goto yy25; default: goto yy25;
} }
yy144: yych = *++YYCURSOR; yy144: yych = *++YYCURSOR;
if(yych <= '\000') goto yy25; if(yych <= 0x00) goto yy25;
goto yy146; goto yy146;
yy145: ++YYCURSOR; yy145: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy146; goto yy146;
yy146: switch(yych){ yy146: switch(yych){
case '\000': goto yy147; case 0x00: goto yy147;
case ',': case '0': case ',': case '0':
case '1': case '1':
case '2': case '2':
@ -1304,13 +1304,13 @@ yy147: ++YYCURSOR;
yy148: yy148:
#line 91 "implicit.re" #line 91 "implicit.re"
{ return "int#hex"; } { return "int#hex"; }
#line 1275 "<stdout>" #line 1307 "<stdout>"
yy149: ++YYCURSOR; yy149: ++YYCURSOR;
goto yy150; goto yy150;
yy150: yy150:
#line 93 "implicit.re" #line 93 "implicit.re"
{ return "int#oct"; } { return "int#oct"; }
#line 1281 "<stdout>" #line 1313 "<stdout>"
yy151: ++YYCURSOR; yy151: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1376,7 +1376,7 @@ yy157: yych = *++YYCURSOR;
} }
yy158: yych = *++YYCURSOR; yy158: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy52; case 0x00: goto yy52;
case 'x': goto yy144; case 'x': goto yy144;
default: goto yy143; default: goto yy143;
} }
@ -1402,14 +1402,14 @@ yy162: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy163: yych = *++YYCURSOR; yy163: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy164; goto yy164;
yy164: ++YYCURSOR; yy164: ++YYCURSOR;
goto yy165; goto yy165;
yy165: yy165:
#line 107 "implicit.re" #line 107 "implicit.re"
{ return "float#neginf"; } { return "float#neginf"; }
#line 1381 "<stdout>" #line 1412 "<stdout>"
yy166: yych = *++YYCURSOR; yy166: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'f': goto yy163; case 'f': goto yy163;
@ -1442,14 +1442,14 @@ yy171: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy172: yych = *++YYCURSOR; yy172: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy173; goto yy173;
yy173: ++YYCURSOR; yy173: ++YYCURSOR;
goto yy174; goto yy174;
yy174: yy174:
#line 89 "implicit.re" #line 89 "implicit.re"
{ return "bool#no"; } { return "bool#no"; }
#line 1421 "<stdout>" #line 1452 "<stdout>"
yy175: yych = *++YYCURSOR; yy175: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'S': goto yy176; case 'S': goto yy176;
@ -1486,14 +1486,14 @@ yy181: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy182: yych = *++YYCURSOR; yy182: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25; if(yych >= 0x01) goto yy25;
goto yy183; goto yy183;
yy183: ++YYCURSOR; yy183: ++YYCURSOR;
goto yy184; goto yy184;
yy184: yy184:
#line 87 "implicit.re" #line 87 "implicit.re"
{ return "bool#yes"; } { return "bool#yes"; }
#line 1465 "<stdout>" #line 1496 "<stdout>"
yy185: yych = *++YYCURSOR; yy185: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 'f': goto yy172; case 'f': goto yy172;
@ -1560,7 +1560,7 @@ yy197: yych = *++YYCURSOR;
default: goto yy25; default: goto yy25;
} }
yy198: yych = *++YYCURSOR; yy198: yych = *++YYCURSOR;
if(yych <= '\000') goto yy6; if(yych <= 0x00) goto yy6;
goto yy25; goto yy25;
yy199: yych = *++YYCURSOR; yy199: yych = *++YYCURSOR;
switch(yych){ switch(yych){
@ -1617,17 +1617,17 @@ syck_type_id_to_uri( char *type_id )
limit = type_id + strlen( type_id ); limit = type_id + strlen( type_id );
#line 1552 "<stdout>" #line 1620 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
goto yy202; goto yy202;
yy203: ++YYCURSOR; ++YYCURSOR;
yy202: yy202:
if((YYLIMIT - YYCURSOR) < 21) YYFILL(21); if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR; yych = *YYCURSOR;
switch(yych){ switch(yych){
case '\000': goto yy204; case 0x00: goto yy204;
case '!': goto yy208; case '!': goto yy208;
case '0': case '0':
case '1': case '1':
@ -1765,7 +1765,7 @@ yy205: yyaccept = 0;
yy206: yy206:
#line 202 "implicit.re" #line 202 "implicit.re"
{ return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); } { return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); }
#line 1700 "<stdout>" #line 1768 "<stdout>"
yy207: yyaccept = 0; yy207: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -1839,7 +1839,7 @@ yy208: ++YYCURSOR;
yy209: yy209:
#line 176 "implicit.re" #line 176 "implicit.re"
{ return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); } { return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); }
#line 1774 "<stdout>" #line 1842 "<stdout>"
yy210: yyaccept = 0; yy210: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -1980,7 +1980,7 @@ yy213: switch(yych){
default: goto yy204; default: goto yy204;
} }
yy214: ++YYCURSOR; yy214: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy215; goto yy215;
yy215: switch(yych){ yy215: switch(yych){
@ -2146,9 +2146,9 @@ yy219:
S_FREE( domain ); S_FREE( domain );
return uri; return uri;
} }
#line 2084 "<stdout>" #line 2149 "<stdout>"
yy220: ++YYCURSOR; yy220: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy221; goto yy221;
yy221: switch(yych){ yy221: switch(yych){
@ -2362,7 +2362,7 @@ yy230:
S_FREE( domain ); S_FREE( domain );
return uri; return uri;
} }
#line 2302 "<stdout>" #line 2365 "<stdout>"
yy231: yych = *++YYCURSOR; yy231: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -2482,7 +2482,7 @@ yy244: ++YYCURSOR;
yy245: yy245:
#line 174 "implicit.re" #line 174 "implicit.re"
{ return type_id; } { return type_id; }
#line 2422 "<stdout>" #line 2485 "<stdout>"
yy246: yych = *++YYCURSOR; yy246: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case ',': goto yy216; case ',': goto yy216;
@ -2507,7 +2507,7 @@ yy248: yych = *++YYCURSOR;
default: goto yy250; default: goto yy250;
} }
yy249: ++YYCURSOR; yy249: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy250; goto yy250;
yy250: switch(yych){ yy250: switch(yych){
@ -2725,7 +2725,7 @@ yy254: ++YYCURSOR;
default: goto yy204; default: goto yy204;
} }
yy255: ++YYCURSOR; yy255: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy256; goto yy256;
yy256: switch(yych){ yy256: switch(yych){
@ -2929,7 +2929,7 @@ yy264: ++YYCURSOR;
yy265: yy265:
#line 172 "implicit.re" #line 172 "implicit.re"
{ return type_id; } { return type_id; }
#line 2874 "<stdout>" #line 2932 "<stdout>"
yy266: yych = *++YYCURSOR; yy266: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':

View file

@ -13,7 +13,7 @@
#define SYCK_YAML_MAJOR 1 #define SYCK_YAML_MAJOR 1
#define SYCK_YAML_MINOR 0 #define SYCK_YAML_MINOR 0
#define SYCK_VERSION "0.55" #define SYCK_VERSION "0.60"
#define YAML_DOMAIN "yaml.org,2002" #define YAML_DOMAIN "yaml.org,2002"
#include <stdio.h> #include <stdio.h>

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.9.10 on Sat Sep 17 00:51:29 2005 */ /* Generated by re2c 0.9.10 on Mon Sep 19 23:23:24 2005 */
#line 1 "token.re" #line 1 "token.re"
/* /*
* token.re * token.re
@ -268,6 +268,7 @@ sycklex( YYSTYPE *sycklval, SyckParser *parser )
case syck_bytecode_utf8: case syck_bytecode_utf8:
return sycklex_bytecode_utf8( sycklval, parser ); return sycklex_bytecode_utf8( sycklval, parser );
} }
return YAML_DOCSEP;
} }
/* /*
@ -290,7 +291,7 @@ sycklex_yaml_utf8( YYSTYPE *sycklval, SyckParser *parser )
return t; return t;
} }
#line 314 "token.re" #line 315 "token.re"
if ( YYLINEPTR != YYCURSOR ) if ( YYLINEPTR != YYCURSOR )
@ -303,7 +304,7 @@ Header:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 306 "<stdout>" #line 307 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -329,11 +330,11 @@ yy2: yyaccept = 0;
default: goto yy3; default: goto yy3;
} }
yy3: yy3:
#line 373 "token.re" #line 374 "token.re"
{ YYPOS(0); { YYPOS(0);
goto Document; goto Document;
} }
#line 336 "<stdout>" #line 337 "<stdout>"
yy4: yyaccept = 0; yy4: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -343,30 +344,30 @@ yy4: yyaccept = 0;
yy5: ++YYCURSOR; yy5: ++YYCURSOR;
goto yy6; goto yy6;
yy6: yy6:
#line 355 "token.re" #line 356 "token.re"
{ eat_comments( parser ); { eat_comments( parser );
goto Header; goto Header;
} }
#line 350 "<stdout>" #line 351 "<stdout>"
yy7: ++YYCURSOR; yy7: ++YYCURSOR;
goto yy8; goto yy8;
yy8: yy8:
#line 359 "token.re" #line 360 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL(); { SyckLevel *lvl = CURRENT_LEVEL();
ENSURE_YAML_IEND(lvl, -1); ENSURE_YAML_IEND(lvl, -1);
YYPOS(0); YYPOS(0);
return 0; return 0;
} }
#line 360 "<stdout>" #line 361 "<stdout>"
yy9: yyaccept = 1; yy9: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy18; goto yy18;
yy10: yy10:
#line 365 "token.re" #line 366 "token.re"
{ GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); { GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN );
goto Header; goto Header;
} }
#line 369 "<stdout>" #line 370 "<stdout>"
yy11: yych = *++YYCURSOR; yy11: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 0x0A: goto yy17; case 0x0A: goto yy17;
@ -376,11 +377,11 @@ yy12: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy16; goto yy16;
yy13: yy13:
#line 369 "token.re" #line 370 "token.re"
{ doc_level = YYCURSOR - YYLINEPTR; { doc_level = YYCURSOR - YYLINEPTR;
goto Header; goto Header;
} }
#line 383 "<stdout>" #line 384 "<stdout>"
yy14: yych = *++YYCURSOR; yy14: yych = *++YYCURSOR;
goto yy3; goto yy3;
yy15: ++YYCURSOR; yy15: ++YYCURSOR;
@ -428,7 +429,7 @@ yy22: yych = *++YYCURSOR;
yy23: ++YYCURSOR; yy23: ++YYCURSOR;
goto yy24; goto yy24;
yy24: yy24:
#line 341 "token.re" #line 342 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL(); { SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header ) if ( lvl->status == syck_lvl_header )
{ {
@ -442,7 +443,7 @@ yy24:
} }
return 0; return 0;
} }
#line 445 "<stdout>" #line 446 "<stdout>"
yy25: ++YYCURSOR; yy25: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -471,7 +472,7 @@ yy29: yych = *++YYCURSOR;
yy30: ++YYCURSOR; yy30: ++YYCURSOR;
goto yy31; goto yy31;
yy31: yy31:
#line 327 "token.re" #line 328 "token.re"
{ SyckLevel *lvl = CURRENT_LEVEL(); { SyckLevel *lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_header ) if ( lvl->status == syck_lvl_header )
{ {
@ -485,7 +486,7 @@ yy31:
return 0; return 0;
} }
} }
#line 488 "<stdout>" #line 489 "<stdout>"
yy32: ++YYCURSOR; yy32: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -500,7 +501,7 @@ yy34: ++YYCURSOR;
default: goto yy20; default: goto yy20;
} }
} }
#line 377 "token.re" #line 378 "token.re"
Document: Document:
@ -514,7 +515,7 @@ Document:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 517 "<stdout>" #line 518 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -546,7 +547,7 @@ yy37: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy92; goto yy92;
yy38: yy38:
#line 391 "token.re" #line 392 "token.re"
{ /* Isolate spaces */ { /* Isolate spaces */
int indt_len; int indt_len;
GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN );
@ -574,46 +575,46 @@ yy38:
} }
return YAML_INDENT; return YAML_INDENT;
} }
#line 577 "<stdout>" #line 578 "<stdout>"
yy39: ++YYCURSOR; yy39: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case 0x0A: goto yy91; case 0x0A: goto yy91;
default: goto yy40; default: goto yy40;
} }
yy40: yy40:
#line 495 "token.re" #line 496 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto Plain; goto Plain;
} }
#line 588 "<stdout>" #line 589 "<stdout>"
yy41: ++YYCURSOR; yy41: ++YYCURSOR;
goto yy42; goto yy42;
yy42: yy42:
#line 419 "token.re" #line 420 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
lvl = CURRENT_LEVEL(); lvl = CURRENT_LEVEL();
ADD_LEVEL(lvl->spaces + 1, syck_lvl_iseq); ADD_LEVEL(lvl->spaces + 1, syck_lvl_iseq);
return YYTOKEN[0]; return YYTOKEN[0];
} }
#line 598 "<stdout>" #line 599 "<stdout>"
yy43: ++YYCURSOR; yy43: ++YYCURSOR;
goto yy44; goto yy44;
yy44: yy44:
#line 425 "token.re" #line 426 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
lvl = CURRENT_LEVEL(); lvl = CURRENT_LEVEL();
ADD_LEVEL(lvl->spaces + 1, syck_lvl_imap); ADD_LEVEL(lvl->spaces + 1, syck_lvl_imap);
return YYTOKEN[0]; return YYTOKEN[0];
} }
#line 608 "<stdout>" #line 609 "<stdout>"
yy45: ++YYCURSOR; yy45: ++YYCURSOR;
goto yy46; goto yy46;
yy46: yy46:
#line 431 "token.re" #line 432 "token.re"
{ POP_LEVEL(); { POP_LEVEL();
return YYTOKEN[0]; return YYTOKEN[0];
} }
#line 616 "<stdout>" #line 617 "<stdout>"
yy47: yyaccept = 1; yy47: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -761,23 +762,23 @@ yy50: yych = *++YYCURSOR;
yy51: ++YYCURSOR; yy51: ++YYCURSOR;
goto yy52; goto yy52;
yy52: yy52:
#line 469 "token.re" #line 470 "token.re"
{ goto TransferMethod; } { goto TransferMethod; }
#line 766 "<stdout>" #line 767 "<stdout>"
yy53: ++YYCURSOR; yy53: ++YYCURSOR;
goto yy54; goto yy54;
yy54: yy54:
#line 471 "token.re" #line 472 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto SingleQuote; } goto SingleQuote; }
#line 773 "<stdout>" #line 774 "<stdout>"
yy55: ++YYCURSOR; yy55: ++YYCURSOR;
goto yy56; goto yy56;
yy56: yy56:
#line 474 "token.re" #line 475 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
goto DoubleQuote; } goto DoubleQuote; }
#line 780 "<stdout>" #line 781 "<stdout>"
yy57: yyaccept = 1; yy57: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -799,27 +800,27 @@ yy57: yyaccept = 1;
yy58: ++YYCURSOR; yy58: ++YYCURSOR;
goto yy59; goto yy59;
yy59: yy59:
#line 484 "token.re" #line 485 "token.re"
{ eat_comments( parser ); { eat_comments( parser );
goto Document; goto Document;
} }
#line 806 "<stdout>" #line 807 "<stdout>"
yy60: ++YYCURSOR; yy60: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy66; goto yy66;
yy61: yy61:
#line 488 "token.re" #line 489 "token.re"
{ goto Document; } { goto Document; }
#line 813 "<stdout>" #line 814 "<stdout>"
yy62: ++YYCURSOR; yy62: ++YYCURSOR;
goto yy63; goto yy63;
yy63: yy63:
#line 490 "token.re" #line 491 "token.re"
{ ENSURE_YAML_IEND(lvl, -1); { ENSURE_YAML_IEND(lvl, -1);
YYPOS(0); YYPOS(0);
return 0; return 0;
} }
#line 822 "<stdout>" #line 823 "<stdout>"
yy64: yych = *++YYCURSOR; yy64: yych = *++YYCURSOR;
goto yy40; goto yy40;
yy65: ++YYCURSOR; yy65: ++YYCURSOR;
@ -858,14 +859,14 @@ yy69: YYCURSOR = YYMARKER;
yy70: ++YYCURSOR; yy70: ++YYCURSOR;
goto yy71; goto yy71;
yy71: yy71:
#line 477 "token.re" #line 478 "token.re"
{ if ( is_newline( YYCURSOR - 1 ) ) { if ( is_newline( YYCURSOR - 1 ) )
{ {
YYCURSOR--; YYCURSOR--;
} }
goto ScalarBlock; goto ScalarBlock;
} }
#line 868 "<stdout>" #line 869 "<stdout>"
yy72: ++YYCURSOR; yy72: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -947,12 +948,12 @@ yy76: switch(yych){
default: goto yy77; default: goto yy77;
} }
yy77: yy77:
#line 464 "token.re" #line 465 "token.re"
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1); { ENSURE_YAML_IOPEN(lvl, doc_level, 1);
sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
return YAML_ALIAS; return YAML_ALIAS;
} }
#line 955 "<stdout>" #line 956 "<stdout>"
yy78: ++YYCURSOR; yy78: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1021,7 +1022,7 @@ yy79: switch(yych){
default: goto yy80; default: goto yy80;
} }
yy80: yy80:
#line 453 "token.re" #line 454 "token.re"
{ sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); { sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 );
/* /*
@ -1032,11 +1033,11 @@ yy80:
syck_hdlr_remove_anchor(parser, sycklval->name); syck_hdlr_remove_anchor(parser, sycklval->name);
return YAML_ANCHOR; return YAML_ANCHOR;
} }
#line 1035 "<stdout>" #line 1036 "<stdout>"
yy81: ++YYCURSOR; yy81: ++YYCURSOR;
goto yy82; goto yy82;
yy82: yy82:
#line 439 "token.re" #line 440 "token.re"
{ ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); { ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1);
FORCE_NEXT_TOKEN(YAML_IOPEN); FORCE_NEXT_TOKEN(YAML_IOPEN);
if ( *YYCURSOR == '#' || is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) ) if ( *YYCURSOR == '#' || is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) )
@ -1050,7 +1051,7 @@ yy82:
} }
return YYTOKEN[0]; return YYTOKEN[0];
} }
#line 1053 "<stdout>" #line 1054 "<stdout>"
yy83: ++YYCURSOR; yy83: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1067,11 +1068,11 @@ yy85: yych = *++YYCURSOR;
yy86: ++YYCURSOR; yy86: ++YYCURSOR;
goto yy87; goto yy87;
yy87: yy87:
#line 435 "token.re" #line 436 "token.re"
{ YYPOS(1); { YYPOS(1);
return YYTOKEN[0]; return YYTOKEN[0];
} }
#line 1074 "<stdout>" #line 1075 "<stdout>"
yy88: ++YYCURSOR; yy88: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1103,7 +1104,7 @@ yy93: ++YYCURSOR;
default: goto yy69; default: goto yy69;
} }
} }
#line 499 "token.re" #line 500 "token.re"
} }
@ -1112,7 +1113,7 @@ Directive:
YYTOKTMP = YYCURSOR; YYTOKTMP = YYCURSOR;
#line 1115 "<stdout>" #line 1116 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -1212,18 +1213,18 @@ yy97: yyaccept = 0;
default: goto yy98; default: goto yy98;
} }
yy98: yy98:
#line 512 "token.re" #line 513 "token.re"
{ YYCURSOR = YYTOKTMP; { YYCURSOR = YYTOKTMP;
return YAML_DOCSEP; return YAML_DOCSEP;
} }
#line 1219 "<stdout>" #line 1220 "<stdout>"
yy99: ++YYCURSOR; yy99: ++YYCURSOR;
yych = *YYCURSOR; yych = *YYCURSOR;
goto yy103; goto yy103;
yy100: yy100:
#line 510 "token.re" #line 511 "token.re"
{ goto Directive; } { goto Directive; }
#line 1226 "<stdout>" #line 1227 "<stdout>"
yy101: yych = *++YYCURSOR; yy101: yych = *++YYCURSOR;
goto yy98; goto yy98;
yy102: ++YYCURSOR; yy102: ++YYCURSOR;
@ -1477,11 +1478,11 @@ yy108: switch(yych){
default: goto yy109; default: goto yy109;
} }
yy109: yy109:
#line 508 "token.re" #line 509 "token.re"
{ goto Directive; } { goto Directive; }
#line 1482 "<stdout>" #line 1483 "<stdout>"
} }
#line 515 "token.re" #line 516 "token.re"
} }
@ -1504,7 +1505,7 @@ Plain2:
Plain3: Plain3:
#line 1507 "<stdout>" #line 1508 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -1529,7 +1530,7 @@ yy112: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy142; goto yy142;
yy113: yy113:
#line 538 "token.re" #line 539 "token.re"
{ int indt_len, nl_count = 0; { int indt_len, nl_count = 0;
SyckLevel *lvl; SyckLevel *lvl;
char *tok = YYTOKEN; char *tok = YYTOKEN;
@ -1543,8 +1544,8 @@ yy113:
while ( YYTOKEN < YYCURSOR ) while ( YYTOKEN < YYCURSOR )
{ {
int nl_len = 0; int nl_len = newline_len( YYTOKEN++ );
if ( nl_len = newline_len( YYTOKEN++ ) ) if ( nl_len )
{ {
nl_count++; nl_count++;
YYTOKEN += nl_len - 1; YYTOKEN += nl_len - 1;
@ -1565,18 +1566,18 @@ yy113:
goto Plain2; goto Plain2;
} }
#line 1568 "<stdout>" #line 1569 "<stdout>"
yy114: ++YYCURSOR; yy114: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case 0x0A: goto yy141; case 0x0A: goto yy141;
default: goto yy115; default: goto yy115;
} }
yy115: yy115:
#line 625 "token.re" #line 626 "token.re"
{ QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN); { QUOTECATS(qstr, qcapa, qidx, YYTOKEN, YYCURSOR - YYTOKEN);
goto Plain2; goto Plain2;
} }
#line 1579 "<stdout>" #line 1580 "<stdout>"
yy116: yyaccept = 1; yy116: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -1596,7 +1597,7 @@ yy117: yyaccept = 1;
yy118: ++YYCURSOR; yy118: ++YYCURSOR;
goto yy119; goto yy119;
yy119: yy119:
#line 587 "token.re" #line 588 "token.re"
{ if ( plvl->status != syck_lvl_imap ) { if ( plvl->status != syck_lvl_imap )
{ {
PLAIN_NOT_INL(); PLAIN_NOT_INL();
@ -1607,11 +1608,11 @@ yy119:
} }
RETURN_IMPLICIT(); RETURN_IMPLICIT();
} }
#line 1610 "<stdout>" #line 1611 "<stdout>"
yy120: ++YYCURSOR; yy120: ++YYCURSOR;
goto yy121; goto yy121;
yy121: yy121:
#line 598 "token.re" #line 599 "token.re"
{ if ( plvl->status != syck_lvl_iseq ) { if ( plvl->status != syck_lvl_iseq )
{ {
PLAIN_NOT_INL(); PLAIN_NOT_INL();
@ -1622,14 +1623,14 @@ yy121:
} }
RETURN_IMPLICIT(); RETURN_IMPLICIT();
} }
#line 1625 "<stdout>" #line 1626 "<stdout>"
yy122: ++YYCURSOR; yy122: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '#': goto yy128; case '#': goto yy128;
default: goto yy123; default: goto yy123;
} }
yy123: yy123:
#line 615 "token.re" #line 616 "token.re"
{ if ( qidx == 0 ) { if ( qidx == 0 )
{ {
goto Plain2; goto Plain2;
@ -1639,13 +1640,13 @@ yy123:
goto Plain3; goto Plain3;
} }
} }
#line 1642 "<stdout>" #line 1643 "<stdout>"
yy124: ++YYCURSOR; yy124: ++YYCURSOR;
goto yy125; goto yy125;
yy125: yy125:
#line 613 "token.re" #line 614 "token.re"
{ RETURN_IMPLICIT(); } { RETURN_IMPLICIT(); }
#line 1648 "<stdout>" #line 1649 "<stdout>"
yy126: yych = *++YYCURSOR; yy126: yych = *++YYCURSOR;
goto yy123; goto yy123;
yy127: yych = *++YYCURSOR; yy127: yych = *++YYCURSOR;
@ -1653,15 +1654,15 @@ yy127: yych = *++YYCURSOR;
yy128: ++YYCURSOR; yy128: ++YYCURSOR;
goto yy129; goto yy129;
yy129: yy129:
#line 609 "token.re" #line 610 "token.re"
{ eat_comments( parser ); { eat_comments( parser );
RETURN_IMPLICIT(); RETURN_IMPLICIT();
} }
#line 1660 "<stdout>" #line 1661 "<stdout>"
yy130: ++YYCURSOR; yy130: ++YYCURSOR;
goto yy131; goto yy131;
yy131: yy131:
#line 576 "token.re" #line 577 "token.re"
{ if ( plvl->status != syck_lvl_iseq && plvl->status != syck_lvl_imap ) { if ( plvl->status != syck_lvl_iseq && plvl->status != syck_lvl_imap )
{ {
PLAIN_NOT_INL(); PLAIN_NOT_INL();
@ -1672,7 +1673,7 @@ yy131:
} }
RETURN_IMPLICIT(); RETURN_IMPLICIT();
} }
#line 1675 "<stdout>" #line 1676 "<stdout>"
yy132: ++YYCURSOR; yy132: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1694,9 +1695,9 @@ yy135: YYCURSOR = YYMARKER;
yy136: ++YYCURSOR; yy136: ++YYCURSOR;
goto yy137; goto yy137;
yy137: yy137:
#line 574 "token.re" #line 575 "token.re"
{ RETURN_IMPLICIT(); } { RETURN_IMPLICIT(); }
#line 1699 "<stdout>" #line 1700 "<stdout>"
yy138: ++YYCURSOR; yy138: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -1728,7 +1729,7 @@ yy143: ++YYCURSOR;
default: goto yy135; default: goto yy135;
} }
} }
#line 629 "token.re" #line 630 "token.re"
} }
@ -1742,7 +1743,7 @@ SingleQuote2:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 1745 "<stdout>" #line 1746 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -1762,7 +1763,7 @@ yy146: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy157; goto yy157;
yy147: yy147:
#line 643 "token.re" #line 644 "token.re"
{ int indt_len; { int indt_len;
int nl_count = 0; int nl_count = 0;
SyckLevel *lvl; SyckLevel *lvl;
@ -1780,8 +1781,8 @@ yy147:
while ( YYTOKEN < YYCURSOR ) while ( YYTOKEN < YYCURSOR )
{ {
int nl_len = 0; int nl_len = newline_len( YYTOKEN++ );
if ( nl_len = newline_len( YYTOKEN++ ) ) if ( nl_len )
{ {
nl_count++; nl_count++;
YYTOKEN += nl_len - 1; YYTOKEN += nl_len - 1;
@ -1802,25 +1803,25 @@ yy147:
goto SingleQuote2; goto SingleQuote2;
} }
#line 1805 "<stdout>" #line 1806 "<stdout>"
yy148: ++YYCURSOR; yy148: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case 0x0A: goto yy156; case 0x0A: goto yy156;
default: goto yy149; default: goto yy149;
} }
yy149: yy149:
#line 710 "token.re" #line 711 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto SingleQuote2; goto SingleQuote2;
} }
#line 1816 "<stdout>" #line 1817 "<stdout>"
yy150: ++YYCURSOR; yy150: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case '\'': goto yy154; case '\'': goto yy154;
default: goto yy151; default: goto yy151;
} }
yy151: yy151:
#line 687 "token.re" #line 688 "token.re"
{ SyckLevel *lvl; { SyckLevel *lvl;
SyckNode *n = syck_alloc_str(); SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL(); lvl = CURRENT_LEVEL();
@ -1843,7 +1844,7 @@ yy151:
sycklval->nodeData = n; sycklval->nodeData = n;
return YAML_PLAIN; return YAML_PLAIN;
} }
#line 1846 "<stdout>" #line 1847 "<stdout>"
yy152: yych = *++YYCURSOR; yy152: yych = *++YYCURSOR;
goto yy151; goto yy151;
yy153: yych = *++YYCURSOR; yy153: yych = *++YYCURSOR;
@ -1851,11 +1852,11 @@ yy153: yych = *++YYCURSOR;
yy154: ++YYCURSOR; yy154: ++YYCURSOR;
goto yy155; goto yy155;
yy155: yy155:
#line 683 "token.re" #line 684 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, '\''); { QUOTECAT(qstr, qcapa, qidx, '\'');
goto SingleQuote2; goto SingleQuote2;
} }
#line 1858 "<stdout>" #line 1859 "<stdout>"
yy156: yyaccept = 0; yy156: yyaccept = 0;
YYMARKER = ++YYCURSOR; YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
@ -1878,7 +1879,7 @@ yy159: YYCURSOR = YYMARKER;
case 0: goto yy147; case 0: goto yy147;
} }
} }
#line 714 "token.re" #line 715 "token.re"
} }
@ -1896,7 +1897,7 @@ DoubleQuote2:
#line 1899 "<stdout>" #line 1900 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -1917,7 +1918,7 @@ yy162: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy184; goto yy184;
yy163: yy163:
#line 732 "token.re" #line 733 "token.re"
{ int indt_len; { int indt_len;
int nl_count = 0; int nl_count = 0;
SyckLevel *lvl; SyckLevel *lvl;
@ -1937,8 +1938,8 @@ yy163:
{ {
while ( YYTOKEN < YYCURSOR ) while ( YYTOKEN < YYCURSOR )
{ {
int nl_len = 0; int nl_len = newline_len( YYTOKEN++ );
if ( nl_len = newline_len( YYTOKEN++ ) ) if ( nl_len )
{ {
nl_count++; nl_count++;
YYTOKEN += nl_len - 1; YYTOKEN += nl_len - 1;
@ -1961,18 +1962,18 @@ yy163:
keep_nl = 1; keep_nl = 1;
goto DoubleQuote2; goto DoubleQuote2;
} }
#line 1964 "<stdout>" #line 1965 "<stdout>"
yy164: ++YYCURSOR; yy164: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case 0x0A: goto yy183; case 0x0A: goto yy183;
default: goto yy165; default: goto yy165;
} }
yy165: yy165:
#line 818 "token.re" #line 819 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto DoubleQuote2; goto DoubleQuote2;
} }
#line 1975 "<stdout>" #line 1976 "<stdout>"
yy166: yyaccept = 1; yy166: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -1988,7 +1989,7 @@ yy166: yyaccept = 1;
yy167: ++YYCURSOR; yy167: ++YYCURSOR;
goto yy168; goto yy168;
yy168: yy168:
#line 795 "token.re" #line 796 "token.re"
{ SyckLevel *lvl; { SyckLevel *lvl;
SyckNode *n = syck_alloc_str(); SyckNode *n = syck_alloc_str();
lvl = CURRENT_LEVEL(); lvl = CURRENT_LEVEL();
@ -2011,7 +2012,7 @@ yy168:
sycklval->nodeData = n; sycklval->nodeData = n;
return YAML_PLAIN; return YAML_PLAIN;
} }
#line 2014 "<stdout>" #line 2015 "<stdout>"
yy169: yych = *++YYCURSOR; yy169: yych = *++YYCURSOR;
goto yy168; goto yy168;
yy170: yych = *++YYCURSOR; yy170: yych = *++YYCURSOR;
@ -2034,12 +2035,12 @@ yy173: YYCURSOR = YYMARKER;
yy174: ++YYCURSOR; yy174: ++YYCURSOR;
goto yy175; goto yy175;
yy175: yy175:
#line 790 "token.re" #line 791 "token.re"
{ keep_nl = 0; { keep_nl = 0;
YYCURSOR--; YYCURSOR--;
goto DoubleQuote2; goto DoubleQuote2;
} }
#line 2042 "<stdout>" #line 2043 "<stdout>"
yy176: yych = *++YYCURSOR; yy176: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case 0x0A: goto yy174; case 0x0A: goto yy174;
@ -2072,12 +2073,12 @@ yy177: yych = *++YYCURSOR;
yy178: ++YYCURSOR; yy178: ++YYCURSOR;
goto yy179; goto yy179;
yy179: yy179:
#line 776 "token.re" #line 777 "token.re"
{ char ch = *( YYCURSOR - 1 ); { char ch = *( YYCURSOR - 1 );
QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
goto DoubleQuote2; goto DoubleQuote2;
} }
#line 2080 "<stdout>" #line 2081 "<stdout>"
yy180: yych = *++YYCURSOR; yy180: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -2105,7 +2106,7 @@ yy180: yych = *++YYCURSOR;
yy181: ++YYCURSOR; yy181: ++YYCURSOR;
goto yy182; goto yy182;
yy182: yy182:
#line 781 "token.re" #line 782 "token.re"
{ long ch; { long ch;
char *chr_text = syck_strndup( YYTOKEN, 4 ); char *chr_text = syck_strndup( YYTOKEN, 4 );
chr_text[0] = '0'; chr_text[0] = '0';
@ -2114,7 +2115,7 @@ yy182:
QUOTECAT(qstr, qcapa, qidx, ch); QUOTECAT(qstr, qcapa, qidx, ch);
goto DoubleQuote2; goto DoubleQuote2;
} }
#line 2117 "<stdout>" #line 2118 "<stdout>"
yy183: yyaccept = 0; yy183: yyaccept = 0;
YYMARKER = ++YYCURSOR; YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
@ -2133,7 +2134,7 @@ yy185: ++YYCURSOR;
default: goto yy173; default: goto yy173;
} }
} }
#line 822 "token.re" #line 823 "token.re"
} }
@ -2147,7 +2148,7 @@ TransferMethod2:
YYTOKTMP = YYCURSOR; YYTOKTMP = YYCURSOR;
#line 2150 "<stdout>" #line 2151 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -2167,7 +2168,7 @@ yy186:
yy188: ++YYCURSOR; yy188: ++YYCURSOR;
goto yy189; goto yy189;
yy189: yy189:
#line 836 "token.re" #line 837 "token.re"
{ SyckLevel *lvl; { SyckLevel *lvl;
YYCURSOR = YYTOKTMP; YYCURSOR = YYTOKTMP;
if ( YYCURSOR == YYTOKEN + 1 ) if ( YYCURSOR == YYTOKEN + 1 )
@ -2217,7 +2218,7 @@ yy189:
return YAML_TRANSFER; return YAML_TRANSFER;
} }
#line 2220 "<stdout>" #line 2221 "<stdout>"
yy190: yych = *++YYCURSOR; yy190: yych = *++YYCURSOR;
goto yy189; goto yy189;
yy191: yych = *++YYCURSOR; yy191: yych = *++YYCURSOR;
@ -2228,11 +2229,11 @@ yy192: ++YYCURSOR;
default: goto yy193; default: goto yy193;
} }
yy193: yy193:
#line 903 "token.re" #line 904 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto TransferMethod2; goto TransferMethod2;
} }
#line 2235 "<stdout>" #line 2236 "<stdout>"
yy194: yyaccept = 0; yy194: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -2275,12 +2276,12 @@ yy197: YYCURSOR = YYMARKER;
yy198: ++YYCURSOR; yy198: ++YYCURSOR;
goto yy199; goto yy199;
yy199: yy199:
#line 889 "token.re" #line 890 "token.re"
{ char ch = *( YYCURSOR - 1 ); { char ch = *( YYCURSOR - 1 );
QUOTECAT(qstr, qcapa, qidx, escape_seq( ch )); QUOTECAT(qstr, qcapa, qidx, escape_seq( ch ));
goto TransferMethod2; goto TransferMethod2;
} }
#line 2283 "<stdout>" #line 2284 "<stdout>"
yy200: yych = *++YYCURSOR; yy200: yych = *++YYCURSOR;
switch(yych){ switch(yych){
case '0': case '0':
@ -2308,7 +2309,7 @@ yy200: yych = *++YYCURSOR;
yy201: ++YYCURSOR; yy201: ++YYCURSOR;
goto yy202; goto yy202;
yy202: yy202:
#line 894 "token.re" #line 895 "token.re"
{ long ch; { long ch;
char *chr_text = syck_strndup( YYTOKTMP, 4 ); char *chr_text = syck_strndup( YYTOKTMP, 4 );
chr_text[0] = '0'; chr_text[0] = '0';
@ -2317,7 +2318,7 @@ yy202:
QUOTECAT(qstr, qcapa, qidx, ch); QUOTECAT(qstr, qcapa, qidx, ch);
goto TransferMethod2; goto TransferMethod2;
} }
#line 2320 "<stdout>" #line 2321 "<stdout>"
yy203: ++YYCURSOR; yy203: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -2327,7 +2328,7 @@ yy204: switch(yych){
default: goto yy189; default: goto yy189;
} }
} }
#line 908 "token.re" #line 909 "token.re"
} }
@ -2374,7 +2375,7 @@ ScalarBlock2:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 2377 "<stdout>" #line 2378 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -2395,7 +2396,7 @@ yy207: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy226; goto yy226;
yy208: yy208:
#line 955 "token.re" #line 956 "token.re"
{ char *pacer; { char *pacer;
char *tok = YYTOKEN; char *tok = YYTOKEN;
int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0; int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0;
@ -2428,8 +2429,8 @@ yy208:
pacer = YYTOKEN; pacer = YYTOKEN;
while ( pacer < YYCURSOR ) while ( pacer < YYCURSOR )
{ {
int nl_len = 0; int nl_len = newline_len( pacer++ );
if ( nl_len = newline_len( pacer++ ) ) if ( nl_len )
{ {
nl_count++; nl_count++;
pacer += nl_len - 1; pacer += nl_len - 1;
@ -2465,22 +2466,22 @@ yy208:
} }
goto ScalarBlock2; goto ScalarBlock2;
} }
#line 2468 "<stdout>" #line 2469 "<stdout>"
yy209: ++YYCURSOR; yy209: ++YYCURSOR;
switch((yych = *YYCURSOR)) { switch((yych = *YYCURSOR)) {
case 0x0A: goto yy225; case 0x0A: goto yy225;
default: goto yy210; default: goto yy210;
} }
yy210: yy210:
#line 1064 "token.re" #line 1065 "token.re"
{ QUOTECAT(qstr, qcapa, qidx, *YYTOKEN); { QUOTECAT(qstr, qcapa, qidx, *YYTOKEN);
goto ScalarBlock2; goto ScalarBlock2;
} }
#line 2479 "<stdout>" #line 2480 "<stdout>"
yy211: ++YYCURSOR; yy211: ++YYCURSOR;
goto yy212; goto yy212;
yy212: yy212:
#line 1026 "token.re" #line 1027 "token.re"
{ lvl = CURRENT_LEVEL(); { lvl = CURRENT_LEVEL();
if ( lvl->status != syck_lvl_block ) if ( lvl->status != syck_lvl_block )
{ {
@ -2493,16 +2494,16 @@ yy212:
} }
goto ScalarBlock2; goto ScalarBlock2;
} }
#line 2496 "<stdout>" #line 2497 "<stdout>"
yy213: ++YYCURSOR; yy213: ++YYCURSOR;
goto yy214; goto yy214;
yy214: yy214:
#line 1040 "token.re" #line 1041 "token.re"
{ YYCURSOR--; { YYCURSOR--;
POP_LEVEL(); POP_LEVEL();
RETURN_YAML_BLOCK(); RETURN_YAML_BLOCK();
} }
#line 2505 "<stdout>" #line 2506 "<stdout>"
yy215: yyaccept = 1; yy215: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
switch(yych){ switch(yych){
@ -2531,7 +2532,7 @@ yy219: yych = *++YYCURSOR;
yy220: ++YYCURSOR; yy220: ++YYCURSOR;
goto yy221; goto yy221;
yy221: yy221:
#line 1045 "token.re" #line 1046 "token.re"
{ if ( YYTOKEN == YYLINEPTR ) { if ( YYTOKEN == YYLINEPTR )
{ {
if ( blockType == BLOCK_FOLD && qidx > 0 ) if ( blockType == BLOCK_FOLD && qidx > 0 )
@ -2550,7 +2551,7 @@ yy221:
goto ScalarBlock2; goto ScalarBlock2;
} }
} }
#line 2553 "<stdout>" #line 2554 "<stdout>"
yy222: ++YYCURSOR; yy222: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1); if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR; yych = *YYCURSOR;
@ -2582,7 +2583,7 @@ yy227: ++YYCURSOR;
default: goto yy218; default: goto yy218;
} }
} }
#line 1069 "token.re" #line 1070 "token.re"
} }
@ -2598,7 +2599,7 @@ Comment:
YYTOKEN = YYCURSOR; YYTOKEN = YYCURSOR;
#line 2601 "<stdout>" #line 2602 "<stdout>"
{ {
YYCTYPE yych; YYCTYPE yych;
unsigned int yyaccept; unsigned int yyaccept;
@ -2616,11 +2617,11 @@ yy228:
yy230: ++YYCURSOR; yy230: ++YYCURSOR;
goto yy231; goto yy231;
yy231: yy231:
#line 1085 "token.re" #line 1086 "token.re"
{ YYCURSOR = YYTOKEN; { YYCURSOR = YYTOKEN;
return; return;
} }
#line 2623 "<stdout>" #line 2624 "<stdout>"
yy232: yyaccept = 0; yy232: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR); yych = *(YYMARKER = ++YYCURSOR);
goto yy237; goto yy237;
@ -2630,10 +2631,10 @@ yy233: ++YYCURSOR;
default: goto yy234; default: goto yy234;
} }
yy234: yy234:
#line 1089 "token.re" #line 1090 "token.re"
{ goto Comment; { goto Comment;
} }
#line 2636 "<stdout>" #line 2637 "<stdout>"
yy235: yych = *++YYCURSOR; yy235: yych = *++YYCURSOR;
goto yy234; goto yy234;
yy236: yyaccept = 0; yy236: yyaccept = 0;
@ -2658,7 +2659,7 @@ yy239: YYCURSOR = YYMARKER;
case 0: goto yy231; case 0: goto yy231;
} }
} }
#line 1092 "token.re" #line 1093 "token.re"
} }

View file

@ -226,12 +226,17 @@ syck_yaml2byte(char *yamlstr)
syck_parser_implicit_typing( parser, 1 ); syck_parser_implicit_typing( parser, 1 );
syck_parser_taguri_expansion( parser, 1 ); syck_parser_taguri_expansion( parser, 1 );
oid = syck_parse( parser ); oid = syck_parse( parser );
syck_lookup_sym( parser, oid, (char **)&sav );
ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 ); if ( syck_lookup_sym( parser, oid, (char **)&sav ) == 1 ) {
ret[0] = '\0'; ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
strcat( ret, "D\n" ); ret[0] = '\0';
strcat( ret, sav->buffer ); strcat( ret, "D\n" );
strcat( ret, sav->buffer );
}
else
{
ret = NULL;
}
syck_free_parser( parser ); syck_free_parser( parser );
return ret; return ret;

View file

@ -67,8 +67,8 @@ module YAML
end end
def at( seg ) def at( seg )
if Hash === @value and @value.has_key?( seg ) if Hash === @value
@value[seg][1] self[seg]
elsif Array === @value and seg =~ /\A\d+\Z/ and @value[seg.to_i] elsif Array === @value and seg =~ /\A\d+\Z/ and @value[seg.to_i]
@value[seg.to_i] @value[seg.to_i]
end end
@ -99,8 +99,8 @@ module YAML
@value.collect { |v| @value.collect { |v|
idx += 1 idx += 1
if Hash === @value if Hash === @value
match_init = [v[0], v[1][1]] match_init = [v[0].transform, v[1]]
match_deep = v[1][1].match_segment( ypath, depth ) match_deep = v[1].match_segment( ypath, depth )
else else
match_init = [idx, v] match_init = [idx, v]
match_deep = v.match_segment( ypath, depth ) match_deep = v.match_segment( ypath, depth )
@ -127,7 +127,7 @@ module YAML
@value.collect { |h| @value.collect { |h|
idx += 1 idx += 1
if Hash === @value if Hash === @value
[h[0], h[1][1]] [h[0].transform, h[1]]
else else
[idx, h] [idx, h]
end end
@ -182,9 +182,9 @@ module YAML
# We want the node to act like as Hash # We want the node to act like as Hash
# if it is. # if it is.
# #
def []( *k ) def []( *key )
if Hash === @value if Hash === @value
v = @value.[]( *k ) v = @value.detect { |k,v| k.transform == key.first }
v[1] if v v[1] if v
elsif Array === @value elsif Array === @value
@value.[]( *k ) @value.[]( *k )

View file

@ -137,6 +137,7 @@ end
class String class String
yaml_as "tag:ruby.yaml.org,2002:string" yaml_as "tag:ruby.yaml.org,2002:string"
yaml_as "tag:yaml.org,2002:binary"
yaml_as "tag:yaml.org,2002:str" yaml_as "tag:yaml.org,2002:str"
def is_complex_yaml? def is_complex_yaml?
to_yaml_style or not to_yaml_properties.empty? or self =~ /\n.+/ to_yaml_style or not to_yaml_properties.empty? or self =~ /\n.+/
@ -145,6 +146,7 @@ class String
( self.count( "^ -~", "^\r\n" ) / self.size > 0.3 || self.count( "\x00" ) > 0 ) unless empty? ( self.count( "^ -~", "^\r\n" ) / self.size > 0.3 || self.count( "\x00" ) > 0 ) unless empty?
end end
def String.yaml_new( klass, tag, val ) def String.yaml_new( klass, tag, val )
val = val.unpack("m")[0] if tag == "tag:yaml.org,2002:binary"
val = { 'str' => val } if String === val val = { 'str' => val } if String === val
if Hash === val if Hash === val
s = klass.allocate s = klass.allocate
@ -163,7 +165,7 @@ class String
if is_binary_data? if is_binary_data?
out.scalar( "tag:yaml.org,2002:binary", [self].pack("m"), :literal ) out.scalar( "tag:yaml.org,2002:binary", [self].pack("m"), :literal )
elsif to_yaml_properties.empty? elsif to_yaml_properties.empty?
out.scalar( taguri, self, to_yaml_style ) out.scalar( taguri, self, self =~ /^:/ ? :quote2 : to_yaml_style )
else else
out.map( taguri, to_yaml_style ) do |map| out.map( taguri, to_yaml_style ) do |map|
map.add( 'str', "#{self}" ) map.add( 'str', "#{self}" )
@ -179,7 +181,6 @@ end
class Symbol class Symbol
yaml_as "tag:ruby.yaml.org,2002:symbol" yaml_as "tag:ruby.yaml.org,2002:symbol"
yaml_as "tag:ruby.yaml.org,2002:sym" yaml_as "tag:ruby.yaml.org,2002:sym"
# yaml_implicit /^:/, :yaml_new
def Symbol.yaml_new( klass, tag, val ) def Symbol.yaml_new( klass, tag, val )
if String === val if String === val
val.intern val.intern