From 52e0ab245a1c7d446861f8882f741356b4d24bec Mon Sep 17 00:00:00 2001 From: why Date: Mon, 12 Jan 2004 22:55:09 +0000 Subject: * ext/syck/bytecode.c: turn off default implicit typing. * ext/syck/implicit.c: detect base60 integers. * ext/syck/rubyext.c: handle base60, as well as hex and octal with commas. implicit typing of ruby symbols. * test/yaml/test_yaml.rb: add test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/bytecode.c | 8 +- ext/syck/implicit.c | 1183 +++++++++++++++++++++++++++------------------------ ext/syck/rubyext.c | 124 ++++-- 3 files changed, 698 insertions(+), 617 deletions(-) (limited to 'ext') diff --git a/ext/syck/bytecode.c b/ext/syck/bytecode.c index df15658a73..eff21d2046 100644 --- a/ext/syck/bytecode.c +++ b/ext/syck/bytecode.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Sun Nov 23 14:51:02 2003 */ +/* Generated by re2c 0.5 on Mon Jan 12 11:40:10 2004 */ #line 1 "bytecode.re" /* * bytecode.re @@ -510,7 +510,7 @@ yy44: yych = *++YYCURSOR; Directive: { - YYTOKTMP = YYCURSOR; + YYTOKEN = YYCURSOR; { YYCTYPE yych; @@ -611,7 +611,7 @@ yy48: yyaccept = 0; } yy49: #line 400 - { YYCURSOR = YYTOKTMP; + { YYCURSOR = YYTOKEN; return YAML_DOCSEP; } yy50: yych = *++YYCURSOR; @@ -876,7 +876,7 @@ yy58: yych = *++YYCURSOR; Comment: { - YYTOKTMP = YYCURSOR; + YYTOKEN = YYCURSOR; { YYCTYPE yych; diff --git a/ext/syck/implicit.c b/ext/syck/implicit.c index 1dfeac3953..b6f123740f 100644 --- a/ext/syck/implicit.c +++ b/ext/syck/implicit.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Thu Oct 16 14:12:57 2003 */ +/* Generated by re2c 0.5 on Mon Jan 12 00:56:58 2004 */ #line 1 "implicit.re" /* * implicit.re @@ -91,86 +91,86 @@ yy0: yy2: yych = *++YYCURSOR; if(yych <= '\000') goto yy6; yy3: -#line 116 +#line 119 { return "str"; } yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'o': goto yy163; - case 'u': goto yy191; + case 'o': goto yy168; + case 'u': goto yy196; default: goto yy3; } yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'O': case 'o': goto yy163; - case 'U': goto yy186; - case 'u': goto yy187; + case 'O': case 'o': goto yy168; + case 'U': goto yy191; + case 'u': goto yy192; default: goto yy3; } yy6: yych = *++YYCURSOR; yy7: -#line 82 +#line 83 { return "null"; } yy8: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'r': goto yy184; + case 'r': goto yy189; default: goto yy3; } yy9: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'R': goto yy180; - case 'r': goto yy181; + case 'R': goto yy185; + case 'r': goto yy186; default: goto yy3; } yy10: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'e': goto yy179; + case 'e': goto yy184; default: goto yy3; } yy11: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'E': goto yy177; - case 'e': goto yy178; + case 'E': goto yy182; + case 'e': goto yy183; default: goto yy3; } yy12: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'f': goto yy176; - case 'n': goto yy173; + case 'f': goto yy181; + case 'n': goto yy178; default: goto yy3; } yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'F': goto yy171; - case 'N': case 'n': goto yy173; - case 'f': goto yy172; + case 'F': goto yy176; + case 'N': case 'n': goto yy178; + case 'f': goto yy177; default: goto yy3; } yy14: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'a': goto yy168; + case 'a': goto yy173; default: goto yy3; } yy15: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case 'A': goto yy159; - case 'a': goto yy160; + case 'A': goto yy164; + case 'a': goto yy165; default: goto yy3; } yy16: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case '.': goto yy158; - case '0': goto yy149; + case '.': goto yy163; + case '0': goto yy154; case '1': case '2': case '3': @@ -185,8 +185,8 @@ yy16: yyaccept = 0; yy17: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case '.': goto yy148; - case '0': goto yy149; + case '.': goto yy153; + case '0': goto yy154; case '1': case '2': case '3': @@ -202,7 +202,7 @@ yy18: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ case '\000': goto yy51; - case ',': goto yy133; + case ',': goto yy138; case '.': goto yy49; case '0': case '1': @@ -211,10 +211,11 @@ yy18: yyaccept = 0; case '4': case '5': case '6': - case '7': goto yy131; + case '7': goto yy136; case '8': - case '9': goto yy132; - case 'x': goto yy135; + case '9': goto yy137; + case ':': goto yy53; + case 'x': goto yy140; default: goto yy3; } yy19: yyaccept = 0; @@ -233,6 +234,7 @@ yy19: yyaccept = 0; case '7': case '8': case '9': goto yy46; + case ':': goto yy53; default: goto yy3; } yy20: yyaccept = 0; @@ -263,11 +265,11 @@ yy25: YYCURSOR = YYMARKER; } yy26: yych = *++YYCURSOR; yy27: -#line 114 +#line 117 { return "merge"; } yy28: yych = *++YYCURSOR; yy29: -#line 112 +#line 115 { return "default"; } yy30: yych = *++YYCURSOR; switch(yych){ @@ -305,7 +307,7 @@ yy36: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy37: yych = *++YYCURSOR; yy38: -#line 98 +#line 101 { return "float#inf"; } yy39: yych = *++YYCURSOR; switch(yych){ @@ -326,7 +328,7 @@ yy42: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy43: yych = *++YYCURSOR; yy44: -#line 102 +#line 105 { return "float#nan"; } yy45: yych = *++YYCURSOR; switch(yych){ @@ -344,7 +346,7 @@ yy46: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy65; + case '9': goto yy70; default: goto yy48; } yy47: ++YYCURSOR; @@ -363,15 +365,16 @@ yy48: switch(yych){ case '8': case '9': goto yy47; case '.': goto yy49; + case ':': goto yy53; default: goto yy25; } yy49: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy50: switch(yych){ - case '\000': goto yy55; - case ',': goto yy53; - case '.': goto yy57; + case '\000': goto yy60; + case ',': goto yy58; + case '.': goto yy62; case '0': case '1': case '2': @@ -382,18 +385,64 @@ yy50: switch(yych){ case '7': case '8': case '9': goto yy49; - case 'E': case 'e': goto yy59; + case 'E': case 'e': goto yy64; default: goto yy25; } yy51: yych = *++YYCURSOR; yy52: -#line 92 +#line 95 { return "int"; } yy53: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy54: switch(yych){ - case '\000': goto yy55; + switch(yych){ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': goto yy54; + case '6': + case '7': + case '8': + case '9': goto yy55; + default: goto yy25; + } +yy54: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case '\000': goto yy56; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy55; + case ':': goto yy53; + default: goto yy25; + } +yy55: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych){ + case '\000': goto yy56; + case ':': goto yy53; + default: goto yy25; + } +yy56: yych = *++YYCURSOR; +yy57: +#line 93 + { return "int#base60"; } +yy58: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy59: switch(yych){ + case '\000': goto yy60; case ',': case '0': case '1': case '2': @@ -403,17 +452,17 @@ yy54: switch(yych){ case '6': case '7': case '8': - case '9': goto yy53; + case '9': goto yy58; default: goto yy25; } -yy55: yych = *++YYCURSOR; -yy56: -#line 94 +yy60: yych = *++YYCURSOR; +yy61: +#line 97 { return "float#fix"; } -yy57: ++YYCURSOR; +yy62: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy58: switch(yych){ +yy63: switch(yych){ case '.': case '0': case '1': case '2': @@ -423,23 +472,23 @@ yy58: switch(yych){ case '6': case '7': case '8': - case '9': goto yy57; - case 'E': case 'e': goto yy59; + case '9': goto yy62; + case 'E': case 'e': goto yy64; default: goto yy25; } -yy59: yych = *++YYCURSOR; +yy64: yych = *++YYCURSOR; switch(yych){ - case '+': case '-': goto yy60; + case '+': case '-': goto yy65; default: goto yy25; } -yy60: yych = *++YYCURSOR; +yy65: yych = *++YYCURSOR; if(yych <= '\000') goto yy25; - goto yy62; -yy61: ++YYCURSOR; + goto yy67; +yy66: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy62: switch(yych){ - case '\000': goto yy63; +yy67: switch(yych){ + case '\000': goto yy68; case '0': case '1': case '2': @@ -449,14 +498,14 @@ yy62: switch(yych){ case '6': case '7': case '8': - case '9': goto yy61; + case '9': goto yy66; default: goto yy25; } -yy63: yych = *++YYCURSOR; -yy64: -#line 96 +yy68: yych = *++YYCURSOR; +yy69: +#line 99 { return "float#exp"; } -yy65: yych = *++YYCURSOR; +yy70: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -467,15 +516,15 @@ yy65: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy66; + case '9': goto yy71; default: goto yy48; } -yy66: yych = *++YYCURSOR; +yy71: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy67; + case '-': goto yy72; default: goto yy48; } -yy67: yych = *++YYCURSOR; +yy72: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -486,10 +535,10 @@ yy67: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy68; + case '9': goto yy73; default: goto yy25; } -yy68: yych = *++YYCURSOR; +yy73: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -500,15 +549,15 @@ yy68: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy69; + case '9': goto yy74; default: goto yy25; } -yy69: yych = *++YYCURSOR; +yy74: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy70; + case '-': goto yy75; default: goto yy25; } -yy70: yych = *++YYCURSOR; +yy75: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -519,10 +568,10 @@ yy70: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy71; + case '9': goto yy76; default: goto yy25; } -yy71: yych = *++YYCURSOR; +yy76: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -533,12 +582,12 @@ yy71: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy72; + case '9': goto yy77; default: goto yy25; } -yy72: yych = *++YYCURSOR; +yy77: yych = *++YYCURSOR; switch(yych){ - case '\000': goto yy73; + case '\000': goto yy78; case '0': case '1': case '2': @@ -549,15 +598,15 @@ yy72: yych = *++YYCURSOR; case '7': case '8': case '9': goto yy25; - case 'T': goto yy75; - case 't': goto yy76; - default: goto yy78; + case 'T': goto yy80; + case 't': goto yy81; + default: goto yy83; } -yy73: yych = *++YYCURSOR; -yy74: -#line 104 +yy78: yych = *++YYCURSOR; +yy79: +#line 107 { return "timestamp#ymd"; } -yy75: yych = *++YYCURSOR; +yy80: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -568,10 +617,10 @@ yy75: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy117; + case '9': goto yy122; default: goto yy25; } -yy76: yych = *++YYCURSOR; +yy81: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -582,14 +631,14 @@ yy76: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy99; + case '9': goto yy104; default: goto yy25; } -yy77: ++YYCURSOR; +yy82: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy78: switch(yych){ - case '\t': case ' ': goto yy77; +yy83: switch(yych){ + case '\t': case ' ': goto yy82; case '0': case '1': case '2': @@ -599,10 +648,10 @@ yy78: switch(yych){ case '6': case '7': case '8': - case '9': goto yy79; + case '9': goto yy84; default: goto yy25; } -yy79: yych = *++YYCURSOR; +yy84: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -613,15 +662,15 @@ yy79: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy80; + case '9': goto yy85; default: goto yy25; } -yy80: yych = *++YYCURSOR; +yy85: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy81; + case ':': goto yy86; default: goto yy25; } -yy81: yych = *++YYCURSOR; +yy86: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -632,10 +681,10 @@ yy81: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy82; + case '9': goto yy87; default: goto yy25; } -yy82: yych = *++YYCURSOR; +yy87: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -646,15 +695,15 @@ yy82: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy83; + case '9': goto yy88; default: goto yy25; } -yy83: yych = *++YYCURSOR; +yy88: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy84; + case ':': goto yy89; default: goto yy25; } -yy84: yych = *++YYCURSOR; +yy89: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -665,10 +714,10 @@ yy84: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy85; + case '9': goto yy90; default: goto yy25; } -yy85: yych = *++YYCURSOR; +yy90: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -679,20 +728,20 @@ yy85: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy86; + case '9': goto yy91; default: goto yy25; } -yy86: yych = *++YYCURSOR; +yy91: yych = *++YYCURSOR; switch(yych){ - case '\t': case ' ': goto yy89; - case '.': goto yy87; + case '\t': case ' ': goto yy94; + case '.': goto yy92; default: goto yy25; } -yy87: ++YYCURSOR; +yy92: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy88: switch(yych){ - case '\t': case ' ': goto yy89; +yy93: switch(yych){ + case '\t': case ' ': goto yy94; case '0': case '1': case '2': @@ -702,22 +751,22 @@ yy88: switch(yych){ case '6': case '7': case '8': - case '9': goto yy87; + case '9': goto yy92; default: goto yy25; } -yy89: ++YYCURSOR; +yy94: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy90: switch(yych){ - case '\t': case ' ': goto yy89; - case '+': case '-': goto yy92; - case 'Z': goto yy91; +yy95: switch(yych){ + case '\t': case ' ': goto yy94; + case '+': case '-': goto yy97; + case 'Z': goto yy96; default: goto yy25; } -yy91: yych = *++YYCURSOR; - if(yych <= '\000') goto yy96; +yy96: yych = *++YYCURSOR; + if(yych <= '\000') goto yy101; goto yy25; -yy92: yych = *++YYCURSOR; +yy97: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -728,10 +777,10 @@ yy92: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy93; + case '9': goto yy98; default: goto yy25; } -yy93: yych = *++YYCURSOR; +yy98: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -742,16 +791,16 @@ yy93: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy94; + case '9': goto yy99; default: goto yy25; } -yy94: yych = *++YYCURSOR; +yy99: yych = *++YYCURSOR; switch(yych){ - case '\000': goto yy96; - case ':': goto yy95; + case '\000': goto yy101; + case ':': goto yy100; default: goto yy25; } -yy95: yych = *++YYCURSOR; +yy100: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -762,14 +811,14 @@ yy95: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy98; + case '9': goto yy103; default: goto yy25; } -yy96: yych = *++YYCURSOR; -yy97: -#line 108 +yy101: yych = *++YYCURSOR; +yy102: +#line 111 { return "timestamp#spaced"; } -yy98: yych = *++YYCURSOR; +yy103: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -780,10 +829,10 @@ yy98: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy91; + case '9': goto yy96; default: goto yy25; } -yy99: yych = *++YYCURSOR; +yy104: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -794,15 +843,15 @@ yy99: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy100; + case '9': goto yy105; default: goto yy25; } -yy100: yych = *++YYCURSOR; +yy105: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy101; + case ':': goto yy106; default: goto yy25; } -yy101: yych = *++YYCURSOR; +yy106: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -813,10 +862,10 @@ yy101: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy102; + case '9': goto yy107; default: goto yy25; } -yy102: yych = *++YYCURSOR; +yy107: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -827,15 +876,15 @@ yy102: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy103; + case '9': goto yy108; default: goto yy25; } -yy103: yych = *++YYCURSOR; +yy108: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy104; + case ':': goto yy109; default: goto yy25; } -yy104: yych = *++YYCURSOR; +yy109: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -846,10 +895,10 @@ yy104: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy105; + case '9': goto yy110; default: goto yy25; } -yy105: yych = *++YYCURSOR; +yy110: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -860,12 +909,12 @@ yy105: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy106; + case '9': goto yy111; default: goto yy25; } -yy106: yych = *++YYCURSOR; +yy111: yych = *++YYCURSOR; switch(yych){ - case '.': goto yy107; + case '.': goto yy112; case '0': case '1': case '2': @@ -876,13 +925,13 @@ yy106: yych = *++YYCURSOR; case '7': case '8': case '9': goto yy25; - default: goto yy108; + default: goto yy113; } -yy107: ++YYCURSOR; +yy112: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy108: switch(yych){ - case '+': case '-': goto yy110; +yy113: switch(yych){ + case '+': case '-': goto yy115; case '0': case '1': case '2': @@ -892,14 +941,14 @@ yy108: switch(yych){ case '6': case '7': case '8': - case '9': goto yy107; - case 'Z': goto yy109; + case '9': goto yy112; + case 'Z': goto yy114; default: goto yy25; } -yy109: yych = *++YYCURSOR; - if(yych <= '\000') goto yy114; +yy114: yych = *++YYCURSOR; + if(yych <= '\000') goto yy119; goto yy25; -yy110: yych = *++YYCURSOR; +yy115: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -910,10 +959,10 @@ yy110: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy111; + case '9': goto yy116; default: goto yy25; } -yy111: yych = *++YYCURSOR; +yy116: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -924,16 +973,16 @@ yy111: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy112; + case '9': goto yy117; default: goto yy25; } -yy112: yych = *++YYCURSOR; +yy117: yych = *++YYCURSOR; switch(yych){ - case '\000': goto yy114; - case ':': goto yy113; + case '\000': goto yy119; + case ':': goto yy118; default: goto yy25; } -yy113: yych = *++YYCURSOR; +yy118: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -944,14 +993,14 @@ yy113: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy116; + case '9': goto yy121; default: goto yy25; } -yy114: yych = *++YYCURSOR; -yy115: -#line 106 +yy119: yych = *++YYCURSOR; +yy120: +#line 109 { return "timestamp#iso8601"; } -yy116: yych = *++YYCURSOR; +yy121: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -962,10 +1011,10 @@ yy116: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy109; + case '9': goto yy114; default: goto yy25; } -yy117: yych = *++YYCURSOR; +yy122: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -976,15 +1025,15 @@ yy117: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy118; + case '9': goto yy123; default: goto yy25; } -yy118: yych = *++YYCURSOR; +yy123: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy119; + case ':': goto yy124; default: goto yy25; } -yy119: yych = *++YYCURSOR; +yy124: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -995,10 +1044,10 @@ yy119: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy120; + case '9': goto yy125; default: goto yy25; } -yy120: yych = *++YYCURSOR; +yy125: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1009,15 +1058,15 @@ yy120: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy121; + case '9': goto yy126; default: goto yy25; } -yy121: yych = *++YYCURSOR; +yy126: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy122; + case ':': goto yy127; default: goto yy25; } -yy122: yych = *++YYCURSOR; +yy127: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1028,10 +1077,10 @@ yy122: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy123; + case '9': goto yy128; default: goto yy25; } -yy123: yych = *++YYCURSOR; +yy128: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1042,12 +1091,12 @@ yy123: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy124; + case '9': goto yy129; default: goto yy25; } -yy124: yych = *++YYCURSOR; +yy129: yych = *++YYCURSOR; switch(yych){ - case '.': goto yy125; + case '.': goto yy130; case '0': case '1': case '2': @@ -1058,15 +1107,15 @@ yy124: yych = *++YYCURSOR; case '7': case '8': case '9': goto yy25; - case 'Z': goto yy127; - default: goto yy126; + case 'Z': goto yy132; + default: goto yy131; } -yy125: ++YYCURSOR; +yy130: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; -yy126: switch(yych){ - case '+': case '-': goto yy110; - case '0': goto yy125; +yy131: switch(yych){ + case '+': case '-': goto yy115; + case '0': goto yy130; case '1': case '2': case '3': @@ -1075,20 +1124,20 @@ yy126: switch(yych){ case '6': case '7': case '8': - case '9': goto yy129; - case 'Z': goto yy109; + case '9': goto yy134; + case 'Z': goto yy114; default: goto yy25; } -yy127: yych = *++YYCURSOR; +yy132: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy128: yych = *++YYCURSOR; - goto yy115; -yy129: ++YYCURSOR; +yy133: yych = *++YYCURSOR; + goto yy120; +yy134: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; -yy130: switch(yych){ - case '+': case '-': goto yy110; - case '0': goto yy125; +yy135: switch(yych){ + case '+': case '-': goto yy115; + case '0': goto yy130; case '1': case '2': case '3': @@ -1097,11 +1146,11 @@ yy130: switch(yych){ case '6': case '7': case '8': - case '9': goto yy129; - case 'Z': goto yy127; + case '9': goto yy134; + case 'Z': goto yy132; default: goto yy25; } -yy131: yych = *++YYCURSOR; +yy136: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1110,12 +1159,12 @@ yy131: yych = *++YYCURSOR; case '4': case '5': case '6': - case '7': goto yy146; + case '7': goto yy151; case '8': - case '9': goto yy144; - default: goto yy134; + case '9': goto yy149; + default: goto yy139; } -yy132: yych = *++YYCURSOR; +yy137: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1126,14 +1175,14 @@ yy132: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy144; - default: goto yy143; + case '9': goto yy149; + default: goto yy148; } -yy133: ++YYCURSOR; +yy138: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy134: switch(yych){ - case '\000': goto yy140; +yy139: switch(yych){ + case '\000': goto yy145; case ',': case '0': case '1': case '2': @@ -1141,20 +1190,21 @@ yy134: switch(yych){ case '4': case '5': case '6': - case '7': goto yy133; + case '7': goto yy138; case '.': goto yy49; case '8': - case '9': goto yy142; + case '9': goto yy147; + case ':': goto yy53; default: goto yy25; } -yy135: yych = *++YYCURSOR; +yy140: yych = *++YYCURSOR; if(yych <= '\000') goto yy25; - goto yy137; -yy136: ++YYCURSOR; + goto yy142; +yy141: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy137: switch(yych){ - case '\000': goto yy138; +yy142: switch(yych){ + case '\000': goto yy143; case ',': case '0': case '1': case '2': @@ -1174,21 +1224,21 @@ yy137: switch(yych){ case 'c': case 'd': case 'e': - case 'f': goto yy136; + case 'f': goto yy141; default: goto yy25; } -yy138: yych = *++YYCURSOR; -yy139: -#line 88 +yy143: yych = *++YYCURSOR; +yy144: +#line 89 { return "int#hex"; } -yy140: yych = *++YYCURSOR; -yy141: -#line 90 +yy145: yych = *++YYCURSOR; +yy146: +#line 91 { return "int#oct"; } -yy142: ++YYCURSOR; +yy147: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy143: switch(yych){ +yy148: switch(yych){ case ',': case '0': case '1': case '2': @@ -1198,11 +1248,12 @@ yy143: switch(yych){ case '6': case '7': case '8': - case '9': goto yy142; + case '9': goto yy147; case '.': goto yy49; + case ':': goto yy53; default: goto yy25; } -yy144: yych = *++YYCURSOR; +yy149: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1213,15 +1264,15 @@ yy144: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy145; - default: goto yy143; + case '9': goto yy150; + default: goto yy148; } -yy145: yych = *++YYCURSOR; +yy150: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy67; - default: goto yy143; + case '-': goto yy72; + default: goto yy148; } -yy146: yych = *++YYCURSOR; +yy151: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1230,218 +1281,218 @@ yy146: yych = *++YYCURSOR; case '4': case '5': case '6': - case '7': goto yy147; + case '7': goto yy152; case '8': - case '9': goto yy145; - default: goto yy134; + case '9': goto yy150; + default: goto yy139; } -yy147: yych = *++YYCURSOR; +yy152: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy67; - default: goto yy134; + case '-': goto yy72; + default: goto yy139; } -yy148: yych = *++YYCURSOR; +yy153: yych = *++YYCURSOR; switch(yych){ - case 'I': goto yy151; - case 'i': goto yy150; + case 'I': goto yy156; + case 'i': goto yy155; default: goto yy25; } -yy149: yych = *++YYCURSOR; +yy154: yych = *++YYCURSOR; switch(yych){ case '\000': goto yy51; - case 'x': goto yy135; - default: goto yy134; + case 'x': goto yy140; + default: goto yy139; } -yy150: yych = *++YYCURSOR; +yy155: yych = *++YYCURSOR; switch(yych){ - case 'n': goto yy157; + case 'n': goto yy162; default: goto yy25; } -yy151: yych = *++YYCURSOR; +yy156: yych = *++YYCURSOR; switch(yych){ - case 'N': goto yy152; - case 'n': goto yy153; + case 'N': goto yy157; + case 'n': goto yy158; default: goto yy25; } -yy152: yych = *++YYCURSOR; +yy157: yych = *++YYCURSOR; switch(yych){ - case 'F': goto yy154; + case 'F': goto yy159; default: goto yy25; } -yy153: yych = *++YYCURSOR; +yy158: yych = *++YYCURSOR; switch(yych){ - case 'f': goto yy154; + case 'f': goto yy159; default: goto yy25; } -yy154: yych = *++YYCURSOR; +yy159: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy155: yych = *++YYCURSOR; -yy156: -#line 100 +yy160: yych = *++YYCURSOR; +yy161: +#line 103 { return "float#neginf"; } -yy157: yych = *++YYCURSOR; +yy162: yych = *++YYCURSOR; switch(yych){ - case 'f': goto yy154; + case 'f': goto yy159; default: goto yy25; } -yy158: yych = *++YYCURSOR; +yy163: yych = *++YYCURSOR; switch(yych){ case 'I': goto yy33; case 'i': goto yy32; default: goto yy25; } -yy159: yych = *++YYCURSOR; +yy164: yych = *++YYCURSOR; switch(yych){ - case 'L': goto yy166; + case 'L': goto yy171; default: goto yy25; } -yy160: yych = *++YYCURSOR; +yy165: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy161; + case 'l': goto yy166; default: goto yy25; } -yy161: yych = *++YYCURSOR; +yy166: yych = *++YYCURSOR; switch(yych){ - case 's': goto yy162; + case 's': goto yy167; default: goto yy25; } -yy162: yych = *++YYCURSOR; +yy167: yych = *++YYCURSOR; switch(yych){ - case 'e': goto yy163; + case 'e': goto yy168; default: goto yy25; } -yy163: yych = *++YYCURSOR; +yy168: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy164: yych = *++YYCURSOR; -yy165: -#line 86 +yy169: yych = *++YYCURSOR; +yy170: +#line 87 { return "bool#no"; } -yy166: yych = *++YYCURSOR; +yy171: yych = *++YYCURSOR; switch(yych){ - case 'S': goto yy167; + case 'S': goto yy172; default: goto yy25; } -yy167: yych = *++YYCURSOR; +yy172: yych = *++YYCURSOR; switch(yych){ - case 'E': goto yy163; + case 'E': goto yy168; default: goto yy25; } -yy168: yych = *++YYCURSOR; +yy173: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy169; + case 'l': goto yy174; default: goto yy25; } -yy169: yych = *++YYCURSOR; +yy174: yych = *++YYCURSOR; switch(yych){ - case 's': goto yy170; + case 's': goto yy175; default: goto yy25; } -yy170: yych = *++YYCURSOR; +yy175: yych = *++YYCURSOR; switch(yych){ - case 'e': goto yy163; + case 'e': goto yy168; default: goto yy25; } -yy171: yych = *++YYCURSOR; +yy176: yych = *++YYCURSOR; switch(yych){ - case 'F': goto yy163; + case 'F': goto yy168; default: goto yy25; } -yy172: yych = *++YYCURSOR; +yy177: yych = *++YYCURSOR; switch(yych){ - case 'f': goto yy163; + case 'f': goto yy168; default: goto yy25; } -yy173: yych = *++YYCURSOR; +yy178: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; -yy174: yych = *++YYCURSOR; -yy175: -#line 84 +yy179: yych = *++YYCURSOR; +yy180: +#line 85 { return "bool#yes"; } -yy176: yych = *++YYCURSOR; +yy181: yych = *++YYCURSOR; switch(yych){ - case 'f': goto yy163; + case 'f': goto yy168; default: goto yy25; } -yy177: yych = *++YYCURSOR; +yy182: yych = *++YYCURSOR; switch(yych){ - case 'S': goto yy173; + case 'S': goto yy178; default: goto yy25; } -yy178: yych = *++YYCURSOR; +yy183: yych = *++YYCURSOR; switch(yych){ - case 's': goto yy173; + case 's': goto yy178; default: goto yy25; } -yy179: yych = *++YYCURSOR; +yy184: yych = *++YYCURSOR; switch(yych){ - case 's': goto yy173; + case 's': goto yy178; default: goto yy25; } -yy180: yych = *++YYCURSOR; +yy185: yych = *++YYCURSOR; switch(yych){ - case 'U': goto yy183; + case 'U': goto yy188; default: goto yy25; } -yy181: yych = *++YYCURSOR; +yy186: yych = *++YYCURSOR; switch(yych){ - case 'u': goto yy182; + case 'u': goto yy187; default: goto yy25; } -yy182: yych = *++YYCURSOR; +yy187: yych = *++YYCURSOR; switch(yych){ - case 'e': goto yy173; + case 'e': goto yy178; default: goto yy25; } -yy183: yych = *++YYCURSOR; +yy188: yych = *++YYCURSOR; switch(yych){ - case 'E': goto yy173; + case 'E': goto yy178; default: goto yy25; } -yy184: yych = *++YYCURSOR; +yy189: yych = *++YYCURSOR; switch(yych){ - case 'u': goto yy185; + case 'u': goto yy190; default: goto yy25; } -yy185: yych = *++YYCURSOR; +yy190: yych = *++YYCURSOR; switch(yych){ - case 'e': goto yy173; + case 'e': goto yy178; default: goto yy25; } -yy186: yych = *++YYCURSOR; +yy191: yych = *++YYCURSOR; switch(yych){ - case 'L': goto yy190; + case 'L': goto yy195; default: goto yy25; } -yy187: yych = *++YYCURSOR; +yy192: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy188; + case 'l': goto yy193; default: goto yy25; } -yy188: yych = *++YYCURSOR; +yy193: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy189; + case 'l': goto yy194; default: goto yy25; } -yy189: yych = *++YYCURSOR; +yy194: yych = *++YYCURSOR; if(yych <= '\000') goto yy6; goto yy25; -yy190: yych = *++YYCURSOR; +yy195: yych = *++YYCURSOR; switch(yych){ - case 'L': goto yy189; + case 'L': goto yy194; default: goto yy25; } -yy191: yych = *++YYCURSOR; +yy196: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy192; + case 'l': goto yy197; default: goto yy25; } -yy192: yych = *++YYCURSOR; +yy197: yych = *++YYCURSOR; switch(yych){ - case 'l': goto yy189; + case 'l': goto yy194; default: goto yy25; } } -#line 118 +#line 121 } @@ -1457,14 +1508,14 @@ syck_type_id_to_uri( char *type_id ) { YYCTYPE yych; unsigned int yyaccept; - goto yy193; -yy194: ++YYCURSOR; -yy193: + goto yy198; +yy199: ++YYCURSOR; +yy198: if((YYLIMIT - YYCURSOR) < 21) YYFILL(21); yych = *YYCURSOR; switch(yych){ - case '\000': goto yy195; - case '!': goto yy199; + case '\000': goto yy200; + case '!': goto yy204; case '0': case '1': case '2': @@ -1520,22 +1571,22 @@ yy193: case 's': case 'u': case 'v': case 'w': case 'y': - case 'z': goto yy201; - case 't': goto yy196; - case 'x': goto yy198; - default: goto yy202; + case 'z': goto yy206; + case 't': goto yy201; + case 'x': goto yy203; + default: goto yy207; } -yy195: YYCURSOR = YYMARKER; +yy200: YYCURSOR = YYMARKER; switch(yyaccept){ - case 0: goto yy197; + case 0: goto yy202; } -yy196: yyaccept = 0; +yy201: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case ',': goto yy207; - case '-': goto yy203; - case '.': goto yy208; - case '/': goto yy209; + case ',': goto yy212; + case '-': goto yy208; + case '.': goto yy213; + case '/': goto yy214; case '0': case '1': case '2': @@ -1594,14 +1645,14 @@ yy196: yyaccept = 0; case 'w': case 'x': case 'y': - case 'z': goto yy205; - case 'a': goto yy237; - default: goto yy197; + case 'z': goto yy210; + case 'a': goto yy242; + default: goto yy202; } -yy197: -#line 170 +yy202: +#line 173 { return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); } -yy198: yyaccept = 0; +yy203: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ case ',': case '.': @@ -1665,21 +1716,21 @@ yy198: yyaccept = 0; case 'w': case 'x': case 'y': - case 'z': goto yy206; - case '-': goto yy227; - default: goto yy197; + case 'z': goto yy211; + case '-': goto yy232; + default: goto yy202; } -yy199: yych = *++YYCURSOR; -yy200: -#line 144 +yy204: yych = *++YYCURSOR; +yy205: +#line 147 { return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); } -yy201: yyaccept = 0; +yy206: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych){ - case ',': goto yy207; - case '-': goto yy203; - case '.': goto yy208; - case '/': goto yy209; + case ',': goto yy212; + case '-': goto yy208; + case '.': goto yy213; + case '/': goto yy214; case '0': case '1': case '2': @@ -1739,16 +1790,16 @@ yy201: yyaccept = 0; case 'w': case 'x': case 'y': - case 'z': goto yy205; - default: goto yy197; + case 'z': goto yy210; + default: goto yy202; } -yy202: yych = *++YYCURSOR; - goto yy197; -yy203: ++YYCURSOR; +yy207: yych = *++YYCURSOR; + goto yy202; +yy208: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy204: switch(yych){ - case '-': goto yy203; +yy209: switch(yych){ + case '-': goto yy208; case '0': case '1': case '2': @@ -1808,17 +1859,17 @@ yy204: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy205; - default: goto yy195; + case 'z': goto yy210; + default: goto yy200; } -yy205: ++YYCURSOR; +yy210: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy206: switch(yych){ - case ',': goto yy207; - case '-': goto yy203; - case '.': goto yy208; - case '/': goto yy209; +yy211: switch(yych){ + case ',': goto yy212; + case '-': goto yy208; + case '.': goto yy213; + case '/': goto yy214; case '0': case '1': case '2': @@ -1878,10 +1929,10 @@ yy206: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy205; - default: goto yy195; + case 'z': goto yy210; + default: goto yy200; } -yy207: yych = *++YYCURSOR; +yy212: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -1892,10 +1943,10 @@ yy207: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy215; - default: goto yy195; + case '9': goto yy220; + default: goto yy200; } -yy208: ++YYCURSOR; +yy213: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch(yych){ @@ -1958,12 +2009,12 @@ yy208: ++YYCURSOR; case 'w': case 'x': case 'y': - case 'z': goto yy211; - default: goto yy195; + case 'z': goto yy216; + default: goto yy200; } -yy209: yych = *++YYCURSOR; -yy210: -#line 146 +yy214: yych = *++YYCURSOR; +yy215: +#line 149 { char *domain = S_ALLOC_N( char, ( YYCURSOR - type_id ) + 15 ); char *uri; @@ -1976,14 +2027,14 @@ yy210: S_FREE( domain ); return uri; } -yy211: ++YYCURSOR; +yy216: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy212: switch(yych){ - case ',': goto yy207; - case '-': goto yy213; - case '.': goto yy208; - case '/': goto yy209; +yy217: switch(yych){ + case ',': goto yy212; + case '-': goto yy218; + case '.': goto yy213; + case '/': goto yy214; case '0': case '1': case '2': @@ -2043,14 +2094,14 @@ yy212: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy211; - default: goto yy195; + case 'z': goto yy216; + default: goto yy200; } -yy213: ++YYCURSOR; +yy218: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy214: switch(yych){ - case '-': goto yy213; +yy219: switch(yych){ + case '-': goto yy218; case '0': case '1': case '2': @@ -2110,10 +2161,10 @@ yy214: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy211; - default: goto yy195; + case 'z': goto yy216; + default: goto yy200; } -yy215: yych = *++YYCURSOR; +yy220: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2124,10 +2175,10 @@ yy215: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy216; - default: goto yy195; + case '9': goto yy221; + default: goto yy200; } -yy216: yych = *++YYCURSOR; +yy221: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2138,10 +2189,10 @@ yy216: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy217; - default: goto yy195; + case '9': goto yy222; + default: goto yy200; } -yy217: yych = *++YYCURSOR; +yy222: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2152,16 +2203,16 @@ yy217: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy218; - default: goto yy195; + case '9': goto yy223; + default: goto yy200; } -yy218: yych = *++YYCURSOR; +yy223: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy219; - case '/': goto yy220; - default: goto yy195; + case '-': goto yy224; + case '/': goto yy225; + default: goto yy200; } -yy219: yych = *++YYCURSOR; +yy224: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2172,12 +2223,12 @@ yy219: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy222; - default: goto yy195; + case '9': goto yy227; + default: goto yy200; } -yy220: yych = *++YYCURSOR; -yy221: -#line 159 +yy225: yych = *++YYCURSOR; +yy226: +#line 162 { char *domain = S_ALLOC_N( char, YYCURSOR - type_id ); char *uri; @@ -2188,7 +2239,7 @@ yy221: S_FREE( domain ); return uri; } -yy222: yych = *++YYCURSOR; +yy227: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2199,16 +2250,16 @@ yy222: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy223; - default: goto yy195; + case '9': goto yy228; + default: goto yy200; } -yy223: yych = *++YYCURSOR; +yy228: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy224; - case '/': goto yy220; - default: goto yy195; + case '-': goto yy229; + case '/': goto yy225; + default: goto yy200; } -yy224: yych = *++YYCURSOR; +yy229: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2219,10 +2270,10 @@ yy224: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy225; - default: goto yy195; + case '9': goto yy230; + default: goto yy200; } -yy225: yych = *++YYCURSOR; +yy230: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2233,109 +2284,109 @@ yy225: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy226; - default: goto yy195; + case '9': goto yy231; + default: goto yy200; } -yy226: yych = *++YYCURSOR; +yy231: yych = *++YYCURSOR; switch(yych){ - case '/': goto yy220; - default: goto yy195; + case '/': goto yy225; + default: goto yy200; } -yy227: yych = *++YYCURSOR; +yy232: yych = *++YYCURSOR; switch(yych){ - case 'p': goto yy228; - default: goto yy204; + case 'p': goto yy233; + default: goto yy209; } -yy228: yych = *++YYCURSOR; +yy233: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'r': goto yy229; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'r': goto yy234; + default: goto yy209; } -yy229: yych = *++YYCURSOR; +yy234: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'i': goto yy230; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'i': goto yy235; + default: goto yy209; } -yy230: yych = *++YYCURSOR; +yy235: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'v': goto yy231; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'v': goto yy236; + default: goto yy209; } -yy231: yych = *++YYCURSOR; +yy236: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'a': goto yy232; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'a': goto yy237; + default: goto yy209; } -yy232: yych = *++YYCURSOR; +yy237: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 't': goto yy233; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 't': goto yy238; + default: goto yy209; } -yy233: yych = *++YYCURSOR; +yy238: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'e': goto yy234; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'e': goto yy239; + default: goto yy209; } -yy234: yych = *++YYCURSOR; +yy239: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case ':': goto yy235; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case ':': goto yy240; + default: goto yy209; } -yy235: yych = *++YYCURSOR; -yy236: -#line 142 +yy240: yych = *++YYCURSOR; +yy241: +#line 145 { return type_id; } -yy237: yych = *++YYCURSOR; +yy242: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'g': goto yy238; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case 'g': goto yy243; + default: goto yy209; } -yy238: yych = *++YYCURSOR; +yy243: yych = *++YYCURSOR; switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case ':': goto yy239; - default: goto yy204; + case ',': goto yy212; + case '.': goto yy213; + case '/': goto yy214; + case ':': goto yy244; + default: goto yy209; } -yy239: yych = *++YYCURSOR; +yy244: yych = *++YYCURSOR; switch(yych){ case ',': case '-': - case '.': goto yy195; - default: goto yy241; + case '.': goto yy200; + default: goto yy246; } -yy240: ++YYCURSOR; +yy245: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy241: switch(yych){ - case ',': goto yy244; - case '-': goto yy242; - case '.': goto yy245; +yy246: switch(yych){ + case ',': goto yy249; + case '-': goto yy247; + case '.': goto yy250; case '0': case '1': case '2': @@ -2395,14 +2446,14 @@ yy241: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy240; - default: goto yy195; + case 'z': goto yy245; + default: goto yy200; } -yy242: ++YYCURSOR; +yy247: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy243: switch(yych){ - case '-': goto yy242; +yy248: switch(yych){ + case '-': goto yy247; case '0': case '1': case '2': @@ -2462,10 +2513,10 @@ yy243: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy240; - default: goto yy195; + case 'z': goto yy245; + default: goto yy200; } -yy244: yych = *++YYCURSOR; +yy249: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2476,10 +2527,10 @@ yy244: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy250; - default: goto yy195; + case '9': goto yy255; + default: goto yy200; } -yy245: ++YYCURSOR; +yy250: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch(yych){ @@ -2542,16 +2593,16 @@ yy245: ++YYCURSOR; case 'w': case 'x': case 'y': - case 'z': goto yy246; - default: goto yy195; + case 'z': goto yy251; + default: goto yy200; } -yy246: ++YYCURSOR; +yy251: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy247: switch(yych){ - case ',': goto yy244; - case '-': goto yy248; - case '.': goto yy245; +yy252: switch(yych){ + case ',': goto yy249; + case '-': goto yy253; + case '.': goto yy250; case '0': case '1': case '2': @@ -2611,14 +2662,14 @@ yy247: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy246; - default: goto yy195; + case 'z': goto yy251; + default: goto yy200; } -yy248: ++YYCURSOR; +yy253: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy249: switch(yych){ - case '-': goto yy248; +yy254: switch(yych){ + case '-': goto yy253; case '0': case '1': case '2': @@ -2678,10 +2729,10 @@ yy249: switch(yych){ case 'w': case 'x': case 'y': - case 'z': goto yy246; - default: goto yy195; + case 'z': goto yy251; + default: goto yy200; } -yy250: yych = *++YYCURSOR; +yy255: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2692,10 +2743,10 @@ yy250: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy251; - default: goto yy195; + case '9': goto yy256; + default: goto yy200; } -yy251: yych = *++YYCURSOR; +yy256: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2706,10 +2757,10 @@ yy251: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy252; - default: goto yy195; + case '9': goto yy257; + default: goto yy200; } -yy252: yych = *++YYCURSOR; +yy257: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2720,16 +2771,16 @@ yy252: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy253; - default: goto yy195; + case '9': goto yy258; + default: goto yy200; } -yy253: yych = *++YYCURSOR; +yy258: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy254; - case ':': goto yy255; - default: goto yy195; + case '-': goto yy259; + case ':': goto yy260; + default: goto yy200; } -yy254: yych = *++YYCURSOR; +yy259: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2740,14 +2791,14 @@ yy254: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy257; - default: goto yy195; + case '9': goto yy262; + default: goto yy200; } -yy255: yych = *++YYCURSOR; -yy256: -#line 140 +yy260: yych = *++YYCURSOR; +yy261: +#line 143 { return type_id; } -yy257: yych = *++YYCURSOR; +yy262: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2758,16 +2809,16 @@ yy257: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy258; - default: goto yy195; + case '9': goto yy263; + default: goto yy200; } -yy258: yych = *++YYCURSOR; +yy263: yych = *++YYCURSOR; switch(yych){ - case '-': goto yy259; - case ':': goto yy255; - default: goto yy195; + case '-': goto yy264; + case ':': goto yy260; + default: goto yy200; } -yy259: yych = *++YYCURSOR; +yy264: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2778,10 +2829,10 @@ yy259: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy260; - default: goto yy195; + case '9': goto yy265; + default: goto yy200; } -yy260: yych = *++YYCURSOR; +yy265: yych = *++YYCURSOR; switch(yych){ case '0': case '1': @@ -2792,16 +2843,16 @@ yy260: yych = *++YYCURSOR; case '6': case '7': case '8': - case '9': goto yy261; - default: goto yy195; + case '9': goto yy266; + default: goto yy200; } -yy261: yych = *++YYCURSOR; +yy266: yych = *++YYCURSOR; switch(yych){ - case ':': goto yy255; - default: goto yy195; + case ':': goto yy260; + default: goto yy200; } } -#line 172 +#line 175 } diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index 877b18d303..9bce253602 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -412,7 +412,7 @@ yaml_org_handler( n, ref ) { case syck_str_kind: transferred = 1; - if ( type_id == NULL || strcmp( type_id, "str" ) == 0 ) + if ( type_id == NULL ) { obj = rb_str_new( n->data.str->ptr, n->data.str->len ); } @@ -438,12 +438,39 @@ yaml_org_handler( n, ref ) } else if ( strcmp( type_id, "int#hex" ) == 0 ) { + syck_str_blow_away_commas( n ); obj = rb_cstr2inum( n->data.str->ptr, 16 ); } else if ( strcmp( type_id, "int#oct" ) == 0 ) { + syck_str_blow_away_commas( n ); obj = rb_cstr2inum( n->data.str->ptr, 8 ); } + else if ( strcmp( type_id, "int#base60" ) == 0 ) + { + char *ptr, *end; + long sixty = 1; + long total = 0; + syck_str_blow_away_commas( n ); + ptr = n->data.str->ptr; + end = n->data.str->ptr + n->data.str->len; + while ( end > ptr ) + { + long bnum = 0; + char *colon = end - 1; + while ( colon >= ptr && *colon != ':' ) + { + colon--; + } + if ( *colon == ':' ) *colon = '\0'; + + bnum = strtol( colon + 1, NULL, 10 ); + total += bnum * sixty; + sixty *= 60; + end = colon; + } + obj = INT2FIX(total); + } else if ( strncmp( type_id, "int", 3 ) == 0 ) { syck_str_blow_away_commas( n ); @@ -495,27 +522,30 @@ yaml_org_handler( n, ref ) while ( !ISDIGIT( *ptr ) ) ptr++; day = INT2FIX(strtol(ptr, NULL, 10)); - if ( !cDate ) { - /* - * Load Date module - */ - rb_require( "date" ); - cDate = rb_const_get( rb_cObject, rb_intern("Date") ); - } - obj = rb_funcall( cDate, s_new, 3, year, mon, day ); } else if ( strncmp( type_id, "timestamp", 9 ) == 0 ) { obj = rb_syck_mktime( n->data.str->ptr ); } - else if ( strncmp( type_id, "merge", 5 ) == 0 ) + else if ( strncmp( type_id, "merge", 5 ) == 0 ) + { + obj = rb_funcall( cMergeKey, s_new, 0 ); + } + else if ( strncmp( type_id, "default", 7 ) == 0 ) + { + obj = rb_funcall( cDefaultKey, s_new, 0 ); + } + else if ( strncmp( n->data.str->ptr, ":", 1 ) == 0 ) { - obj = rb_funcall( cMergeKey, s_new, 0 ); + char *tmp; + tmp = syck_strndup( n->data.str->ptr + 1, n->data.str->len - 1 ); + obj = ID2SYM( rb_intern( tmp ) ); + free( tmp ); } - else if ( strncmp( type_id, "default", 7 ) == 0 ) + else if ( strcmp( type_id, "str" ) == 0 ) { - obj = rb_funcall( cDefaultKey, s_new, 0 ); + obj = rb_str_new( n->data.str->ptr, n->data.str->len ); } else { @@ -544,46 +574,46 @@ yaml_org_handler( n, ref ) obj = rb_hash_new(); for ( i = 0; i < n->data.pairs->idx; i++ ) { - VALUE k = syck_map_read( n, map_key, i ); - VALUE v = syck_map_read( n, map_value, i ); - int skip_aset = 0; - - /* - * Handle merge keys - */ - if ( rb_obj_is_kind_of( k, cMergeKey ) ) - { - if ( rb_obj_is_kind_of( v, rb_cHash ) ) - { - VALUE dup = rb_funcall( v, s_dup, 0 ); - rb_funcall( dup, s_update, 1, obj ); - obj = dup; - skip_aset = 1; - } - else if ( rb_obj_is_kind_of( v, rb_cArray ) ) - { - VALUE end = rb_ary_pop( v ); - if ( rb_obj_is_kind_of( end, rb_cHash ) ) - { - VALUE dup = rb_funcall( end, s_dup, 0 ); - v = rb_ary_reverse( v ); - rb_ary_push( v, obj ); - rb_iterate( rb_each, v, syck_merge_i, dup ); - obj = dup; - skip_aset = 1; - } - } - } + VALUE k = syck_map_read( n, map_key, i ); + VALUE v = syck_map_read( n, map_value, i ); + int skip_aset = 0; + + /* + * Handle merge keys + */ + if ( rb_obj_is_kind_of( k, cMergeKey ) ) + { + if ( rb_obj_is_kind_of( v, rb_cHash ) ) + { + VALUE dup = rb_funcall( v, s_dup, 0 ); + rb_funcall( dup, s_update, 1, obj ); + obj = dup; + skip_aset = 1; + } + else if ( rb_obj_is_kind_of( v, rb_cArray ) ) + { + VALUE end = rb_ary_pop( v ); + if ( rb_obj_is_kind_of( end, rb_cHash ) ) + { + VALUE dup = rb_funcall( end, s_dup, 0 ); + v = rb_ary_reverse( v ); + rb_ary_push( v, obj ); + rb_iterate( rb_each, v, syck_merge_i, dup ); + obj = dup; + skip_aset = 1; + } + } + } else if ( rb_obj_is_kind_of( k, cDefaultKey ) ) { rb_funcall( obj, s_default_set, 1, v ); skip_aset = 1; } - if ( ! skip_aset ) - { - rb_hash_aset( obj, k, v ); - } + if ( ! skip_aset ) + { + rb_hash_aset( obj, k, v ); + } } break; } -- cgit v1.2.3