summaryrefslogtreecommitdiff
path: root/ext/syck
diff options
context:
space:
mode:
authorwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-17 20:53:39 +0000
committerwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-17 20:53:39 +0000
commit71a8bebf5a130735b6455426b25a817fb31463c8 (patch)
tree12451184c932388ec7fa18a76b855054027589e2 /ext/syck
parent23f6b5bdc450abc5ce3a3dc7540a668f5d166dea (diff)
* ext/syck/rubyext.c: YAML::Syck::compile method.
* ext/syck/syck.c: Buffer edge bug. * ext/syck/yaml2byte.c: YAML to bytecode converter. * ext/syck/bytecode.c: Bytecode parser fixes to empty collections and empty strings. * ext/syck/token.c: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck')
-rw-r--r--ext/syck/MANIFEST1
-rw-r--r--ext/syck/bytecode.c708
-rw-r--r--ext/syck/implicit.c3165
-rw-r--r--ext/syck/rubyext.c47
-rw-r--r--ext/syck/syck.c4
-rw-r--r--ext/syck/syck.h3
-rw-r--r--ext/syck/token.c1477
-rw-r--r--ext/syck/yaml2byte.c251
8 files changed, 4098 insertions, 1558 deletions
diff --git a/ext/syck/MANIFEST b/ext/syck/MANIFEST
index c7079e5..5f5fcaf 100644
--- a/ext/syck/MANIFEST
+++ b/ext/syck/MANIFEST
@@ -11,3 +11,4 @@ rubyext.c
syck.c
syck.h
token.c
+yaml2byte.c
diff --git a/ext/syck/bytecode.c b/ext/syck/bytecode.c
index efc9890..848f69f 100644
--- a/ext/syck/bytecode.c
+++ b/ext/syck/bytecode.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.5 on Tue Oct 14 15:44:30 2003 */
+/* Generated by re2c 0.5 on Fri Oct 17 12:13:58 2003 */
#line 1 "bytecode.re"
/*
* bytecode.re
@@ -63,6 +63,11 @@ char *get_inline( SyckParser *parser );
YYPOS(0); \
return '-'; \
\
+ case syck_lvl_map: \
+ lvl->ncount++; \
+ ADD_LEVEL(len, s); \
+ break; \
+ \
case syck_lvl_open: \
lvl->status = s; \
break; \
@@ -139,7 +144,7 @@ sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser )
return t;
}
-#line 163
+#line 168
lvl = CURRENT_LEVEL();
@@ -160,19 +165,24 @@ yy1: ++YYCURSOR;
yy0:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '\000') goto yy2;
- if(yych == 'D') goto yy3;
- goto yy5;
+ switch(yych){
+ case '\000': goto yy2;
+ case 'D': goto yy3;
+ default: goto yy5;
+ }
yy2: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy4;
}
yy3: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '\n') goto yy6;
- if(yych == '\r') goto yy8;
+ switch(yych){
+ case '\n': goto yy6;
+ case '\r': goto yy8;
+ default: goto yy4;
+ }
yy4:
-#line 189
+#line 194
{ YYPOS(0);
goto Document;
}
@@ -180,7 +190,7 @@ yy5: yych = *++YYCURSOR;
goto yy4;
yy6: yych = *++YYCURSOR;
yy7:
-#line 177
+#line 182
{ if ( lvl->status == syck_lvl_header )
{
goto Directive;
@@ -193,10 +203,12 @@ yy7:
}
}
yy8: yych = *++YYCURSOR;
- if(yych == '\n') goto yy6;
- goto yy2;
+ switch(yych){
+ case '\n': goto yy6;
+ default: goto yy2;
+ }
}
-#line 193
+#line 198
lvl->status = syck_lvl_doc;
@@ -219,71 +231,61 @@ yy10: ++YYCURSOR;
yy9:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= 'E'){
- if(yych <= '\r'){
- if(yych <= '\t'){
- if(yych <= '\000') goto yy30;
- } else {
- if(yych <= '\n') goto yy27;
- if(yych >= '\r') goto yy29;
- }
- } else {
- if(yych <= 'A'){
- if(yych >= 'A') goto yy19;
- } else {
- if(yych <= 'C') goto yy11;
- if(yych <= 'D') goto yy12;
- goto yy16;
- }
- }
- } else {
- if(yych <= 'Q'){
- if(yych <= 'M'){
- if(yych >= 'M') goto yy14;
- } else {
- if(yych <= 'O') goto yy11;
- if(yych <= 'P') goto yy13;
- goto yy15;
- }
- } else {
- if(yych <= 'T'){
- if(yych <= 'R') goto yy21;
- if(yych <= 'S') goto yy17;
- goto yy23;
- } else {
- if(yych == 'c') goto yy25;
- }
- }
+ switch(yych){
+ case '\000': goto yy30;
+ case '\n': goto yy27;
+ case '\r': goto yy29;
+ case 'A': goto yy19;
+ case 'D': goto yy12;
+ case 'E': goto yy16;
+ case 'M': goto yy14;
+ case 'P': goto yy13;
+ case 'Q': goto yy15;
+ case 'R': goto yy21;
+ case 'S': goto yy17;
+ case 'T': goto yy23;
+ case 'c': goto yy25;
+ default: goto yy11;
}
yy11:yy12: yych = *++YYCURSOR;
- if(yych == '\n') goto yy41;
- if(yych == '\r') goto yy44;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy41;
+ case '\r': goto yy44;
+ default: goto yy11;
+ }
yy13: yych = *++YYCURSOR;
- if(yych == '\n') goto yy41;
- if(yych == '\r') goto yy43;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy41;
+ case '\r': goto yy43;
+ default: goto yy11;
+ }
yy14: yych = *++YYCURSOR;
- if(yych == '\n') goto yy38;
- if(yych == '\r') goto yy40;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy38;
+ case '\r': goto yy40;
+ default: goto yy11;
+ }
yy15: yych = *++YYCURSOR;
- if(yych == '\n') goto yy35;
- if(yych == '\r') goto yy37;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy35;
+ case '\r': goto yy37;
+ default: goto yy11;
+ }
yy16: yych = *++YYCURSOR;
- if(yych == '\n') goto yy32;
- if(yych == '\r') goto yy34;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy32;
+ case '\r': goto yy34;
+ default: goto yy11;
+ }
yy17: yych = *++YYCURSOR;
yy18:
-#line 243
+#line 282
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str);
goto Scalar;
}
yy19: yych = *++YYCURSOR;
yy20:
-#line 247
+#line 286
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open);
sycklval->name = get_inline( parser );
syck_hdlr_remove_anchor( parser, sycklval->name );
@@ -291,7 +293,7 @@ yy20:
}
yy21: yych = *++YYCURSOR;
yy22:
-#line 253
+#line 292
{ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str);
sycklval->name = get_inline( parser );
POP_LEVEL();
@@ -300,8 +302,10 @@ yy22:
}
yy23: yych = *++YYCURSOR;
yy24:
-#line 260
- { char *qstr = get_inline( parser );
+#line 299
+ { char *qstr;
+ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open);
+ qstr = get_inline( parser );
if ( qstr[0] == '!' )
{
int qidx = strlen( qstr );
@@ -347,6 +351,7 @@ yy24:
else
{
sycklval->name = S_ALLOC_N( char, strlen( qstr ) );
+ sycklval->name[0] = '\0';
S_MEMCPY( sycklval->name, qstr + 1, char, strlen( qstr ) );
free( qstr );
}
@@ -358,37 +363,53 @@ yy24:
}
yy25: yych = *++YYCURSOR;
yy26:
-#line 316
+#line 358
{ goto Comment; }
yy27: yych = *++YYCURSOR;
yy28:
-#line 318
+#line 360
{ if ( lvl->status == syck_lvl_seq )
{
return YAML_INDENT;
}
else if ( lvl->status == syck_lvl_map )
{
- lvl->ncount++;
if ( lvl->ncount % 2 == 1 ) return ':';
else return YAML_INDENT;
}
goto Document;
}
yy29: yych = *++YYCURSOR;
- if(yych == '\n') goto yy27;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy27;
+ default: goto yy11;
+ }
yy30: yych = *++YYCURSOR;
yy31:
-#line 331
+#line 372
{ ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
yy32: yych = *++YYCURSOR;
yy33:
-#line 222
- { POP_LEVEL();
+#line 247
+ { if ( lvl->status == syck_lvl_seq && lvl->ncount == 0 )
+ {
+ lvl->ncount++;
+ YYPOS(0);
+ FORCE_NEXT_TOKEN( ']' );
+ return '[';
+ }
+ else if ( lvl->status == syck_lvl_map && lvl->ncount == 0 )
+ {
+ lvl->ncount++;
+ YYPOS(0);
+ FORCE_NEXT_TOKEN( '}' );
+ return '{';
+ }
+
+ POP_LEVEL();
lvl = CURRENT_LEVEL();
if ( lvl->status == syck_lvl_seq )
{
@@ -396,7 +417,6 @@ yy33:
}
else if ( lvl->status == syck_lvl_map )
{
- lvl->ncount++;
if ( lvl->ncount % 2 == 1 )
{
FORCE_NEXT_TOKEN(':');
@@ -409,41 +429,71 @@ yy33:
return YAML_IEND;
}
yy34: yych = *++YYCURSOR;
- if(yych == '\n') goto yy32;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy32;
+ default: goto yy11;
+ }
yy35: yych = *++YYCURSOR;
yy36:
-#line 218
- { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_seq);
+#line 233
+ { int complex = 0;
+ if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) )
+ {
+ complex = 1;
+ }
+ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_seq);
+ if ( complex )
+ {
+ FORCE_NEXT_TOKEN( YAML_IOPEN );
+ return '?';
+ }
return YAML_IOPEN;
}
yy37: yych = *++YYCURSOR;
- if(yych == '\n') goto yy35;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy35;
+ default: goto yy11;
+ }
yy38: yych = *++YYCURSOR;
yy39:
-#line 214
- { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_map);
+#line 219
+ { int complex = 0;
+ if ( lvl->ncount % 2 == 0 && ( lvl->status == syck_lvl_map || lvl->status == syck_lvl_seq ) )
+ {
+ complex = 1;
+ }
+ ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_map);
+ if ( complex )
+ {
+ FORCE_NEXT_TOKEN( YAML_IOPEN );
+ return '?';
+ }
return YAML_IOPEN;
}
yy40: yych = *++YYCURSOR;
- if(yych == '\n') goto yy38;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy38;
+ default: goto yy11;
+ }
yy41: yych = *++YYCURSOR;
yy42:
-#line 209
+#line 214
{ ENSURE_YAML_IEND(lvl, -1);
YYPOS(0);
return 0;
}
yy43: yych = *++YYCURSOR;
- if(yych == '\n') goto yy41;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy41;
+ default: goto yy11;
+ }
yy44: yych = *++YYCURSOR;
- if(yych == '\n') goto yy41;
- goto yy11;
+ switch(yych){
+ case '\n': goto yy41;
+ default: goto yy11;
+ }
}
-#line 336
+#line 377
}
@@ -460,20 +510,97 @@ yy46: ++YYCURSOR;
yy45:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\000') goto yy47;
- if(yych == 'V') goto yy48;
- goto yy50;
+ switch(yych){
+ case '\000': goto yy47;
+ case 'V': goto yy48;
+ default: goto yy50;
+ }
yy47: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy49;
}
yy48: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-') goto yy49;
- if(yych == '`') goto yy49;
- if(yych <= 'z') goto yy51;
+ switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy51;
+ default: goto yy49;
+ }
yy49:
-#line 348
+#line 389
{ YYCURSOR = YYTOKTMP;
return YAML_DOCSEP;
}
@@ -482,44 +609,256 @@ yy50: yych = *++YYCURSOR;
yy51: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy52: if(yych <= ':'){
- if(yych <= '-') goto yy47;
- if(yych <= '9') goto yy51;
- } else {
- if(yych == '`') goto yy47;
- if(yych <= 'z') goto yy51;
- goto yy47;
+yy52: switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy51;
+ case ':': goto yy53;
+ default: goto yy47;
}
yy53: yych = *++YYCURSOR;
- if(yych <= '-') goto yy47;
- if(yych == '`') goto yy47;
- if(yych >= '{') goto yy47;
+ switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy54;
+ default: goto yy47;
+ }
yy54: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy55: if(yych <= '\r'){
- if(yych == '\n') goto yy56;
- if(yych <= '\f') goto yy47;
- goto yy58;
- } else {
- if(yych <= '_'){
- if(yych <= '-') goto yy47;
- goto yy54;
- } else {
- if(yych <= '`') goto yy47;
- if(yych <= 'z') goto yy54;
- goto yy47;
- }
+yy55: switch(yych){
+ case '\n': goto yy56;
+ case '\r': goto yy58;
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy54;
+ default: goto yy47;
}
yy56: yych = *++YYCURSOR;
yy57:
-#line 346
+#line 387
{ goto Directive; }
yy58: yych = *++YYCURSOR;
- if(yych == '\n') goto yy56;
- goto yy47;
+ switch(yych){
+ case '\n': goto yy56;
+ default: goto yy47;
+ }
}
-#line 351
+#line 392
}
@@ -536,29 +875,30 @@ yy60: ++YYCURSOR;
yy59:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\n'){
- if(yych <= '\000') goto yy61;
- if(yych <= '\t') goto yy66;
- goto yy62;
- } else {
- if(yych == '\r') goto yy64;
- goto yy66;
+ switch(yych){
+ case '\000': goto yy61;
+ case '\n': goto yy62;
+ case '\r': goto yy64;
+ default: goto yy66;
}
yy61:yy62: yych = *++YYCURSOR;
yy63:
-#line 361
+#line 402
{ goto Document; }
yy64: yych = *++YYCURSOR;
- if(yych == '\n') goto yy67;
+ switch(yych){
+ case '\n': goto yy67;
+ default: goto yy65;
+ }
yy65:
-#line 363
+#line 404
{ goto Comment; }
yy66: yych = *++YYCURSOR;
goto yy65;
yy67: yych = *++YYCURSOR;
goto yy63;
}
-#line 365
+#line 406
}
@@ -570,6 +910,8 @@ Scalar:
char *str = S_ALLOC_N( char, cap );
char *tok;
+ str[0] = '\0';
+
Scalar2:
tok = YYCURSOR;
@@ -581,59 +923,71 @@ yy69: ++YYCURSOR;
yy68:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '\n'){
- if(yych <= '\000') goto yy74;
- if(yych <= '\t') goto yy76;
- } else {
- if(yych == '\r') goto yy72;
- goto yy76;
+ switch(yych){
+ case '\000': goto yy74;
+ case '\n': goto yy70;
+ case '\r': goto yy72;
+ default: goto yy76;
}
yy70: yych = *++YYCURSOR;
- if(yych <= 'M'){
- if(yych == 'C') goto yy78;
- } else {
- if(yych <= 'N') goto yy80;
- if(yych == 'Z') goto yy83;
+ switch(yych){
+ case 'C': goto yy78;
+ case 'N': goto yy80;
+ case 'Z': goto yy83;
+ default: goto yy71;
}
yy71:
-#line 404
+#line 447
{ YYCURSOR = tok;
goto ScalarEnd;
}
yy72: yych = *++YYCURSOR;
- if(yych == '\n') goto yy77;
+ switch(yych){
+ case '\n': goto yy77;
+ default: goto yy73;
+ }
yy73:
-#line 412
+#line 455
{ CAT(str, cap, idx, tok[0]);
goto Scalar2;
}
yy74: yych = *++YYCURSOR;
yy75:
-#line 408
+#line 451
{ YYCURSOR = tok;
goto ScalarEnd;
}
yy76: yych = *++YYCURSOR;
goto yy73;
yy77: yych = *++YYCURSOR;
- if(yych <= 'M'){
- if(yych != 'C') goto yy71;
- } else {
- if(yych <= 'N') goto yy80;
- if(yych == 'Z') goto yy83;
- goto yy71;
+ switch(yych){
+ case 'C': goto yy78;
+ case 'N': goto yy80;
+ case 'Z': goto yy83;
+ default: goto yy71;
}
yy78: yych = *++YYCURSOR;
yy79:
-#line 381
+#line 424
{ goto Scalar2; }
yy80: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy81: if(yych <= '/') goto yy82;
- if(yych <= '9') goto yy80;
+yy81: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy80;
+ default: goto yy82;
+ }
yy82:
-#line 383
+#line 426
{ if ( tok + 2 < YYCURSOR )
{
char *count = tok + 2;
@@ -652,12 +1006,12 @@ yy82:
}
yy83: yych = *++YYCURSOR;
yy84:
-#line 400
+#line 443
{ CAT(str, cap, idx, '\0');
goto Scalar2;
}
}
-#line 416
+#line 459
ScalarEnd:
@@ -685,6 +1039,8 @@ get_inline( SyckParser *parser )
char *str = S_ALLOC_N( char, cap );
char *tok;
+ str[0] = '\0';
+
Inline:
{
tok = YYCURSOR;
@@ -697,27 +1053,29 @@ yy86: ++YYCURSOR;
yy85:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\n'){
- if(yych <= '\000') goto yy91;
- if(yych <= '\t') goto yy93;
- } else {
- if(yych == '\r') goto yy89;
- goto yy93;
+ switch(yych){
+ case '\000': goto yy91;
+ case '\n': goto yy87;
+ case '\r': goto yy89;
+ default: goto yy93;
}
yy87: yych = *++YYCURSOR;
yy88:
-#line 449
+#line 494
{ return str; }
yy89: yych = *++YYCURSOR;
- if(yych == '\n') goto yy94;
+ switch(yych){
+ case '\n': goto yy94;
+ default: goto yy90;
+ }
yy90:
-#line 455
+#line 500
{ CAT(str, cap, idx, tok[0]);
goto Inline;
}
yy91: yych = *++YYCURSOR;
yy92:
-#line 451
+#line 496
{ YYCURSOR = tok;
return str;
}
@@ -726,7 +1084,7 @@ yy93: yych = *++YYCURSOR;
yy94: yych = *++YYCURSOR;
goto yy88;
}
-#line 459
+#line 504
}
diff --git a/ext/syck/implicit.c b/ext/syck/implicit.c
index a34e5d3..1dfeac3 100644
--- a/ext/syck/implicit.c
+++ b/ext/syck/implicit.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.5 on Thu Oct 9 09:11:08 2003 */
+/* Generated by re2c 0.5 on Thu Oct 16 14:12:57 2003 */
#line 1 "implicit.re"
/*
* implicit.re
@@ -58,56 +58,35 @@ yy1: ++YYCURSOR;
yy0:
if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
yych = *YYCURSOR;
- if(yych <= 'N'){
- if(yych <= '0'){
- if(yych <= ','){
- if(yych <= '\000') goto yy6;
- if(yych == '+') goto yy16;
- goto yy23;
- } else {
- if(yych <= '-') goto yy17;
- if(yych <= '.') goto yy20;
- if(yych <= '/') goto yy23;
- goto yy18;
- }
- } else {
- if(yych <= '='){
- if(yych <= '9') goto yy19;
- if(yych <= ';') goto yy23;
- if(yych <= '<') goto yy22;
- goto yy21;
- } else {
- if(yych == 'F') goto yy15;
- if(yych <= 'M') goto yy23;
- goto yy5;
- }
- }
- } else {
- if(yych <= 'm'){
- if(yych <= 'X'){
- if(yych <= 'O') goto yy13;
- if(yych == 'T') goto yy9;
- goto yy23;
- } else {
- if(yych <= 'Y') goto yy11;
- if(yych == 'f') goto yy14;
- goto yy23;
- }
- } else {
- if(yych <= 't'){
- if(yych <= 'n') goto yy4;
- if(yych <= 'o') goto yy12;
- if(yych <= 's') goto yy23;
- goto yy8;
- } else {
- if(yych <= 'y'){
- if(yych <= 'x') goto yy23;
- goto yy10;
- } else {
- if(yych != '~') goto yy23;
- }
- }
- }
+ switch(yych){
+ case '\000': goto yy6;
+ case '+': goto yy16;
+ case '-': goto yy17;
+ case '.': goto yy20;
+ case '0': goto yy18;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy19;
+ case '<': goto yy22;
+ case '=': goto yy21;
+ case 'F': goto yy15;
+ case 'N': goto yy5;
+ case 'O': goto yy13;
+ case 'T': goto yy9;
+ case 'Y': goto yy11;
+ case 'f': goto yy14;
+ case 'n': goto yy4;
+ case 'o': goto yy12;
+ case 't': goto yy8;
+ case 'y': goto yy10;
+ case '~': goto yy2;
+ default: goto yy23;
}
yy2: yych = *++YYCURSOR;
if(yych <= '\000') goto yy6;
@@ -116,23 +95,18 @@ yy3:
{ return "str"; }
yy4: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'o') goto yy163;
- if(yych == 'u') goto yy191;
- goto yy3;
+ switch(yych){
+ case 'o': goto yy163;
+ case 'u': goto yy191;
+ default: goto yy3;
+ }
yy5: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'U'){
- if(yych == 'O') goto yy163;
- if(yych <= 'T') goto yy3;
- goto yy186;
- } else {
- if(yych <= 'o'){
- if(yych <= 'n') goto yy3;
- goto yy163;
- } else {
- if(yych == 'u') goto yy187;
- goto yy3;
- }
+ switch(yych){
+ case 'O': case 'o': goto yy163;
+ case 'U': goto yy186;
+ case 'u': goto yy187;
+ default: goto yy3;
}
yy6: yych = *++YYCURSOR;
yy7:
@@ -140,126 +114,145 @@ yy7:
{ return "null"; }
yy8: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'r') goto yy184;
- goto yy3;
+ switch(yych){
+ case 'r': goto yy184;
+ default: goto yy3;
+ }
yy9: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'R') goto yy180;
- if(yych == 'r') goto yy181;
- goto yy3;
+ switch(yych){
+ case 'R': goto yy180;
+ case 'r': goto yy181;
+ default: goto yy3;
+ }
yy10: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'e') goto yy179;
- goto yy3;
+ switch(yych){
+ case 'e': goto yy179;
+ default: goto yy3;
+ }
yy11: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy177;
- if(yych == 'e') goto yy178;
- goto yy3;
+ switch(yych){
+ case 'E': goto yy177;
+ case 'e': goto yy178;
+ default: goto yy3;
+ }
yy12: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'f') goto yy176;
- if(yych == 'n') goto yy173;
- goto yy3;
+ switch(yych){
+ case 'f': goto yy176;
+ case 'n': goto yy173;
+ default: goto yy3;
+ }
yy13: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'N'){
- if(yych == 'F') goto yy171;
- if(yych <= 'M') goto yy3;
- goto yy173;
- } else {
- if(yych <= 'f'){
- if(yych <= 'e') goto yy3;
- goto yy172;
- } else {
- if(yych == 'n') goto yy173;
- goto yy3;
- }
+ switch(yych){
+ case 'F': goto yy171;
+ case 'N': case 'n': goto yy173;
+ case 'f': goto yy172;
+ default: goto yy3;
}
yy14: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'a') goto yy168;
- goto yy3;
+ switch(yych){
+ case 'a': goto yy168;
+ default: goto yy3;
+ }
yy15: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'A') goto yy159;
- if(yych == 'a') goto yy160;
- goto yy3;
+ switch(yych){
+ case 'A': goto yy159;
+ case 'a': goto yy160;
+ default: goto yy3;
+ }
yy16: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy158;
- goto yy3;
- } else {
- if(yych <= '0') goto yy149;
- if(yych <= '9') goto yy47;
- goto yy3;
+ switch(yych){
+ case '.': goto yy158;
+ case '0': goto yy149;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy47;
+ default: goto yy3;
}
yy17: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy148;
- goto yy3;
- } else {
- if(yych <= '0') goto yy149;
- if(yych <= '9') goto yy47;
- goto yy3;
+ switch(yych){
+ case '.': goto yy148;
+ case '0': goto yy149;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy47;
+ default: goto yy3;
}
yy18: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '.'){
- if(yych <= '+'){
- if(yych <= '\000') goto yy51;
- goto yy3;
- } else {
- if(yych <= ',') goto yy133;
- if(yych <= '-') goto yy3;
- goto yy49;
- }
- } else {
- if(yych <= '9'){
- if(yych <= '/') goto yy3;
- if(yych <= '7') goto yy131;
- goto yy132;
- } else {
- if(yych == 'x') goto yy135;
- goto yy3;
- }
+ switch(yych){
+ case '\000': goto yy51;
+ case ',': goto yy133;
+ case '.': goto yy49;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy131;
+ case '8':
+ case '9': goto yy132;
+ case 'x': goto yy135;
+ default: goto yy3;
}
yy19: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-'){
- if(yych <= '\000') goto yy51;
- if(yych == ',') goto yy47;
- goto yy3;
- } else {
- if(yych <= '.') goto yy49;
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy46;
- goto yy3;
+ switch(yych){
+ case '\000': goto yy51;
+ case ',': goto yy47;
+ case '.': goto yy49;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy46;
+ default: goto yy3;
}
yy20: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'N'){
- if(yych == 'I') goto yy33;
- if(yych <= 'M') goto yy3;
- goto yy31;
- } else {
- if(yych <= 'i'){
- if(yych <= 'h') goto yy3;
- goto yy32;
- } else {
- if(yych == 'n') goto yy30;
- goto yy3;
- }
+ switch(yych){
+ case 'I': goto yy33;
+ case 'N': goto yy31;
+ case 'i': goto yy32;
+ case 'n': goto yy30;
+ default: goto yy3;
}
yy21: yych = *++YYCURSOR;
if(yych <= '\000') goto yy28;
goto yy3;
yy22: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '<') goto yy24;
- goto yy3;
+ switch(yych){
+ case '<': goto yy24;
+ default: goto yy3;
+ }
yy23: yych = *++YYCURSOR;
goto yy3;
yy24: yych = *++YYCURSOR;
@@ -277,24 +270,37 @@ yy29:
#line 112
{ return "default"; }
yy30: yych = *++YYCURSOR;
- if(yych == 'a') goto yy45;
- goto yy25;
+ switch(yych){
+ case 'a': goto yy45;
+ default: goto yy25;
+ }
yy31: yych = *++YYCURSOR;
- if(yych == 'A') goto yy40;
- if(yych == 'a') goto yy41;
- goto yy25;
+ switch(yych){
+ case 'A': goto yy40;
+ case 'a': goto yy41;
+ default: goto yy25;
+ }
yy32: yych = *++YYCURSOR;
- if(yych == 'n') goto yy39;
- goto yy25;
+ switch(yych){
+ case 'n': goto yy39;
+ default: goto yy25;
+ }
yy33: yych = *++YYCURSOR;
- if(yych == 'N') goto yy34;
- if(yych == 'n') goto yy35;
- goto yy25;
+ switch(yych){
+ case 'N': goto yy34;
+ case 'n': goto yy35;
+ default: goto yy25;
+ }
yy34: yych = *++YYCURSOR;
- if(yych == 'F') goto yy36;
- goto yy25;
+ switch(yych){
+ case 'F': goto yy36;
+ default: goto yy25;
+ }
yy35: yych = *++YYCURSOR;
- if(yych != 'f') goto yy25;
+ switch(yych){
+ case 'f': goto yy36;
+ default: goto yy25;
+ }
yy36: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
yy37: yych = *++YYCURSOR;
@@ -302,13 +308,20 @@ yy38:
#line 98
{ return "float#inf"; }
yy39: yych = *++YYCURSOR;
- if(yych == 'f') goto yy36;
- goto yy25;
+ switch(yych){
+ case 'f': goto yy36;
+ default: goto yy25;
+ }
yy40: yych = *++YYCURSOR;
- if(yych == 'N') goto yy42;
- goto yy25;
+ switch(yych){
+ case 'N': goto yy42;
+ default: goto yy25;
+ }
yy41: yych = *++YYCURSOR;
- if(yych != 'N') goto yy25;
+ switch(yych){
+ case 'N': goto yy42;
+ default: goto yy25;
+ }
yy42: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
yy43: yych = *++YYCURSOR;
@@ -316,46 +329,61 @@ yy44:
#line 102
{ return "float#nan"; }
yy45: yych = *++YYCURSOR;
- if(yych == 'n') goto yy42;
- goto yy25;
+ switch(yych){
+ case 'n': goto yy42;
+ default: goto yy25;
+ }
yy46: yych = *++YYCURSOR;
- if(yych <= '/') goto yy48;
- if(yych <= '9') goto yy65;
- goto yy48;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy65;
+ default: goto yy48;
+ }
yy47: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy48: if(yych <= '-'){
- if(yych <= '\000') goto yy51;
- if(yych == ',') goto yy47;
- goto yy25;
- } else {
- if(yych <= '.') goto yy49;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy47;
- goto yy25;
+yy48: switch(yych){
+ case '\000': goto yy51;
+ case ',': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy47;
+ case '.': goto yy49;
+ default: goto yy25;
}
yy49: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy50: if(yych <= '/'){
- if(yych <= ','){
- if(yych <= '\000') goto yy55;
- if(yych <= '+') goto yy25;
- goto yy53;
- } else {
- if(yych == '.') goto yy57;
- goto yy25;
- }
- } else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy49;
- if(yych <= 'D') goto yy25;
- goto yy59;
- } else {
- if(yych == 'e') goto yy59;
- goto yy25;
- }
+yy50: switch(yych){
+ case '\000': goto yy55;
+ case ',': goto yy53;
+ case '.': goto yy57;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy49;
+ case 'E': case 'e': goto yy59;
+ default: goto yy25;
}
yy51: yych = *++YYCURSOR;
yy52:
@@ -364,14 +392,19 @@ yy52:
yy53: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy54: if(yych <= ','){
- if(yych <= '\000') goto yy55;
- if(yych <= '+') goto yy25;
- goto yy53;
- } else {
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy53;
- goto yy25;
+yy54: switch(yych){
+ case '\000': goto yy55;
+ case ',': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy53;
+ default: goto yy25;
}
yy55: yych = *++YYCURSOR;
yy56:
@@ -380,277 +413,671 @@ yy56:
yy57: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy58: if(yych <= '9'){
- if(yych == '.') goto yy57;
- if(yych <= '/') goto yy25;
- goto yy57;
- } else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy25;
- } else {
- if(yych != 'e') goto yy25;
- }
+yy58: switch(yych){
+ case '.': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy57;
+ case 'E': case 'e': goto yy59;
+ default: goto yy25;
}
yy59: yych = *++YYCURSOR;
- if(yych == '+') goto yy60;
- if(yych != '-') goto yy25;
+ switch(yych){
+ case '+': case '-': goto yy60;
+ default: goto yy25;
+ }
yy60: yych = *++YYCURSOR;
if(yych <= '\000') goto yy25;
goto yy62;
yy61: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy62: if(yych <= '\000') goto yy63;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy61;
- goto yy25;
+yy62: switch(yych){
+ case '\000': goto yy63;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy61;
+ default: goto yy25;
+ }
yy63: yych = *++YYCURSOR;
yy64:
#line 96
{ return "float#exp"; }
yy65: yych = *++YYCURSOR;
- if(yych <= '/') goto yy48;
- if(yych >= ':') goto yy48;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy66;
+ default: goto yy48;
+ }
yy66: yych = *++YYCURSOR;
- if(yych != '-') goto yy48;
+ switch(yych){
+ case '-': goto yy67;
+ default: goto yy48;
+ }
yy67: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy68;
+ default: goto yy25;
+ }
yy68: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy69;
+ default: goto yy25;
+ }
yy69: yych = *++YYCURSOR;
- if(yych != '-') goto yy25;
+ switch(yych){
+ case '-': goto yy70;
+ default: goto yy25;
+ }
yy70: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy71;
+ default: goto yy25;
+ }
yy71: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy72;
+ default: goto yy25;
+ }
yy72: yych = *++YYCURSOR;
- if(yych <= 'S'){
- if(yych <= '\000') goto yy73;
- if(yych <= '/') goto yy78;
- if(yych <= '9') goto yy25;
- goto yy78;
- } else {
- if(yych <= 'T') goto yy75;
- if(yych == 't') goto yy76;
- goto yy78;
+ switch(yych){
+ case '\000': goto yy73;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy25;
+ case 'T': goto yy75;
+ case 't': goto yy76;
+ default: goto yy78;
}
yy73: yych = *++YYCURSOR;
yy74:
#line 104
{ return "timestamp#ymd"; }
yy75: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy117;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy117;
+ default: goto yy25;
+ }
yy76: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy99;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy99;
+ default: goto yy25;
+ }
yy77: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy78: if(yych <= '\037'){
- if(yych == '\t') goto yy77;
- goto yy25;
- } else {
- if(yych <= ' ') goto yy77;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+yy78: switch(yych){
+ case '\t': case ' ': goto yy77;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy79;
+ default: goto yy25;
}
yy79: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy80;
+ default: goto yy25;
+ }
yy80: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy81;
+ default: goto yy25;
+ }
yy81: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy82;
+ default: goto yy25;
+ }
yy82: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy83;
+ default: goto yy25;
+ }
yy83: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy84;
+ default: goto yy25;
+ }
yy84: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy85;
+ default: goto yy25;
+ }
yy85: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy86;
+ default: goto yy25;
+ }
yy86: yych = *++YYCURSOR;
- if(yych <= '\037'){
- if(yych == '\t') goto yy89;
- goto yy25;
- } else {
- if(yych <= ' ') goto yy89;
- if(yych != '.') goto yy25;
+ switch(yych){
+ case '\t': case ' ': goto yy89;
+ case '.': goto yy87;
+ default: goto yy25;
}
yy87: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy88: if(yych <= '\037'){
- if(yych != '\t') goto yy25;
- } else {
- if(yych <= ' ') goto yy89;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy87;
- goto yy25;
+yy88: switch(yych){
+ case '\t': case ' ': goto yy89;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy87;
+ default: goto yy25;
}
yy89: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy90: if(yych <= '*'){
- if(yych <= '\t'){
- if(yych <= '\b') goto yy25;
- goto yy89;
- } else {
- if(yych == ' ') goto yy89;
- goto yy25;
- }
- } else {
- if(yych <= '-'){
- if(yych == ',') goto yy25;
- goto yy92;
- } else {
- if(yych != 'Z') goto yy25;
- }
+yy90: switch(yych){
+ case '\t': case ' ': goto yy89;
+ case '+': case '-': goto yy92;
+ case 'Z': goto yy91;
+ default: goto yy25;
}
yy91: yych = *++YYCURSOR;
if(yych <= '\000') goto yy96;
goto yy25;
yy92: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy93;
+ default: goto yy25;
+ }
yy93: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy94;
+ default: goto yy25;
+ }
yy94: yych = *++YYCURSOR;
- if(yych <= '\000') goto yy96;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case '\000': goto yy96;
+ case ':': goto yy95;
+ default: goto yy25;
+ }
yy95: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy98;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy98;
+ default: goto yy25;
+ }
yy96: yych = *++YYCURSOR;
yy97:
#line 108
{ return "timestamp#spaced"; }
yy98: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy91;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy91;
+ default: goto yy25;
+ }
yy99: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy100;
+ default: goto yy25;
+ }
yy100: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy101;
+ default: goto yy25;
+ }
yy101: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy102;
+ default: goto yy25;
+ }
yy102: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy103;
+ default: goto yy25;
+ }
yy103: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy104;
+ default: goto yy25;
+ }
yy104: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy105;
+ default: goto yy25;
+ }
yy105: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy106;
+ default: goto yy25;
+ }
yy106: yych = *++YYCURSOR;
- if(yych == '.') goto yy107;
- if(yych <= '/') goto yy108;
- if(yych <= '9') goto yy25;
- goto yy108;
+ switch(yych){
+ case '.': goto yy107;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy25;
+ default: goto yy108;
+ }
yy107: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy108: if(yych <= '-'){
- if(yych == '+') goto yy110;
- if(yych <= ',') goto yy25;
- goto yy110;
- } else {
- if(yych <= '9'){
- if(yych <= '/') goto yy25;
- goto yy107;
- } else {
- if(yych != 'Z') goto yy25;
- }
+yy108: switch(yych){
+ case '+': case '-': goto yy110;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy107;
+ case 'Z': goto yy109;
+ default: goto yy25;
}
yy109: yych = *++YYCURSOR;
if(yych <= '\000') goto yy114;
goto yy25;
yy110: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy111;
+ default: goto yy25;
+ }
yy111: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy112;
+ default: goto yy25;
+ }
yy112: yych = *++YYCURSOR;
- if(yych <= '\000') goto yy114;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case '\000': goto yy114;
+ case ':': goto yy113;
+ default: goto yy25;
+ }
yy113: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy116;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy116;
+ default: goto yy25;
+ }
yy114: yych = *++YYCURSOR;
yy115:
#line 106
{ return "timestamp#iso8601"; }
yy116: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy109;
- goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy109;
+ default: goto yy25;
+ }
yy117: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy118;
+ default: goto yy25;
+ }
yy118: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy119;
+ default: goto yy25;
+ }
yy119: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy120;
+ default: goto yy25;
+ }
yy120: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy121;
+ default: goto yy25;
+ }
yy121: yych = *++YYCURSOR;
- if(yych != ':') goto yy25;
+ switch(yych){
+ case ':': goto yy122;
+ default: goto yy25;
+ }
yy122: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy123;
+ default: goto yy25;
+ }
yy123: yych = *++YYCURSOR;
- if(yych <= '/') goto yy25;
- if(yych >= ':') goto yy25;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy124;
+ default: goto yy25;
+ }
yy124: yych = *++YYCURSOR;
- if(yych <= '/'){
- if(yych != '.') goto yy126;
- } else {
- if(yych <= '9') goto yy25;
- if(yych == 'Z') goto yy127;
- goto yy126;
+ switch(yych){
+ case '.': goto yy125;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy25;
+ case 'Z': goto yy127;
+ default: goto yy126;
}
yy125: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
yych = *YYCURSOR;
-yy126: if(yych <= '/'){
- if(yych <= '+'){
- if(yych <= '*') goto yy25;
- goto yy110;
- } else {
- if(yych == '-') goto yy110;
- goto yy25;
- }
- } else {
- if(yych <= '9'){
- if(yych <= '0') goto yy125;
- goto yy129;
- } else {
- if(yych == 'Z') goto yy109;
- goto yy25;
- }
+yy126: switch(yych){
+ case '+': case '-': goto yy110;
+ case '0': goto yy125;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy129;
+ case 'Z': goto yy109;
+ default: goto yy25;
}
yy127: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
@@ -659,48 +1086,66 @@ yy128: yych = *++YYCURSOR;
yy129: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
yych = *YYCURSOR;
-yy130: if(yych <= '/'){
- if(yych <= '+'){
- if(yych <= '*') goto yy25;
- goto yy110;
- } else {
- if(yych == '-') goto yy110;
- goto yy25;
- }
- } else {
- if(yych <= '9'){
- if(yych <= '0') goto yy125;
- goto yy129;
- } else {
- if(yych == 'Z') goto yy127;
- goto yy25;
- }
+yy130: switch(yych){
+ case '+': case '-': goto yy110;
+ case '0': goto yy125;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy129;
+ case 'Z': goto yy127;
+ default: goto yy25;
}
yy131: yych = *++YYCURSOR;
- if(yych <= '/') goto yy134;
- if(yych <= '7') goto yy146;
- if(yych <= '9') goto yy144;
- goto yy134;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy146;
+ case '8':
+ case '9': goto yy144;
+ default: goto yy134;
+ }
yy132: yych = *++YYCURSOR;
- if(yych <= '/') goto yy143;
- if(yych <= '9') goto yy144;
- goto yy143;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy144;
+ default: goto yy143;
+ }
yy133: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy134: if(yych <= '-'){
- if(yych <= '\000') goto yy140;
- if(yych == ',') goto yy133;
- goto yy25;
- } else {
- if(yych <= '/'){
- if(yych <= '.') goto yy49;
- goto yy25;
- } else {
- if(yych <= '7') goto yy133;
- if(yych <= '9') goto yy142;
- goto yy25;
- }
+yy134: switch(yych){
+ case '\000': goto yy140;
+ case ',': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy133;
+ case '.': goto yy49;
+ case '8':
+ case '9': goto yy142;
+ default: goto yy25;
}
yy135: yych = *++YYCURSOR;
if(yych <= '\000') goto yy25;
@@ -708,23 +1153,29 @@ yy135: yych = *++YYCURSOR;
yy136: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy137: if(yych <= '9'){
- if(yych <= '+'){
- if(yych >= '\001') goto yy25;
- } else {
- if(yych <= ',') goto yy136;
- if(yych <= '/') goto yy25;
- goto yy136;
- }
- } else {
- if(yych <= 'F'){
- if(yych <= '@') goto yy25;
- goto yy136;
- } else {
- if(yych <= '`') goto yy25;
- if(yych <= 'f') goto yy136;
- goto yy25;
- }
+yy137: switch(yych){
+ case '\000': goto yy138;
+ case ',': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy136;
+ default: goto yy25;
}
yy138: yych = *++YYCURSOR;
yy139:
@@ -737,49 +1188,91 @@ yy141:
yy142: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy143: if(yych <= '-'){
- if(yych == ',') goto yy142;
- goto yy25;
- } else {
- if(yych <= '.') goto yy49;
- if(yych <= '/') goto yy25;
- if(yych <= '9') goto yy142;
- goto yy25;
+yy143: switch(yych){
+ case ',': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy142;
+ case '.': goto yy49;
+ default: goto yy25;
}
yy144: yych = *++YYCURSOR;
- if(yych <= '/') goto yy143;
- if(yych >= ':') goto yy143;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy145;
+ default: goto yy143;
+ }
yy145: yych = *++YYCURSOR;
- if(yych == '-') goto yy67;
- goto yy143;
+ switch(yych){
+ case '-': goto yy67;
+ default: goto yy143;
+ }
yy146: yych = *++YYCURSOR;
- if(yych <= '/') goto yy134;
- if(yych <= '7') goto yy147;
- if(yych <= '9') goto yy145;
- goto yy134;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy147;
+ case '8':
+ case '9': goto yy145;
+ default: goto yy134;
+ }
yy147: yych = *++YYCURSOR;
- if(yych == '-') goto yy67;
- goto yy134;
+ switch(yych){
+ case '-': goto yy67;
+ default: goto yy134;
+ }
yy148: yych = *++YYCURSOR;
- if(yych == 'I') goto yy151;
- if(yych == 'i') goto yy150;
- goto yy25;
+ switch(yych){
+ case 'I': goto yy151;
+ case 'i': goto yy150;
+ default: goto yy25;
+ }
yy149: yych = *++YYCURSOR;
- if(yych <= '\000') goto yy51;
- if(yych == 'x') goto yy135;
- goto yy134;
+ switch(yych){
+ case '\000': goto yy51;
+ case 'x': goto yy135;
+ default: goto yy134;
+ }
yy150: yych = *++YYCURSOR;
- if(yych == 'n') goto yy157;
- goto yy25;
+ switch(yych){
+ case 'n': goto yy157;
+ default: goto yy25;
+ }
yy151: yych = *++YYCURSOR;
- if(yych == 'N') goto yy152;
- if(yych == 'n') goto yy153;
- goto yy25;
+ switch(yych){
+ case 'N': goto yy152;
+ case 'n': goto yy153;
+ default: goto yy25;
+ }
yy152: yych = *++YYCURSOR;
- if(yych == 'F') goto yy154;
- goto yy25;
+ switch(yych){
+ case 'F': goto yy154;
+ default: goto yy25;
+ }
yy153: yych = *++YYCURSOR;
- if(yych != 'f') goto yy25;
+ switch(yych){
+ case 'f': goto yy154;
+ default: goto yy25;
+ }
yy154: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
yy155: yych = *++YYCURSOR;
@@ -787,21 +1280,36 @@ yy156:
#line 100
{ return "float#neginf"; }
yy157: yych = *++YYCURSOR;
- if(yych == 'f') goto yy154;
- goto yy25;
+ switch(yych){
+ case 'f': goto yy154;
+ default: goto yy25;
+ }
yy158: yych = *++YYCURSOR;
- if(yych == 'I') goto yy33;
- if(yych == 'i') goto yy32;
- goto yy25;
+ switch(yych){
+ case 'I': goto yy33;
+ case 'i': goto yy32;
+ default: goto yy25;
+ }
yy159: yych = *++YYCURSOR;
- if(yych == 'L') goto yy166;
- goto yy25;
+ switch(yych){
+ case 'L': goto yy166;
+ default: goto yy25;
+ }
yy160: yych = *++YYCURSOR;
- if(yych != 'l') goto yy25;
+ switch(yych){
+ case 'l': goto yy161;
+ default: goto yy25;
+ }
yy161: yych = *++YYCURSOR;
- if(yych != 's') goto yy25;
+ switch(yych){
+ case 's': goto yy162;
+ default: goto yy25;
+ }
yy162: yych = *++YYCURSOR;
- if(yych != 'e') goto yy25;
+ switch(yych){
+ case 'e': goto yy163;
+ default: goto yy25;
+ }
yy163: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
yy164: yych = *++YYCURSOR;
@@ -809,23 +1317,40 @@ yy165:
#line 86
{ return "bool#no"; }
yy166: yych = *++YYCURSOR;
- if(yych != 'S') goto yy25;
+ switch(yych){
+ case 'S': goto yy167;
+ default: goto yy25;
+ }
yy167: yych = *++YYCURSOR;
- if(yych == 'E') goto yy163;
- goto yy25;
+ switch(yych){
+ case 'E': goto yy163;
+ default: goto yy25;
+ }
yy168: yych = *++YYCURSOR;
- if(yych != 'l') goto yy25;
+ switch(yych){
+ case 'l': goto yy169;
+ default: goto yy25;
+ }
yy169: yych = *++YYCURSOR;
- if(yych != 's') goto yy25;
+ switch(yych){
+ case 's': goto yy170;
+ default: goto yy25;
+ }
yy170: yych = *++YYCURSOR;
- if(yych == 'e') goto yy163;
- goto yy25;
+ switch(yych){
+ case 'e': goto yy163;
+ default: goto yy25;
+ }
yy171: yych = *++YYCURSOR;
- if(yych == 'F') goto yy163;
- goto yy25;
+ switch(yych){
+ case 'F': goto yy163;
+ default: goto yy25;
+ }
yy172: yych = *++YYCURSOR;
- if(yych == 'f') goto yy163;
- goto yy25;
+ switch(yych){
+ case 'f': goto yy163;
+ default: goto yy25;
+ }
yy173: yych = *++YYCURSOR;
if(yych >= '\001') goto yy25;
yy174: yych = *++YYCURSOR;
@@ -833,51 +1358,88 @@ yy175:
#line 84
{ return "bool#yes"; }
yy176: yych = *++YYCURSOR;
- if(yych == 'f') goto yy163;
- goto yy25;
+ switch(yych){
+ case 'f': goto yy163;
+ default: goto yy25;
+ }
yy177: yych = *++YYCURSOR;
- if(yych == 'S') goto yy173;
- goto yy25;
+ switch(yych){
+ case 'S': goto yy173;
+ default: goto yy25;
+ }
yy178: yych = *++YYCURSOR;
- if(yych == 's') goto yy173;
- goto yy25;
+ switch(yych){
+ case 's': goto yy173;
+ default: goto yy25;
+ }
yy179: yych = *++YYCURSOR;
- if(yych == 's') goto yy173;
- goto yy25;
+ switch(yych){
+ case 's': goto yy173;
+ default: goto yy25;
+ }
yy180: yych = *++YYCURSOR;
- if(yych == 'U') goto yy183;
- goto yy25;
+ switch(yych){
+ case 'U': goto yy183;
+ default: goto yy25;
+ }
yy181: yych = *++YYCURSOR;
- if(yych != 'u') goto yy25;
+ switch(yych){
+ case 'u': goto yy182;
+ default: goto yy25;
+ }
yy182: yych = *++YYCURSOR;
- if(yych == 'e') goto yy173;
- goto yy25;
+ switch(yych){
+ case 'e': goto yy173;
+ default: goto yy25;
+ }
yy183: yych = *++YYCURSOR;
- if(yych == 'E') goto yy173;
- goto yy25;
+ switch(yych){
+ case 'E': goto yy173;
+ default: goto yy25;
+ }
yy184: yych = *++YYCURSOR;
- if(yych != 'u') goto yy25;
+ switch(yych){
+ case 'u': goto yy185;
+ default: goto yy25;
+ }
yy185: yych = *++YYCURSOR;
- if(yych == 'e') goto yy173;
- goto yy25;
+ switch(yych){
+ case 'e': goto yy173;
+ default: goto yy25;
+ }
yy186: yych = *++YYCURSOR;
- if(yych == 'L') goto yy190;
- goto yy25;
+ switch(yych){
+ case 'L': goto yy190;
+ default: goto yy25;
+ }
yy187: yych = *++YYCURSOR;
- if(yych != 'l') goto yy25;
+ switch(yych){
+ case 'l': goto yy188;
+ default: goto yy25;
+ }
yy188: yych = *++YYCURSOR;
- if(yych != 'l') goto yy25;
+ switch(yych){
+ case 'l': goto yy189;
+ default: goto yy25;
+ }
yy189: yych = *++YYCURSOR;
if(yych <= '\000') goto yy6;
goto yy25;
yy190: yych = *++YYCURSOR;
- if(yych == 'L') goto yy189;
- goto yy25;
+ switch(yych){
+ case 'L': goto yy189;
+ default: goto yy25;
+ }
yy191: yych = *++YYCURSOR;
- if(yych != 'l') goto yy25;
+ switch(yych){
+ case 'l': goto yy192;
+ default: goto yy25;
+ }
yy192: yych = *++YYCURSOR;
- if(yych == 'l') goto yy189;
- goto yy25;
+ switch(yych){
+ case 'l': goto yy189;
+ default: goto yy25;
+ }
}
#line 118
@@ -900,27 +1462,68 @@ yy194: ++YYCURSOR;
yy193:
if((YYLIMIT - YYCURSOR) < 21) YYFILL(21);
yych = *YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '\000') goto yy195;
- if(yych == '!') goto yy199;
- goto yy202;
- } else {
- if(yych <= '9') goto yy201;
- if(yych <= '@') goto yy202;
- if(yych <= 'Z') goto yy201;
- goto yy202;
- }
- } else {
- if(yych <= 't'){
- if(yych == '`') goto yy202;
- if(yych <= 's') goto yy201;
- goto yy196;
- } else {
- if(yych == 'x') goto yy198;
- if(yych <= 'z') goto yy201;
- goto yy202;
- }
+ switch(yych){
+ case '\000': goto yy195;
+ case '!': goto yy199;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's': case 'u':
+ case 'v':
+ case 'w': case 'y':
+ case 'z': goto yy201;
+ case 't': goto yy196;
+ case 'x': goto yy198;
+ default: goto yy202;
}
yy195: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -928,50 +1531,143 @@ yy195: YYCURSOR = YYMARKER;
}
yy196: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= '+') goto yy197;
- if(yych <= ',') goto yy207;
- goto yy203;
- } else {
- if(yych <= '.') goto yy208;
- if(yych <= '/') goto yy209;
- if(yych <= '9') goto yy205;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy205;
- if(yych >= '_') goto yy205;
- } else {
- if(yych <= '`') goto yy197;
- if(yych <= 'a') goto yy237;
- if(yych <= 'z') goto yy205;
- }
+ switch(yych){
+ case ',': goto yy207;
+ case '-': goto yy203;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy205;
+ case 'a': goto yy237;
+ default: goto yy197;
}
yy197:
#line 170
{ return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); }
yy198: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= '+') goto yy197;
- goto yy206;
- } else {
- if(yych <= '-') goto yy227;
- if(yych <= '9') goto yy206;
- goto yy197;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy206;
- if(yych <= '^') goto yy197;
- goto yy206;
- } else {
- if(yych <= '`') goto yy197;
- if(yych <= 'z') goto yy206;
- goto yy197;
- }
+ switch(yych){
+ case ',': case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy206;
+ case '-': goto yy227;
+ default: goto yy197;
}
yy199: yych = *++YYCURSOR;
yy200:
@@ -979,93 +1675,291 @@ yy200:
{ return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); }
yy201: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= '-'){
- if(yych <= '+') goto yy197;
- if(yych <= ',') goto yy207;
- goto yy203;
- } else {
- if(yych <= '.') goto yy208;
- if(yych <= '/') goto yy209;
- goto yy205;
- }
- } else {
- if(yych <= '^'){
- if(yych <= '@') goto yy197;
- if(yych <= 'Z') goto yy205;
- goto yy197;
- } else {
- if(yych == '`') goto yy197;
- if(yych <= 'z') goto yy205;
- goto yy197;
- }
+ switch(yych){
+ case ',': goto yy207;
+ case '-': goto yy203;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy205;
+ default: goto yy197;
}
yy202: yych = *++YYCURSOR;
goto yy197;
yy203: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy204: if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy195;
- goto yy203;
- } else {
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy205;
- if(yych <= '^') goto yy195;
- } else {
- if(yych <= '`') goto yy195;
- if(yych >= '{') goto yy195;
- }
+yy204: switch(yych){
+ case '-': goto yy203;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy205;
+ default: goto yy195;
}
yy205: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy206: if(yych <= '9'){
- if(yych <= '-'){
- if(yych <= '+') goto yy195;
- if(yych >= '-') goto yy203;
- } else {
- if(yych <= '.') goto yy208;
- if(yych <= '/') goto yy209;
- goto yy205;
- }
- } else {
- if(yych <= '^'){
- if(yych <= '@') goto yy195;
- if(yych <= 'Z') goto yy205;
- goto yy195;
- } else {
- if(yych == '`') goto yy195;
- if(yych <= 'z') goto yy205;
- goto yy195;
- }
+yy206: switch(yych){
+ case ',': goto yy207;
+ case '-': goto yy203;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy205;
+ default: goto yy195;
}
yy207: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy215;
- goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy215;
+ default: goto yy195;
+ }
yy208: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych <= 'Z'){
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy211;
- if(yych <= '@') goto yy195;
- goto yy211;
- } else {
- if(yych <= '_'){
- if(yych <= '^') goto yy195;
- goto yy211;
- } else {
- if(yych <= '`') goto yy195;
- if(yych <= 'z') goto yy211;
- goto yy195;
- }
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy211;
+ default: goto yy195;
}
yy209: yych = *++YYCURSOR;
yy210:
@@ -1085,66 +1979,202 @@ yy210:
yy211: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
-yy212: if(yych <= '9'){
- if(yych <= '-'){
- if(yych <= '+') goto yy195;
- if(yych <= ',') goto yy207;
- } else {
- if(yych <= '.') goto yy208;
- if(yych <= '/') goto yy209;
- goto yy211;
- }
- } else {
- if(yych <= '^'){
- if(yych <= '@') goto yy195;
- if(yych <= 'Z') goto yy211;
- goto yy195;
- } else {
- if(yych == '`') goto yy195;
- if(yych <= 'z') goto yy211;
- goto yy195;
- }
+yy212: switch(yych){
+ case ',': goto yy207;
+ case '-': goto yy213;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy211;
+ default: goto yy195;
}
yy213: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy214: if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy195;
- goto yy213;
- } else {
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy211;
- goto yy195;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy211;
- if(yych <= '^') goto yy195;
- goto yy211;
- } else {
- if(yych <= '`') goto yy195;
- if(yych <= 'z') goto yy211;
- goto yy195;
- }
+yy214: switch(yych){
+ case '-': goto yy213;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy211;
+ default: goto yy195;
}
yy215: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy216;
+ default: goto yy195;
+ }
yy216: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy217;
+ default: goto yy195;
+ }
yy217: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy218;
+ default: goto yy195;
+ }
yy218: yych = *++YYCURSOR;
- if(yych == '-') goto yy219;
- if(yych == '/') goto yy220;
- goto yy195;
+ switch(yych){
+ case '-': goto yy219;
+ case '/': goto yy220;
+ default: goto yy195;
+ }
yy219: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy222;
- goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy222;
+ default: goto yy195;
+ }
yy220: yych = *++YYCURSOR;
yy221:
#line 159
@@ -1159,260 +2189,617 @@ yy221:
return uri;
}
yy222: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy223;
+ default: goto yy195;
+ }
yy223: yych = *++YYCURSOR;
- if(yych == '-') goto yy224;
- if(yych == '/') goto yy220;
- goto yy195;
+ switch(yych){
+ case '-': goto yy224;
+ case '/': goto yy220;
+ default: goto yy195;
+ }
yy224: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy225;
+ default: goto yy195;
+ }
yy225: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy226;
+ default: goto yy195;
+ }
yy226: yych = *++YYCURSOR;
- if(yych == '/') goto yy220;
- goto yy195;
+ switch(yych){
+ case '/': goto yy220;
+ default: goto yy195;
+ }
yy227: yych = *++YYCURSOR;
- if(yych != 'p') goto yy204;
+ switch(yych){
+ case 'p': goto yy228;
+ default: goto yy204;
+ }
yy228: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'r') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'r': goto yy229;
+ default: goto yy204;
}
yy229: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'i') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'i': goto yy230;
+ default: goto yy204;
}
yy230: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'v') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'v': goto yy231;
+ default: goto yy204;
}
yy231: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'a') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'a': goto yy232;
+ default: goto yy204;
}
yy232: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 't') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 't': goto yy233;
+ default: goto yy204;
}
yy233: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'e') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'e': goto yy234;
+ default: goto yy204;
}
yy234: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != ':') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case ':': goto yy235;
+ default: goto yy204;
}
yy235: yych = *++YYCURSOR;
yy236:
#line 142
{ return type_id; }
yy237: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != 'g') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case 'g': goto yy238;
+ default: goto yy204;
}
yy238: yych = *++YYCURSOR;
- if(yych <= '.'){
- if(yych == ',') goto yy207;
- if(yych <= '-') goto yy204;
- goto yy208;
- } else {
- if(yych <= '/') goto yy209;
- if(yych != ':') goto yy204;
+ switch(yych){
+ case ',': goto yy207;
+ case '.': goto yy208;
+ case '/': goto yy209;
+ case ':': goto yy239;
+ default: goto yy204;
}
yy239: yych = *++YYCURSOR;
- if(yych <= '+') goto yy241;
- if(yych <= '.') goto yy195;
- goto yy241;
+ switch(yych){
+ case ',':
+ case '-':
+ case '.': goto yy195;
+ default: goto yy241;
+ }
yy240: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy241: if(yych <= '9'){
- if(yych <= '-'){
- if(yych <= '+') goto yy195;
- if(yych <= ',') goto yy244;
- } else {
- if(yych <= '.') goto yy245;
- if(yych <= '/') goto yy195;
- goto yy240;
- }
- } else {
- if(yych <= '^'){
- if(yych <= '@') goto yy195;
- if(yych <= 'Z') goto yy240;
- goto yy195;
- } else {
- if(yych == '`') goto yy195;
- if(yych <= 'z') goto yy240;
- goto yy195;
- }
+yy241: switch(yych){
+ case ',': goto yy244;
+ case '-': goto yy242;
+ case '.': goto yy245;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy240;
+ default: goto yy195;
}
yy242: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy243: if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy195;
- goto yy242;
- } else {
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy240;
- goto yy195;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy240;
- if(yych <= '^') goto yy195;
- goto yy240;
- } else {
- if(yych <= '`') goto yy195;
- if(yych <= 'z') goto yy240;
- goto yy195;
- }
+yy243: switch(yych){
+ case '-': goto yy242;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy240;
+ default: goto yy195;
}
yy244: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy250;
- goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy250;
+ default: goto yy195;
+ }
yy245: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych <= 'Z'){
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy246;
- if(yych <= '@') goto yy195;
- } else {
- if(yych <= '_'){
- if(yych <= '^') goto yy195;
- } else {
- if(yych <= '`') goto yy195;
- if(yych >= '{') goto yy195;
- }
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy246;
+ default: goto yy195;
}
yy246: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
-yy247: if(yych <= '9'){
- if(yych <= '-'){
- if(yych <= '+') goto yy195;
- if(yych <= ',') goto yy244;
- } else {
- if(yych <= '.') goto yy245;
- if(yych <= '/') goto yy195;
- goto yy246;
- }
- } else {
- if(yych <= '^'){
- if(yych <= '@') goto yy195;
- if(yych <= 'Z') goto yy246;
- goto yy195;
- } else {
- if(yych == '`') goto yy195;
- if(yych <= 'z') goto yy246;
- goto yy195;
- }
+yy247: switch(yych){
+ case ',': goto yy244;
+ case '-': goto yy248;
+ case '.': goto yy245;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy246;
+ default: goto yy195;
}
yy248: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy249: if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy195;
- goto yy248;
- } else {
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy246;
- goto yy195;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy246;
- if(yych <= '^') goto yy195;
- goto yy246;
- } else {
- if(yych <= '`') goto yy195;
- if(yych <= 'z') goto yy246;
- goto yy195;
- }
+yy249: switch(yych){
+ case '-': goto yy248;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy246;
+ default: goto yy195;
}
yy250: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy251;
+ default: goto yy195;
+ }
yy251: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy252;
+ default: goto yy195;
+ }
yy252: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy253;
+ default: goto yy195;
+ }
yy253: yych = *++YYCURSOR;
- if(yych == '-') goto yy254;
- if(yych == ':') goto yy255;
- goto yy195;
+ switch(yych){
+ case '-': goto yy254;
+ case ':': goto yy255;
+ default: goto yy195;
+ }
yy254: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych <= '9') goto yy257;
- goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy257;
+ default: goto yy195;
+ }
yy255: yych = *++YYCURSOR;
yy256:
#line 140
{ return type_id; }
yy257: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy258;
+ default: goto yy195;
+ }
yy258: yych = *++YYCURSOR;
- if(yych == '-') goto yy259;
- if(yych == ':') goto yy255;
- goto yy195;
+ switch(yych){
+ case '-': goto yy259;
+ case ':': goto yy255;
+ default: goto yy195;
+ }
yy259: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy260;
+ default: goto yy195;
+ }
yy260: yych = *++YYCURSOR;
- if(yych <= '/') goto yy195;
- if(yych >= ':') goto yy195;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy261;
+ default: goto yy195;
+ }
yy261: yych = *++YYCURSOR;
- if(yych == ':') goto yy255;
- goto yy195;
+ switch(yych){
+ case ':': goto yy255;
+ default: goto yy195;
+ }
}
#line 172
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
index aee66c8..4f5d461 100644
--- a/ext/syck/rubyext.c
+++ b/ext/syck/rubyext.c
@@ -35,8 +35,20 @@ typedef struct RVALUE {
} as;
} RVALUE;
+typedef struct {
+ long hash;
+ char *buffer;
+ long length;
+ long remaining;
+ int printed;
+} bytestring_t;
+
#define RUBY_DOMAIN "ruby.yaml.org,2002"
+#ifndef StringValue
+#define StringValue(v)
+#endif
+
/*
* symbols and constants
*/
@@ -72,6 +84,40 @@ struct parser_xtra {
};
/*
+ * Convert YAML to bytecode
+ */
+VALUE
+rb_syck_compile(self, port)
+ VALUE self, port;
+{
+ SYMID oid;
+ int taint;
+ char *ret;
+ VALUE bc;
+ bytestring_t *sav;
+
+ SyckParser *parser = syck_new_parser();
+ taint = syck_parser_assign_io(parser, port);
+ syck_parser_handler( parser, syck_yaml2byte_handler );
+ syck_parser_error_handler( parser, NULL );
+ syck_parser_implicit_typing( parser, 0 );
+ syck_parser_taguri_expansion( parser, 0 );
+ oid = syck_parse( parser );
+ syck_lookup_sym( parser, oid, (char **)&sav );
+
+ ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
+ ret[0] = '\0';
+ strcat( ret, "D\n" );
+ strcat( ret, sav->buffer );
+
+ syck_free_parser( parser );
+
+ bc = rb_str_new2( ret );
+ if ( taint ) OBJ_TAINT( bc );
+ return bc;
+}
+
+/*
* read from io.
*/
long
@@ -1278,6 +1324,7 @@ Init_syck()
VALUE rb_yaml = rb_define_module( "YAML" );
VALUE rb_syck = rb_define_module_under( rb_yaml, "Syck" );
rb_define_const( rb_syck, "VERSION", rb_str_new2( SYCK_VERSION ) );
+ rb_define_module_function( rb_syck, "compile", rb_syck_compile, 1 );
/*
* Global symbols
diff --git a/ext/syck/syck.c b/ext/syck/syck.c
index 9f2f900..8d31937 100644
--- a/ext/syck/syck.c
+++ b/ext/syck/syck.c
@@ -9,8 +9,8 @@
#include <stdio.h>
#include <string.h>
-#include "ruby.h"
#include "syck.h"
+#include "ruby.h"
void syck_parser_pop_level( SyckParser * );
@@ -88,7 +88,7 @@ syck_io_str_read( char *buf, SyckIoStr *str, long max_size, long skip )
}
if ( beg < str->ptr )
{
- len = str->ptr - beg;
+ len = ( str->ptr - beg ) + 1;
S_MEMCPY( buf + skip, beg, char, len );
}
len += skip;
diff --git a/ext/syck/syck.h b/ext/syck/syck.h
index bd5c658..5b42b77 100644
--- a/ext/syck/syck.h
+++ b/ext/syck/syck.h
@@ -17,6 +17,7 @@
#define YAML_DOMAIN "yaml.org,2002"
#include <stdio.h>
+#include <ctype.h>
#include "st.h"
#if defined(__cplusplus)
@@ -355,6 +356,8 @@ long syck_parser_readlen( SyckParser *, long );
void syck_parser_init( SyckParser *, int );
SYMID syck_parse( SyckParser * );
void syck_default_error_handler( SyckParser *, char * );
+SYMID syck_yaml2byte_handler( SyckParser *, SyckNode * );
+char *syck_yaml2byte( char * );
/*
* Allocation prototypes
diff --git a/ext/syck/token.c b/ext/syck/token.c
index d7fa6e4..aa7771d 100644
--- a/ext/syck/token.c
+++ b/ext/syck/token.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.5 on Mon Oct 13 18:40:21 2003 */
+/* Generated by re2c 0.5 on Thu Oct 16 14:12:55 2003 */
#line 1 "token.re"
/*
* token.re
@@ -276,30 +276,22 @@ yy1: ++YYCURSOR;
yy0:
if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- if(yych <= '\037'){
- if(yych <= '\n'){
- if(yych <= '\000') goto yy7;
- if(yych <= '\t') goto yy14;
- goto yy9;
- } else {
- if(yych == '\r') goto yy11;
- goto yy14;
- }
- } else {
- if(yych <= '#'){
- if(yych <= ' ') goto yy12;
- if(yych <= '"') goto yy14;
- goto yy5;
- } else {
- if(yych <= ',') goto yy14;
- if(yych <= '-') goto yy2;
- if(yych <= '.') goto yy4;
- goto yy14;
- }
+ switch(yych){
+ case '\000': goto yy7;
+ case '\n': goto yy9;
+ case '\r': goto yy11;
+ case ' ': goto yy12;
+ case '#': goto yy5;
+ case '-': goto yy2;
+ case '.': goto yy4;
+ default: goto yy14;
}
yy2: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '-') goto yy28;
+ switch(yych){
+ case '-': goto yy28;
+ default: goto yy3;
+ }
yy3:
#line 333
{ YYPOS(0);
@@ -307,8 +299,10 @@ yy3:
}
yy4: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy21;
- goto yy3;
+ switch(yych){
+ case '.': goto yy21;
+ default: goto yy3;
+ }
yy5: yych = *++YYCURSOR;
yy6:
#line 315
@@ -332,8 +326,10 @@ yy10:
goto Header;
}
yy11: yych = *++YYCURSOR;
- if(yych == '\n') goto yy17;
- goto yy3;
+ switch(yych){
+ case '\n': goto yy17;
+ default: goto yy3;
+ }
yy12: yych = *++YYCURSOR;
goto yy16;
yy13:
@@ -346,38 +342,42 @@ yy14: yych = *++YYCURSOR;
yy15: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy16: if(yych == ' ') goto yy15;
- goto yy13;
+yy16: switch(yych){
+ case ' ': goto yy15;
+ default: goto yy13;
+ }
yy17: yyaccept = 1;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy18: if(yych <= '\f'){
- if(yych == '\n') goto yy17;
- goto yy10;
- } else {
- if(yych <= '\r') goto yy19;
- if(yych == ' ') goto yy17;
- goto yy10;
+yy18: switch(yych){
+ case '\n': case ' ': goto yy17;
+ case '\r': goto yy19;
+ default: goto yy10;
}
yy19: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy17;
+ switch(yych){
+ case '\n': goto yy17;
+ default: goto yy20;
+ }
yy20: YYCURSOR = YYMARKER;
switch(yyaccept){
case 1: goto yy10;
case 0: goto yy3;
}
yy21: yych = *++YYCURSOR;
- if(yych != '.') goto yy20;
+ switch(yych){
+ case '.': goto yy22;
+ default: goto yy20;
+ }
yy22: yych = *++YYCURSOR;
- if(yych <= '\f'){
- if(yych != '\n') goto yy20;
- } else {
- if(yych <= '\r') goto yy27;
- if(yych == ' ') goto yy25;
- goto yy20;
+ switch(yych){
+ case '\n': goto yy23;
+ case '\r': goto yy27;
+ case ' ': goto yy25;
+ default: goto yy20;
}
yy23: yych = *++YYCURSOR;
yy24:
@@ -398,20 +398,26 @@ yy24:
yy25: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy26: if(yych == ' ') goto yy25;
- goto yy24;
+yy26: switch(yych){
+ case ' ': goto yy25;
+ default: goto yy24;
+ }
yy27: yych = *++YYCURSOR;
- if(yych == '\n') goto yy23;
- goto yy20;
+ switch(yych){
+ case '\n': goto yy23;
+ default: goto yy20;
+ }
yy28: yych = *++YYCURSOR;
- if(yych != '-') goto yy20;
+ switch(yych){
+ case '-': goto yy29;
+ default: goto yy20;
+ }
yy29: yych = *++YYCURSOR;
- if(yych <= '\f'){
- if(yych != '\n') goto yy20;
- } else {
- if(yych <= '\r') goto yy34;
- if(yych == ' ') goto yy32;
- goto yy20;
+ switch(yych){
+ case '\n': goto yy30;
+ case '\r': goto yy34;
+ case ' ': goto yy32;
+ default: goto yy20;
}
yy30: yych = *++YYCURSOR;
yy31:
@@ -432,11 +438,15 @@ yy31:
yy32: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy33: if(yych == ' ') goto yy32;
- goto yy31;
+yy33: switch(yych){
+ case ' ': goto yy32;
+ default: goto yy31;
+ }
yy34: yych = *++YYCURSOR;
- if(yych == '\n') goto yy30;
- goto yy20;
+ switch(yych){
+ case '\n': goto yy30;
+ default: goto yy20;
+ }
}
#line 337
@@ -459,54 +469,23 @@ yy36: ++YYCURSOR;
yy35:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '+'){
- if(yych <= '!'){
- if(yych <= '\f'){
- if(yych <= '\000') goto yy60;
- if(yych != '\n') goto yy62;
- } else {
- if(yych <= '\r') goto yy39;
- if(yych <= '\037') goto yy62;
- if(yych <= ' ') goto yy58;
- goto yy49;
- }
- } else {
- if(yych <= '&'){
- if(yych <= '"') goto yy53;
- if(yych <= '#') goto yy56;
- if(yych <= '%') goto yy62;
- goto yy47;
- } else {
- if(yych <= '\'') goto yy51;
- if(yych == '*') goto yy48;
- goto yy62;
- }
- }
- } else {
- if(yych <= 'Z'){
- if(yych <= ':'){
- if(yych <= ',') goto yy45;
- if(yych <= '-') goto yy46;
- if(yych <= '9') goto yy62;
- goto yy45;
- } else {
- if(yych <= '=') goto yy62;
- if(yych <= '>') goto yy55;
- if(yych <= '?') goto yy46;
- goto yy62;
- }
- } else {
- if(yych <= 'z'){
- if(yych <= '[') goto yy41;
- if(yych == ']') goto yy43;
- goto yy62;
- } else {
- if(yych <= '{') goto yy41;
- if(yych <= '|') goto yy55;
- if(yych <= '}') goto yy43;
- goto yy62;
- }
- }
+ switch(yych){
+ case '\000': goto yy60;
+ case '\n': goto yy37;
+ case '\r': goto yy39;
+ case ' ': goto yy58;
+ case '!': goto yy49;
+ case '"': goto yy53;
+ case '#': goto yy56;
+ case '&': goto yy47;
+ case '\'': goto yy51;
+ case '*': goto yy48;
+ case ',': case ':': goto yy45;
+ case '-': case '?': goto yy46;
+ case '>': case '|': goto yy55;
+ case '[': case '{': goto yy41;
+ case ']': case '}': goto yy43;
+ default: goto yy62;
}
yy37: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -535,7 +514,10 @@ yy38:
return YAML_INDENT;
}
yy39: yych = *++YYCURSOR;
- if(yych == '\n') goto yy89;
+ switch(yych){
+ case '\n': goto yy89;
+ default: goto yy40;
+ }
yy40:
#line 445
{ ENSURE_YAML_IOPEN(lvl, doc_level, 1);
@@ -557,65 +539,147 @@ yy44:
}
yy45: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '\f'){
- if(yych == '\n') goto yy84;
- goto yy40;
- } else {
- if(yych <= '\r') goto yy88;
- if(yych == ' ') goto yy86;
- goto yy40;
+ switch(yych){
+ case '\n': goto yy84;
+ case '\r': goto yy88;
+ case ' ': goto yy86;
+ default: goto yy40;
}
yy46: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '\f'){
- if(yych == '\n') goto yy79;
- goto yy40;
- } else {
- if(yych <= '\r') goto yy83;
- if(yych == ' ') goto yy81;
- goto yy40;
+ switch(yych){
+ case '\n': goto yy79;
+ case '\r': goto yy83;
+ case ' ': goto yy81;
+ default: goto yy40;
}
yy47: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy40;
- goto yy76;
- } else {
- if(yych <= '/') goto yy40;
- if(yych <= '9') goto yy76;
- goto yy40;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy76;
- if(yych <= '^') goto yy40;
- goto yy76;
- } else {
- if(yych <= '`') goto yy40;
- if(yych <= 'z') goto yy76;
- goto yy40;
- }
+ switch(yych){
+ case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy76;
+ default: goto yy40;
}
yy48: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych <= ',') goto yy40;
- goto yy73;
- } else {
- if(yych <= '/') goto yy40;
- if(yych <= '9') goto yy73;
- goto yy40;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy73;
- if(yych <= '^') goto yy40;
- goto yy73;
- } else {
- if(yych <= '`') goto yy40;
- if(yych <= 'z') goto yy73;
- goto yy40;
- }
+ switch(yych){
+ case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy73;
+ default: goto yy40;
}
yy49: yych = *++YYCURSOR;
yy50:
@@ -634,25 +698,21 @@ yy54:
goto DoubleQuote; }
yy55: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= ' '){
- if(yych <= '\f'){
- if(yych == '\n') goto yy68;
- goto yy40;
- } else {
- if(yych <= '\r') goto yy72;
- if(yych <= '\037') goto yy40;
- goto yy70;
- }
- } else {
- if(yych <= ','){
- if(yych == '+') goto yy65;
- goto yy40;
- } else {
- if(yych <= '-') goto yy65;
- if(yych <= '/') goto yy40;
- if(yych <= '9') goto yy65;
- goto yy40;
- }
+ switch(yych){
+ case '\n': goto yy68;
+ case '\r': goto yy72;
+ case ' ': goto yy70;
+ case '+': case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy65;
+ default: goto yy40;
}
yy56: yych = *++YYCURSOR;
yy57:
@@ -677,26 +737,28 @@ yy62: yych = *++YYCURSOR;
yy63: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy64: if(yych == ' ') goto yy63;
- goto yy59;
+yy64: switch(yych){
+ case ' ': goto yy63;
+ default: goto yy59;
+ }
yy65: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy66: if(yych <= ' '){
- if(yych <= '\f'){
- if(yych == '\n') goto yy68;
- } else {
- if(yych <= '\r') goto yy72;
- if(yych >= ' ') goto yy70;
- }
- } else {
- if(yych <= ','){
- if(yych == '+') goto yy65;
- } else {
- if(yych <= '-') goto yy65;
- if(yych <= '/') goto yy67;
- if(yych <= '9') goto yy65;
- }
+yy66: switch(yych){
+ case '\n': goto yy68;
+ case '\r': goto yy72;
+ case ' ': goto yy70;
+ case '+': case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy65;
+ default: goto yy67;
}
yy67: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -715,29 +777,80 @@ yy69:
yy70: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy71: if(yych == ' ') goto yy70;
- goto yy69;
+yy71: switch(yych){
+ case ' ': goto yy70;
+ default: goto yy69;
+ }
yy72: yych = *++YYCURSOR;
- if(yych == '\n') goto yy68;
- goto yy67;
+ switch(yych){
+ case '\n': goto yy68;
+ default: goto yy67;
+ }
yy73: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy74: if(yych <= '@'){
- if(yych <= '-'){
- if(yych >= '-') goto yy73;
- } else {
- if(yych <= '/') goto yy75;
- if(yych <= '9') goto yy73;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy73;
- if(yych >= '_') goto yy73;
- } else {
- if(yych <= '`') goto yy75;
- if(yych <= 'z') goto yy73;
- }
+yy74: switch(yych){
+ case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy73;
+ default: goto yy75;
}
yy75:
#line 413
@@ -748,21 +861,68 @@ yy75:
yy76: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy77: if(yych <= '@'){
- if(yych <= '-'){
- if(yych >= '-') goto yy76;
- } else {
- if(yych <= '/') goto yy78;
- if(yych <= '9') goto yy76;
- }
- } else {
- if(yych <= '_'){
- if(yych <= 'Z') goto yy76;
- if(yych >= '_') goto yy76;
- } else {
- if(yych <= '`') goto yy78;
- if(yych <= 'z') goto yy76;
- }
+yy77: switch(yych){
+ case '-': case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy76;
+ default: goto yy78;
}
yy78:
#line 401
@@ -796,11 +956,15 @@ yy80:
yy81: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy82: if(yych == ' ') goto yy81;
- goto yy80;
+yy82: switch(yych){
+ case ' ': goto yy81;
+ default: goto yy80;
+ }
yy83: yych = *++YYCURSOR;
- if(yych == '\n') goto yy79;
- goto yy67;
+ switch(yych){
+ case '\n': goto yy79;
+ default: goto yy67;
+ }
yy84: yych = *++YYCURSOR;
yy85:
#line 383
@@ -810,28 +974,31 @@ yy85:
yy86: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy87: if(yych == ' ') goto yy86;
- goto yy85;
+yy87: switch(yych){
+ case ' ': goto yy86;
+ default: goto yy85;
+ }
yy88: yych = *++YYCURSOR;
- if(yych == '\n') goto yy84;
- goto yy67;
+ switch(yych){
+ case '\n': goto yy84;
+ default: goto yy67;
+ }
yy89: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy90: if(yych <= '\f'){
- if(yych == '\n') goto yy89;
- goto yy38;
- } else {
- if(yych <= '\r') goto yy91;
- if(yych == ' ') goto yy89;
- goto yy38;
+yy90: switch(yych){
+ case '\n': case ' ': goto yy89;
+ case '\r': goto yy91;
+ default: goto yy38;
}
yy91: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy89;
- goto yy67;
+ switch(yych){
+ case '\n': goto yy89;
+ default: goto yy67;
+ }
}
#line 449
@@ -849,13 +1016,11 @@ yy93: ++YYCURSOR;
yy92:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= ' '){
- if(yych <= '\000') goto yy94;
- if(yych <= '\037') goto yy99;
- goto yy97;
- } else {
- if(yych == '%') goto yy95;
- goto yy99;
+ switch(yych){
+ case '\000': goto yy94;
+ case ' ': goto yy97;
+ case '%': goto yy95;
+ default: goto yy99;
}
yy94: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -863,9 +1028,84 @@ yy94: YYCURSOR = YYMARKER;
}
yy95: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-') goto yy96;
- if(yych == '`') goto yy96;
- if(yych <= 'z') goto yy102;
+ switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy102;
+ default: goto yy96;
+ }
yy96:
#line 462
{ YYCURSOR = YYTOKTMP;
@@ -881,29 +1121,250 @@ yy99: yych = *++YYCURSOR;
yy100: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy101: if(yych == ' ') goto yy100;
- goto yy98;
+yy101: switch(yych){
+ case ' ': goto yy100;
+ default: goto yy98;
+ }
yy102: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy103: if(yych <= ':'){
- if(yych <= '-') goto yy94;
- if(yych <= '9') goto yy102;
- } else {
- if(yych == '`') goto yy94;
- if(yych <= 'z') goto yy102;
- goto yy94;
+yy103: switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy102;
+ case ':': goto yy104;
+ default: goto yy94;
}
yy104: yych = *++YYCURSOR;
- if(yych <= '-') goto yy94;
- if(yych == '`') goto yy94;
- if(yych >= '{') goto yy94;
+ switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy105;
+ default: goto yy94;
+ }
yy105: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy106: if(yych <= '-') goto yy107;
- if(yych == '`') goto yy107;
- if(yych <= 'z') goto yy105;
+yy106: switch(yych){
+ case '.':
+ case '/':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ':':
+ case ';':
+ case '<':
+ case '=':
+ case '>':
+ case '?':
+ case '@':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '_': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy105;
+ default: goto yy107;
+ }
yy107:
#line 458
{ goto Directive; }
@@ -938,25 +1399,15 @@ yy109: ++YYCURSOR;
yy108:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '+'){
- if(yych <= '\f'){
- if(yych <= '\000') goto yy120;
- if(yych != '\n') goto yy122;
- } else {
- if(yych <= '\r') goto yy112;
- if(yych == ' ') goto yy118;
- goto yy122;
- }
- } else {
- if(yych <= '\\'){
- if(yych <= ',') goto yy117;
- if(yych == ':') goto yy114;
- goto yy122;
- } else {
- if(yych <= ']') goto yy115;
- if(yych == '}') goto yy115;
- goto yy122;
- }
+ switch(yych){
+ case '\000': goto yy120;
+ case '\n': goto yy110;
+ case '\r': goto yy112;
+ case ' ': goto yy118;
+ case ',': goto yy117;
+ case ':': goto yy114;
+ case ']': case '}': goto yy115;
+ default: goto yy122;
}
yy110: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -995,7 +1446,10 @@ yy111:
goto Plain2;
}
yy112: yych = *++YYCURSOR;
- if(yych == '\n') goto yy135;
+ switch(yych){
+ case '\n': goto yy135;
+ default: goto yy113;
+ }
yy113:
#line 542
{ QUOTECATS(qstr, qcapa, qidx, YYTOKTMP, YYCURSOR - YYTOKTMP);
@@ -1003,13 +1457,11 @@ yy113:
}
yy114: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '\f'){
- if(yych == '\n') goto yy130;
- goto yy113;
- } else {
- if(yych <= '\r') goto yy134;
- if(yych == ' ') goto yy132;
- goto yy113;
+ switch(yych){
+ case '\n': goto yy130;
+ case '\r': goto yy134;
+ case ' ': goto yy132;
+ default: goto yy113;
}
yy115: yych = *++YYCURSOR;
yy116:
@@ -1027,16 +1479,17 @@ yy116:
}
yy117: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '\f'){
- if(yych == '\n') goto yy125;
- goto yy113;
- } else {
- if(yych <= '\r') goto yy128;
- if(yych == ' ') goto yy126;
- goto yy113;
+ switch(yych){
+ case '\n': goto yy125;
+ case '\r': goto yy128;
+ case ' ': goto yy126;
+ default: goto yy113;
}
yy118: yych = *++YYCURSOR;
- if(yych == '#') goto yy123;
+ switch(yych){
+ case '#': goto yy123;
+ default: goto yy119;
+ }
yy119:
#line 540
{ goto Plain3; }
@@ -1057,10 +1510,15 @@ yy125: yych = *++YYCURSOR;
yy126: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy127: if(yych == ' ') goto yy126;
- goto yy116;
+yy127: switch(yych){
+ case ' ': goto yy126;
+ default: goto yy116;
+ }
yy128: yych = *++YYCURSOR;
- if(yych == '\n') goto yy125;
+ switch(yych){
+ case '\n': goto yy125;
+ default: goto yy129;
+ }
yy129: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy111;
@@ -1073,28 +1531,31 @@ yy131:
yy132: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy133: if(yych == ' ') goto yy132;
- goto yy131;
+yy133: switch(yych){
+ case ' ': goto yy132;
+ default: goto yy131;
+ }
yy134: yych = *++YYCURSOR;
- if(yych == '\n') goto yy130;
- goto yy129;
+ switch(yych){
+ case '\n': goto yy130;
+ default: goto yy129;
+ }
yy135: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy136: if(yych <= '\f'){
- if(yych == '\n') goto yy135;
- goto yy111;
- } else {
- if(yych <= '\r') goto yy137;
- if(yych == ' ') goto yy135;
- goto yy111;
+yy136: switch(yych){
+ case '\n': case ' ': goto yy135;
+ case '\r': goto yy137;
+ default: goto yy111;
}
yy137: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy135;
- goto yy129;
+ switch(yych){
+ case '\n': goto yy135;
+ default: goto yy129;
+ }
}
#line 546
@@ -1117,13 +1578,12 @@ yy139: ++YYCURSOR;
yy138:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\f'){
- if(yych <= '\000') goto yy146;
- if(yych != '\n') goto yy147;
- } else {
- if(yych <= '\r') goto yy142;
- if(yych == '\'') goto yy144;
- goto yy147;
+ switch(yych){
+ case '\000': goto yy146;
+ case '\n': goto yy140;
+ case '\r': goto yy142;
+ case '\'': goto yy144;
+ default: goto yy147;
}
yy140: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -1166,14 +1626,20 @@ yy141:
goto SingleQuote2;
}
yy142: yych = *++YYCURSOR;
- if(yych == '\n') goto yy150;
+ switch(yych){
+ case '\n': goto yy150;
+ default: goto yy143;
+ }
yy143:
#line 615
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
goto SingleQuote2;
}
yy144: yych = *++YYCURSOR;
- if(yych == '\'') goto yy148;
+ switch(yych){
+ case '\'': goto yy148;
+ default: goto yy145;
+ }
yy145:
#line 600
{ SyckLevel *lvl;
@@ -1204,18 +1670,18 @@ yy150: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy151: if(yych <= '\f'){
- if(yych == '\n') goto yy150;
- goto yy141;
- } else {
- if(yych <= '\r') goto yy152;
- if(yych == ' ') goto yy150;
- goto yy141;
+yy151: switch(yych){
+ case '\n': case ' ': goto yy150;
+ case '\r': goto yy152;
+ default: goto yy141;
}
yy152: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy150;
+ switch(yych){
+ case '\n': goto yy150;
+ default: goto yy153;
+ }
yy153: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy141;
@@ -1246,23 +1712,13 @@ yy155: ++YYCURSOR;
yy154:
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
- if(yych <= '\r'){
- if(yych <= '\t'){
- if(yych <= '\000') goto yy161;
- goto yy164;
- } else {
- if(yych <= '\n') goto yy156;
- if(yych <= '\f') goto yy164;
- goto yy158;
- }
- } else {
- if(yych <= '"'){
- if(yych <= '!') goto yy164;
- goto yy163;
- } else {
- if(yych == '\\') goto yy160;
- goto yy164;
- }
+ switch(yych){
+ case '\000': goto yy161;
+ case '\n': goto yy156;
+ case '\r': goto yy158;
+ case '"': goto yy163;
+ case '\\': goto yy160;
+ default: goto yy164;
}
yy156: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -1309,7 +1765,10 @@ yy157:
goto DoubleQuote2;
}
yy158: yych = *++YYCURSOR;
- if(yych == '\n') goto yy177;
+ switch(yych){
+ case '\n': goto yy177;
+ default: goto yy159;
+ }
yy159:
#line 722
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
@@ -1317,47 +1776,15 @@ yy159:
}
yy160: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'b'){
- if(yych <= ' '){
- if(yych <= '\f'){
- if(yych == '\n') goto yy168;
- goto yy159;
- } else {
- if(yych <= '\r') goto yy170;
- if(yych <= '\037') goto yy159;
- goto yy165;
- }
- } else {
- if(yych <= '['){
- if(yych == '"') goto yy172;
- goto yy159;
- } else {
- if(yych <= '\\') goto yy172;
- if(yych <= '`') goto yy159;
- goto yy172;
- }
- }
- } else {
- if(yych <= 'r'){
- if(yych <= 'm'){
- if(yych <= 'd') goto yy159;
- if(yych <= 'f') goto yy172;
- goto yy159;
- } else {
- if(yych <= 'n') goto yy172;
- if(yych <= 'q') goto yy159;
- goto yy172;
- }
- } else {
- if(yych <= 'u'){
- if(yych == 't') goto yy172;
- goto yy159;
- } else {
- if(yych <= 'v') goto yy172;
- if(yych == 'x') goto yy171;
- goto yy159;
- }
- }
+ switch(yych){
+ case '\n': goto yy168;
+ case '\r': goto yy170;
+ case ' ': goto yy165;
+ case '"': case '\\': case 'a':
+ case 'b': case 'e':
+ case 'f': case 'n': case 'r': case 't': case 'v': goto yy172;
+ case 'x': goto yy171;
+ default: goto yy159;
}
yy161: yych = *++YYCURSOR;
yy162:
@@ -1383,11 +1810,11 @@ yy164: yych = *++YYCURSOR;
yy165: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy166: if(yych <= '\f'){
- if(yych == '\n') goto yy168;
- } else {
- if(yych <= '\r') goto yy170;
- if(yych == ' ') goto yy165;
+yy166: switch(yych){
+ case '\n': goto yy168;
+ case '\r': goto yy170;
+ case ' ': goto yy165;
+ default: goto yy167;
}
yy167: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -1402,18 +1829,33 @@ yy169:
goto DoubleQuote2;
}
yy170: yych = *++YYCURSOR;
- if(yych == '\n') goto yy168;
- goto yy167;
+ switch(yych){
+ case '\n': goto yy168;
+ default: goto yy167;
+ }
yy171: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '/') goto yy167;
- if(yych <= '9') goto yy174;
- goto yy167;
- } else {
- if(yych <= 'F') goto yy174;
- if(yych <= '`') goto yy167;
- if(yych <= 'f') goto yy174;
- goto yy167;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy174;
+ default: goto yy167;
}
yy172: yych = *++YYCURSOR;
yy173:
@@ -1434,13 +1876,28 @@ yy173:
goto DoubleQuote2;
}
yy174: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '/') goto yy167;
- if(yych >= ':') goto yy167;
- } else {
- if(yych <= 'F') goto yy175;
- if(yych <= '`') goto yy167;
- if(yych >= 'g') goto yy167;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy175;
+ default: goto yy167;
}
yy175: yych = *++YYCURSOR;
yy176:
@@ -1457,19 +1914,18 @@ yy177: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy178: if(yych <= '\f'){
- if(yych == '\n') goto yy177;
- goto yy157;
- } else {
- if(yych <= '\r') goto yy179;
- if(yych == ' ') goto yy177;
- goto yy157;
+yy178: switch(yych){
+ case '\n': case ' ': goto yy177;
+ case '\r': goto yy179;
+ default: goto yy157;
}
yy179: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy177;
- goto yy167;
+ switch(yych){
+ case '\n': goto yy177;
+ default: goto yy167;
+ }
}
#line 726
@@ -1492,22 +1948,13 @@ yy181: ++YYCURSOR;
yy180:
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
- if(yych <= '\r'){
- if(yych <= '\t'){
- if(yych >= '\001') goto yy189;
- } else {
- if(yych <= '\n') goto yy183;
- if(yych <= '\f') goto yy189;
- goto yy186;
- }
- } else {
- if(yych <= ' '){
- if(yych <= '\037') goto yy189;
- goto yy185;
- } else {
- if(yych == '\\') goto yy188;
- goto yy189;
- }
+ switch(yych){
+ case '\000': goto yy182;
+ case '\n': goto yy183;
+ case '\r': goto yy186;
+ case ' ': goto yy185;
+ case '\\': goto yy188;
+ default: goto yy189;
}
yy182: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -1568,7 +2015,10 @@ yy184:
yy185: yych = *++YYCURSOR;
goto yy196;
yy186: yych = *++YYCURSOR;
- if(yych == '\n') goto yy194;
+ switch(yych){
+ case '\n': goto yy194;
+ default: goto yy187;
+ }
yy187:
#line 802
{ QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1));
@@ -1576,27 +2026,59 @@ yy187:
}
yy188: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'x') goto yy190;
- goto yy187;
+ switch(yych){
+ case 'x': goto yy190;
+ default: goto yy187;
+ }
yy189: yych = *++YYCURSOR;
goto yy187;
yy190: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '/') goto yy182;
- if(yych >= ':') goto yy182;
- } else {
- if(yych <= 'F') goto yy191;
- if(yych <= '`') goto yy182;
- if(yych >= 'g') goto yy182;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy191;
+ default: goto yy182;
}
yy191: yych = *++YYCURSOR;
- if(yych <= '@'){
- if(yych <= '/') goto yy182;
- if(yych >= ':') goto yy182;
- } else {
- if(yych <= 'F') goto yy192;
- if(yych <= '`') goto yy182;
- if(yych >= 'g') goto yy182;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy192;
+ default: goto yy182;
}
yy192: yych = *++YYCURSOR;
yy193:
@@ -1614,8 +2096,10 @@ yy194: yych = *++YYCURSOR;
yy195: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy196: if(yych == ' ') goto yy195;
- goto yy184;
+yy196: switch(yych){
+ case ' ': goto yy195;
+ default: goto yy184;
+ }
}
#line 807
@@ -1671,13 +2155,12 @@ yy198: ++YYCURSOR;
yy197:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\f'){
- if(yych <= '\000') goto yy205;
- if(yych != '\n') goto yy207;
- } else {
- if(yych <= '\r') goto yy201;
- if(yych == '#') goto yy203;
- goto yy207;
+ switch(yych){
+ case '\000': goto yy205;
+ case '\n': goto yy199;
+ case '\r': goto yy201;
+ case '#': goto yy203;
+ default: goto yy207;
}
yy199: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -1750,7 +2233,10 @@ yy200:
goto ScalarBlock2;
}
yy201: yych = *++YYCURSOR;
- if(yych == '\n') goto yy208;
+ switch(yych){
+ case '\n': goto yy208;
+ default: goto yy202;
+ }
yy202:
#line 940
{ QUOTECAT(qstr, qcapa, qidx, *YYTOKTMP);
@@ -1784,18 +2270,18 @@ yy208: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy209: if(yych <= '\f'){
- if(yych == '\n') goto yy208;
- goto yy200;
- } else {
- if(yych <= '\r') goto yy210;
- if(yych == ' ') goto yy208;
- goto yy200;
+yy209: switch(yych){
+ case '\n': case ' ': goto yy208;
+ case '\r': goto yy210;
+ default: goto yy200;
}
yy210: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy208;
+ switch(yych){
+ case '\n': goto yy208;
+ default: goto yy211;
+ }
yy211: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy200;
@@ -1826,13 +2312,11 @@ yy213: ++YYCURSOR;
yy212:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '\n'){
- if(yych <= '\000') goto yy214;
- if(yych <= '\t') goto yy219;
- goto yy216;
- } else {
- if(yych == '\r') goto yy217;
- goto yy219;
+ switch(yych){
+ case '\000': goto yy214;
+ case '\n': goto yy216;
+ case '\r': goto yy217;
+ default: goto yy219;
}
yy214: yych = *++YYCURSOR;
yy215:
@@ -1844,7 +2328,10 @@ yy216: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy221;
yy217: yych = *++YYCURSOR;
- if(yych == '\n') goto yy220;
+ switch(yych){
+ case '\n': goto yy220;
+ default: goto yy218;
+ }
yy218:
#line 967
{ goto Comment;
@@ -1855,12 +2342,18 @@ yy220: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy221: if(yych == '\n') goto yy220;
- if(yych != '\r') goto yy215;
+yy221: switch(yych){
+ case '\n': goto yy220;
+ case '\r': goto yy222;
+ default: goto yy215;
+ }
yy222: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == '\n') goto yy220;
+ switch(yych){
+ case '\n': goto yy220;
+ default: goto yy223;
+ }
yy223: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy215;
diff --git a/ext/syck/yaml2byte.c b/ext/syck/yaml2byte.c
new file mode 100644
index 0000000..54493c0
--- /dev/null
+++ b/ext/syck/yaml2byte.c
@@ -0,0 +1,251 @@
+//
+// ybext.c
+//
+// $Author$
+// $Date$
+//
+// Copyright (C) 2003 why the lucky stiff, clark evans
+//
+// WARNING WARNING WARNING --- THIS IS *NOT JUST* PLAYING
+// ANYMORE! -- WHY HAS EMBRACED THIS AS THE REAL THING!
+//
+#include <syck.h>
+#include <assert.h>
+#define YAMLBYTE_UTF8
+#include "yamlbyte.h"
+#include "ruby.h"
+
+#include <stdio.h>
+#define TRACE0(a) \
+ do { printf(a); printf("\n"); fflush(stdout); } while(0)
+#define TRACE1(a,b) \
+ do { printf(a,b); printf("\n"); fflush(stdout); } while(0)
+#define TRACE2(a,b,c) \
+ do { printf(a,b,c); printf("\n"); fflush(stdout); } while(0)
+#define TRACE3(a,b,c,d) \
+ do { printf(a,b,c,d); printf("\n"); fflush(stdout); } while(0)
+
+/* Reinvent the wheel... */
+#define CHUNKSIZE 64
+#define HASH ((long)0xCAFECAFECAFECAFE)
+typedef struct {
+ long hash;
+ char *buffer;
+ long length;
+ long remaining;
+ int printed;
+} bytestring_t;
+bytestring_t *bytestring_alloc() {
+ bytestring_t *ret;
+ //TRACE0("bytestring_alloc()");
+ ret = S_ALLOC(bytestring_t);
+ ret->hash = HASH;
+ ret->length = CHUNKSIZE;
+ ret->remaining = ret->length;
+ ret->buffer = S_ALLOC_N(char, ret->length + 1 );
+ ret->buffer[0] = 0;
+ ret->printed = 0;
+ return ret;
+}
+void bytestring_append(bytestring_t *str, char code,
+ char *start, char *finish)
+{
+ long grow;
+ long length = 2; /* CODE + LF */
+ char *curr;
+ assert(str && HASH == str->hash);
+ //TRACE0("bytestring_append()");
+ if(start) {
+ if(!finish)
+ finish = start + strlen(start);
+ length += (finish-start);
+ }
+ if(length > str->remaining) {
+ grow = (length - str->remaining) + CHUNKSIZE;
+ str->remaining += grow;
+ str->length += grow;
+ str->buffer = S_REALLOC_N( str->buffer, char, str->length + 1 );
+ assert(str->buffer);
+ }
+ curr = str->buffer + (str->length - str->remaining);
+ *curr = code;
+ curr += 1;
+ if(start)
+ while(start < finish)
+ *curr ++ = *start ++;
+ *curr = '\n';
+ curr += 1;
+ *curr = 0;
+ str->remaining = str->remaining - length;
+ assert( (str->buffer + str->length) - str->remaining );
+}
+void bytestring_extend(bytestring_t *str, bytestring_t *ext)
+{
+ char *from;
+ char *curr;
+ char *stop;
+ long grow;
+ long length;
+ assert(str && HASH == str->hash);
+ assert(ext && HASH == ext->hash);
+ if(ext->printed) {
+ assert(ext->buffer[0] ==YAMLBYTE_ANCHOR);
+ curr = ext->buffer;
+ while( '\n' != *curr)
+ curr++;
+ bytestring_append(str, YAMLBYTE_ALIAS, ext->buffer + 1, curr);
+ } else {
+ ext->printed = 1;
+ length = (ext->length - ext->remaining);
+ if(length > str->remaining) {
+ grow = (length - str->remaining) + CHUNKSIZE;
+ str->remaining += grow;
+ str->length += grow;
+ str->buffer = S_REALLOC_N( str->buffer, char, str->length + 1 );
+ }
+ curr = str->buffer + (str->length - str->remaining);
+ from = ext->buffer;
+ stop = ext->buffer + length;
+ while( from < stop )
+ *curr ++ = *from ++;
+ *curr = 0;
+ str->remaining = str->remaining - length;
+ assert( (str->buffer + str->length) - str->remaining );
+ }
+}
+
+/* convert SyckNode into yamlbyte_buffer_t objects */
+SYMID
+syck_yaml2byte_handler(p, n)
+ SyckParser *p;
+ SyckNode *n;
+{
+ SYMID oid;
+ long i;
+ char ch;
+ char nextcode;
+ char *start;
+ char *current;
+ char *finish;
+ bytestring_t *val = NULL;
+ bytestring_t *sav = NULL;
+ //TRACE0("syck_yaml2byte_handler()");
+ val = bytestring_alloc();
+ if(n->anchor) bytestring_append(val,YAMLBYTE_ANCHOR, n->anchor, NULL);
+ if ( n->type_id )
+ {
+ if ( p->taguri_expansion )
+ {
+ bytestring_append(val,YAMLBYTE_TRANSFER, n->type_id, NULL);
+ }
+ else
+ {
+ char *type_tag = S_ALLOC_N( char, strlen( n->type_id ) + 1 );
+ type_tag[0] = '\0';
+ strcat( type_tag, "!" );
+ strcat( type_tag, n->type_id );
+ bytestring_append( val, YAMLBYTE_TRANSFER, type_tag, NULL);
+ }
+ }
+ switch (n->kind)
+ {
+ case syck_str_kind:
+ nextcode = YAMLBYTE_SCALAR;
+ start = n->data.str->ptr;
+ finish = start + n->data.str->len - 1;
+ current = start;
+ //TRACE2("SCALAR: %s %d", start, n->data.str->len);
+ while(1) {
+ ch = *current;
+ if('\n' == ch || 0 == ch || current > finish) {
+ if(current >= start) {
+ bytestring_append(val, nextcode, start, current);
+ nextcode = YAMLBYTE_CONTINUE;
+ }
+ start = current + 1;
+ if(current > finish)
+ {
+ break;
+ }
+ else if('\n' == ch )
+ {
+ bytestring_append(val,YAMLBYTE_NEWLINE,NULL,NULL);
+ }
+ else if(0 == ch)
+ {
+ bytestring_append(val,YAMLBYTE_NULLCHAR,NULL,NULL);
+ }
+ else
+ {
+ assert("oops");
+ }
+ }
+ current += 1;
+ }
+ break;
+ case syck_seq_kind:
+ bytestring_append(val,YAMLBYTE_SEQUENCE,NULL,NULL);
+ for ( i = 0; i < n->data.list->idx; i++ )
+ {
+ oid = syck_seq_read( n, i );
+ syck_lookup_sym( p, oid, (char **)&sav );
+ bytestring_extend(val, sav);
+ }
+ bytestring_append(val,YAMLBYTE_END_BRANCH,NULL,NULL);
+ break;
+ case syck_map_kind:
+ bytestring_append(val,YAMLBYTE_MAPPING,NULL,NULL);
+ for ( i = 0; i < n->data.pairs->idx; i++ )
+ {
+ oid = syck_map_read( n, map_key, i );
+ syck_lookup_sym( p, oid, (char **)&sav );
+ bytestring_extend(val, sav);
+ oid = syck_map_read( n, map_value, i );
+ syck_lookup_sym( p, oid, (char **)&sav );
+ bytestring_extend(val, sav);
+ }
+ bytestring_append(val,YAMLBYTE_END_BRANCH,NULL,NULL);
+ break;
+ }
+ oid = syck_add_sym( p, (char *) val );
+ //TRACE1("Saving: %s", val->buffer );
+ return oid;
+}
+
+char *
+syck_yaml2byte(char *yamlstr)
+{
+ SYMID oid;
+ char *ret;
+ bytestring_t *sav;
+
+ SyckParser *parser = syck_new_parser();
+ syck_parser_str_auto( parser, yamlstr, NULL );
+ syck_parser_handler( parser, syck_yaml2byte_handler );
+ syck_parser_error_handler( parser, NULL );
+ syck_parser_implicit_typing( parser, 1 );
+ syck_parser_taguri_expansion( parser, 1 );
+ oid = syck_parse( parser );
+ syck_lookup_sym( parser, oid, (char **)&sav );
+
+ ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
+ ret[0] = '\0';
+ strcat( ret, "D\n" );
+ strcat( ret, sav->buffer );
+
+ syck_free_parser( parser );
+ return ret;
+}
+
+#ifdef TEST_YBEXT
+#include <stdio.h>
+int main() {
+ char *yaml = "test: 1\nand: \"with new\\nline\\n\"\nalso: &3 three\nmore: *3";
+ printf("--- # YAML \n");
+ printf(yaml);
+ printf("\n...\n");
+ printf(syck_yaml2byte(yaml));
+ return 0;
+}
+#endif
+