From c76c3349e4d5cfc3d1452d32491647294c102a8b Mon Sep 17 00:00:00 2001 From: why Date: Tue, 14 Oct 2003 23:15:19 +0000 Subject: * ext/syck/bytecode.c: Checkin of YAML bytecode support. * ext/syck/gram.c: Ditto. * ext/syck/syck.c: Ditto. * ext/syck/token.c: Ditto. * ext/syck/handler.c: Ditto. * ext/syck/handler.c: Now using 'tag' rather than 'taguri' in type URIs. * ext/syck/rubyext.c: Ditto (on both counts). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/MANIFEST | 3 +- ext/syck/bytecode.c | 735 ++++++++++++ ext/syck/emitter.c | 2 +- ext/syck/gram.c | 552 +++++---- ext/syck/gram.h | 36 +- ext/syck/handler.c | 4 +- ext/syck/implicit.c | 3223 +++++++++++++++------------------------------------ ext/syck/rubyext.c | 42 +- ext/syck/syck.c | 12 +- ext/syck/syck.h | 18 +- ext/syck/token.c | 1633 ++++++++++---------------- 11 files changed, 2613 insertions(+), 3647 deletions(-) create mode 100644 ext/syck/bytecode.c (limited to 'ext') diff --git a/ext/syck/MANIFEST b/ext/syck/MANIFEST index 666e9c0465..c7079e5fb0 100644 --- a/ext/syck/MANIFEST +++ b/ext/syck/MANIFEST @@ -1,5 +1,7 @@ MANIFEST extconf.rb +bytecode.c +emitter.c gram.c gram.h handler.c @@ -9,4 +11,3 @@ rubyext.c syck.c syck.h token.c -emitter.c diff --git a/ext/syck/bytecode.c b/ext/syck/bytecode.c new file mode 100644 index 0000000000..efc9890c4d --- /dev/null +++ b/ext/syck/bytecode.c @@ -0,0 +1,735 @@ +/* Generated by re2c 0.5 on Tue Oct 14 15:44:30 2003 */ +#line 1 "bytecode.re" +/* + * bytecode.re + * + * $Author$ + * $Date$ + * + * Copyright (C) 2003 why the lucky stiff + */ +#include "syck.h" +#include "ruby.h" +#include "gram.h" + +#define QUOTELEN 128 + +/* + * They do my bidding... + */ +#define YYCTYPE char +#define YYCURSOR parser->cursor +#define YYMARKER parser->marker +#define YYLIMIT parser->limit +#define YYTOKEN parser->token +#define YYTOKTMP parser->toktmp +#define YYLINEPTR parser->lineptr +#define YYLINECTPTR parser->linectptr +#define YYLINE parser->linect +#define YYFILL(n) syck_parser_read(parser) + +extern SyckParser *syck_parser_ptr; + +char *get_inline( SyckParser *parser ); + +/* + * Repositions the cursor at `n' offset from the token start. + * Only works in `Header' and `Document' sections. + */ +#define YYPOS(n) YYCURSOR = YYTOKEN + n + +/* + * I like seeing the level operations as macros... + */ +#define ADD_LEVEL(len, status) syck_parser_add_level( parser, len, status ) +#define POP_LEVEL() syck_parser_pop_level( parser ) +#define CURRENT_LEVEL() syck_parser_current_level( parser ) + +/* + * Force a token next time around sycklex() + */ +#define FORCE_NEXT_TOKEN(tok) parser->force_token = tok; + +/* + * Adding levels in bytecode requires us to make sure + * we've got all our tokens worked out. + */ +#define ADD_BYTE_LEVEL(lvl, len, s ) \ + switch ( lvl->status ) \ + { \ + case syck_lvl_seq: \ + lvl->ncount++; \ + ADD_LEVEL(len, syck_lvl_open); \ + YYPOS(0); \ + return '-'; \ + \ + case syck_lvl_open: \ + lvl->status = s; \ + break; \ + \ + default: \ + ADD_LEVEL(len, s); \ + break; \ + } + +/* + * Nice little macro to ensure we're YAML_IOPENed to the current level. + * * Only use this macro in the "Document" section * + */ +#define ENSURE_YAML_IOPEN(last_lvl, lvl_type, to_len, reset) \ + if ( last_lvl->spaces < to_len ) \ + { \ + if ( last_lvl->status == syck_lvl_inline ) \ + { \ + goto Document; \ + } \ + else \ + { \ + ADD_LEVEL( to_len, lvl_type ); \ + if ( reset == 1 ) YYPOS(0); \ + return YAML_IOPEN; \ + } \ + } + +/* + * Nice little macro to ensure closure of levels. + * * Only use this macro in the "Document" section * + */ +#define ENSURE_YAML_IEND(last_lvl, to_len) \ + if ( last_lvl->spaces > to_len ) \ + { \ + syck_parser_pop_level( parser ); \ + YYPOS(0); \ + return YAML_IEND; \ + } + +/* + * Concatenates string items and manages allocation + * to the string + */ +#define CAT(s, c, i, l) \ + { \ + if ( i + 1 >= c ) \ + { \ + c += QUOTELEN; \ + S_REALLOC_N( s, char, c ); \ + } \ + s[i++] = l; \ + s[i] = '\0'; \ + } + +/* + * Parser for standard YAML Bytecode [UTF-8] + */ +int +sycklex_bytecode_utf8( YYSTYPE *sycklval, SyckParser *parser ) +{ + SyckLevel *lvl; + int doc_level = 0; + syck_parser_ptr = parser; + if ( YYCURSOR == NULL ) + { + syck_parser_read( parser ); + } + + if ( parser->force_token != 0 ) + { + int t = parser->force_token; + parser->force_token = 0; + return t; + } + +#line 163 + + + lvl = CURRENT_LEVEL(); + if ( lvl->status == syck_lvl_doc ) + { + goto Document; + } + +Header: + + YYTOKEN = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy0; +yy1: ++YYCURSOR; +yy0: + if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; + if(yych <= '\000') goto yy2; + if(yych == 'D') goto yy3; + 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; +yy4: +#line 189 + { YYPOS(0); + goto Document; + } +yy5: yych = *++YYCURSOR; + goto yy4; +yy6: yych = *++YYCURSOR; +yy7: +#line 177 + { if ( lvl->status == syck_lvl_header ) + { + goto Directive; + } + else + { + ENSURE_YAML_IEND(lvl, -1); + YYPOS(0); + return 0; + } + } +yy8: yych = *++YYCURSOR; + if(yych == '\n') goto yy6; + goto yy2; +} +#line 193 + + + lvl->status = syck_lvl_doc; + +Document: + { + lvl = CURRENT_LEVEL(); + if ( lvl->status == syck_lvl_header ) + { + lvl->status = syck_lvl_doc; + } + + YYTOKEN = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy9; +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; + } + } + } +yy11:yy12: yych = *++YYCURSOR; + if(yych == '\n') goto yy41; + if(yych == '\r') goto yy44; + goto yy11; +yy13: yych = *++YYCURSOR; + if(yych == '\n') goto yy41; + if(yych == '\r') goto yy43; + goto yy11; +yy14: yych = *++YYCURSOR; + if(yych == '\n') goto yy38; + if(yych == '\r') goto yy40; + goto yy11; +yy15: yych = *++YYCURSOR; + if(yych == '\n') goto yy35; + if(yych == '\r') goto yy37; + goto yy11; +yy16: yych = *++YYCURSOR; + if(yych == '\n') goto yy32; + if(yych == '\r') goto yy34; + goto yy11; +yy17: yych = *++YYCURSOR; +yy18: +#line 243 + { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); + goto Scalar; + } +yy19: yych = *++YYCURSOR; +yy20: +#line 247 + { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_open); + sycklval->name = get_inline( parser ); + syck_hdlr_remove_anchor( parser, sycklval->name ); + return YAML_ANCHOR; + } +yy21: yych = *++YYCURSOR; +yy22: +#line 253 + { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_str); + sycklval->name = get_inline( parser ); + POP_LEVEL(); + if ( *( YYCURSOR - 1 ) == '\n' ) YYCURSOR--; + return YAML_ALIAS; + } +yy23: yych = *++YYCURSOR; +yy24: +#line 260 + { char *qstr = get_inline( parser ); + if ( qstr[0] == '!' ) + { + int qidx = strlen( qstr ); + if ( qstr[1] == '\0' ) + { + free( qstr ); + return YAML_ITRANSFER; + } + + lvl = CURRENT_LEVEL(); + + /* + * URL Prefixing + */ + if ( qstr[1] == '^' ) + { + sycklval->name = S_ALLOC_N( char, qidx + strlen( lvl->domain ) ); + sycklval->name[0] = '\0'; + strcat( sycklval->name, lvl->domain ); + strncat( sycklval->name, qstr + 2, qidx - 2 ); + free( qstr ); + } + else + { + char *carat = qstr + 1; + char *qend = qstr + qidx; + while ( (++carat) < qend ) + { + if ( *carat == '^' ) + break; + } + + if ( carat < qend ) + { + free( lvl->domain ); + lvl->domain = syck_strndup( qstr + 1, carat - ( qstr + 1 ) ); + sycklval->name = S_ALLOC_N( char, ( qend - carat ) + strlen( lvl->domain ) ); + sycklval->name[0] = '\0'; + strcat( sycklval->name, lvl->domain ); + strncat( sycklval->name, carat + 1, ( qend - carat ) - 1 ); + free( qstr ); + } + else + { + sycklval->name = S_ALLOC_N( char, strlen( qstr ) ); + S_MEMCPY( sycklval->name, qstr + 1, char, strlen( qstr ) ); + free( qstr ); + } + } + return YAML_TRANSFER; + } + sycklval->name = qstr; + return YAML_TAGURI; + } +yy25: yych = *++YYCURSOR; +yy26: +#line 316 + { goto Comment; } +yy27: yych = *++YYCURSOR; +yy28: +#line 318 + { 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; +yy30: yych = *++YYCURSOR; +yy31: +#line 331 + { ENSURE_YAML_IEND(lvl, -1); + YYPOS(0); + return 0; + } +yy32: yych = *++YYCURSOR; +yy33: +#line 222 + { POP_LEVEL(); + lvl = CURRENT_LEVEL(); + if ( lvl->status == syck_lvl_seq ) + { + FORCE_NEXT_TOKEN(YAML_INDENT); + } + else if ( lvl->status == syck_lvl_map ) + { + lvl->ncount++; + if ( lvl->ncount % 2 == 1 ) + { + FORCE_NEXT_TOKEN(':'); + } + else + { + FORCE_NEXT_TOKEN(YAML_INDENT); + } + } + return YAML_IEND; + } +yy34: yych = *++YYCURSOR; + if(yych == '\n') goto yy32; + goto yy11; +yy35: yych = *++YYCURSOR; +yy36: +#line 218 + { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_seq); + return YAML_IOPEN; + } +yy37: yych = *++YYCURSOR; + if(yych == '\n') goto yy35; + goto yy11; +yy38: yych = *++YYCURSOR; +yy39: +#line 214 + { ADD_BYTE_LEVEL(lvl, lvl->spaces + 1, syck_lvl_map); + return YAML_IOPEN; + } +yy40: yych = *++YYCURSOR; + if(yych == '\n') goto yy38; + goto yy11; +yy41: yych = *++YYCURSOR; +yy42: +#line 209 + { ENSURE_YAML_IEND(lvl, -1); + YYPOS(0); + return 0; + } +yy43: yych = *++YYCURSOR; + if(yych == '\n') goto yy41; + goto yy11; +yy44: yych = *++YYCURSOR; + if(yych == '\n') goto yy41; + goto yy11; +} +#line 336 + + + } + +Directive: + { + YYTOKTMP = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy45; +yy46: ++YYCURSOR; +yy45: + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '\000') goto yy47; + if(yych == 'V') goto yy48; + 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; +yy49: +#line 348 + { YYCURSOR = YYTOKTMP; + return YAML_DOCSEP; + } +yy50: yych = *++YYCURSOR; + goto yy49; +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; + } +yy53: yych = *++YYCURSOR; + if(yych <= '-') goto yy47; + if(yych == '`') goto yy47; + if(yych >= '{') 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; + } + } +yy56: yych = *++YYCURSOR; +yy57: +#line 346 + { goto Directive; } +yy58: yych = *++YYCURSOR; + if(yych == '\n') goto yy56; + goto yy47; +} +#line 351 + + + } + +Comment: + { + YYTOKTMP = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy59; +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; + } +yy61:yy62: yych = *++YYCURSOR; +yy63: +#line 361 + { goto Document; } +yy64: yych = *++YYCURSOR; + if(yych == '\n') goto yy67; +yy65: +#line 363 + { goto Comment; } +yy66: yych = *++YYCURSOR; + goto yy65; +yy67: yych = *++YYCURSOR; + goto yy63; +} +#line 365 + + + } + +Scalar: + { + int idx = 0; + int cap = 100; + char *str = S_ALLOC_N( char, cap ); + char *tok; + +Scalar2: + tok = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy68; +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; + } +yy70: yych = *++YYCURSOR; + if(yych <= 'M'){ + if(yych == 'C') goto yy78; + } else { + if(yych <= 'N') goto yy80; + if(yych == 'Z') goto yy83; + } +yy71: +#line 404 + { YYCURSOR = tok; + goto ScalarEnd; + } +yy72: yych = *++YYCURSOR; + if(yych == '\n') goto yy77; +yy73: +#line 412 + { CAT(str, cap, idx, tok[0]); + goto Scalar2; + } +yy74: yych = *++YYCURSOR; +yy75: +#line 408 + { 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; + } +yy78: yych = *++YYCURSOR; +yy79: +#line 381 + { goto Scalar2; } +yy80: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy81: if(yych <= '/') goto yy82; + if(yych <= '9') goto yy80; +yy82: +#line 383 + { if ( tok + 2 < YYCURSOR ) + { + char *count = tok + 2; + int total = strtod( count, NULL ); + int i; + for ( i = 0; i < total; i++ ) + { + CAT(str, cap, idx, '\n'); + } + } + else + { + CAT(str, cap, idx, '\n'); + } + goto Scalar2; + } +yy83: yych = *++YYCURSOR; +yy84: +#line 400 + { CAT(str, cap, idx, '\0'); + goto Scalar2; + } +} +#line 416 + + +ScalarEnd: + { + SyckNode *n = syck_alloc_str(); + n->data.str->ptr = str; + n->data.str->len = idx; + sycklval->nodeData = n; + POP_LEVEL(); + if ( parser->implicit_typing == 1 ) + { + try_tag_implicit( sycklval->nodeData, parser->taguri_expansion ); + } + return YAML_PLAIN; + } + } + +} + +char * +get_inline( SyckParser *parser ) +{ + int idx = 0; + int cap = 100; + char *str = S_ALLOC_N( char, cap ); + char *tok; + +Inline: + { + tok = YYCURSOR; + +{ + YYCTYPE yych; + unsigned int yyaccept; + goto yy85; +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; + } +yy87: yych = *++YYCURSOR; +yy88: +#line 449 + { return str; } +yy89: yych = *++YYCURSOR; + if(yych == '\n') goto yy94; +yy90: +#line 455 + { CAT(str, cap, idx, tok[0]); + goto Inline; + } +yy91: yych = *++YYCURSOR; +yy92: +#line 451 + { YYCURSOR = tok; + return str; + } +yy93: yych = *++YYCURSOR; + goto yy90; +yy94: yych = *++YYCURSOR; + goto yy88; +} +#line 459 + + + } + +} + diff --git a/ext/syck/emitter.c b/ext/syck/emitter.c index 2be1a688e8..62f1b57f48 100644 --- a/ext/syck/emitter.c +++ b/ext/syck/emitter.c @@ -102,7 +102,7 @@ syck_base64dec( char *s, long len ) } } *end = '\0'; - /* RSTRING(buf)->len = ptr - RSTRING(buf)->ptr; */ + //RSTRING(buf)->len = ptr - RSTRING(buf)->ptr; return ptr; } diff --git a/ext/syck/gram.c b/ext/syck/gram.c index edc6da3a45..5bdd025629 100644 --- a/ext/syck/gram.c +++ b/ext/syck/gram.c @@ -62,27 +62,29 @@ YAML_ANCHOR = 258, YAML_ALIAS = 259, YAML_TRANSFER = 260, - YAML_ITRANSFER = 261, - YAML_WORD = 262, - YAML_PLAIN = 263, - YAML_BLOCK = 264, - YAML_DOCSEP = 265, - YAML_IOPEN = 266, - YAML_INDENT = 267, - YAML_IEND = 268 + YAML_TAGURI = 261, + YAML_ITRANSFER = 262, + YAML_WORD = 263, + YAML_PLAIN = 264, + YAML_BLOCK = 265, + YAML_DOCSEP = 266, + YAML_IOPEN = 267, + YAML_INDENT = 268, + YAML_IEND = 269 }; #endif #define YAML_ANCHOR 258 #define YAML_ALIAS 259 #define YAML_TRANSFER 260 -#define YAML_ITRANSFER 261 -#define YAML_WORD 262 -#define YAML_PLAIN 263 -#define YAML_BLOCK 264 -#define YAML_DOCSEP 265 -#define YAML_IOPEN 266 -#define YAML_INDENT 267 -#define YAML_IEND 268 +#define YAML_TAGURI 261 +#define YAML_ITRANSFER 262 +#define YAML_WORD 263 +#define YAML_PLAIN 264 +#define YAML_BLOCK 265 +#define YAML_DOCSEP 266 +#define YAML_IOPEN 267 +#define YAML_INDENT 268 +#define YAML_IEND 269 @@ -119,7 +121,7 @@ typedef union { char *name; } yystype; /* Line 193 of /usr/local/share/bison/yacc.c. */ -#line 123 "y.tab.c" +#line 125 "y.tab.c" # define YYSTYPE yystype # define YYSTYPE_IS_TRIVIAL 1 #endif @@ -141,7 +143,7 @@ int sycklex( YYSTYPE *, SyckParser * ); /* Line 213 of /usr/local/share/bison/yacc.c. */ -#line 144 "y.tab.c" +#line 146 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -238,21 +240,21 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 35 -#define YYLAST 333 +#define YYFINAL 38 +#define YYLAST 414 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 23 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 25 /* YYNRULES -- Number of rules. */ -#define YYNRULES 63 +#define YYNRULES 69 /* YYNRULES -- Number of states. */ -#define YYNSTATES 106 +#define YYNSTATES 121 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 268 +#define YYMAXUTOK 269 #define YYTRANSLATE(X) \ ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) @@ -264,8 +266,8 @@ static const unsigned char yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 16, 21, 14, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 15, 2, + 2, 2, 2, 2, 21, 15, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -286,7 +288,7 @@ static const unsigned char yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13 + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; #if YYDEBUG @@ -296,33 +298,35 @@ static const unsigned char yyprhs[] = { 0, 0, 3, 5, 8, 9, 11, 13, 15, 18, 22, 26, 28, 31, 32, 34, 37, 39, 41, 43, - 46, 49, 52, 55, 57, 59, 61, 64, 66, 68, - 70, 72, 74, 78, 81, 83, 87, 90, 94, 97, - 99, 103, 106, 110, 113, 115, 119, 123, 127, 131, - 134, 138, 141, 145, 147, 153, 155, 159, 163, 166, - 170, 174, 177, 179 + 46, 49, 52, 55, 58, 60, 62, 64, 67, 70, + 72, 74, 76, 78, 80, 84, 87, 89, 93, 96, + 100, 103, 107, 110, 112, 116, 119, 123, 126, 128, + 132, 136, 140, 144, 147, 151, 154, 158, 161, 165, + 167, 173, 175, 179, 183, 186, 190, 194, 197, 199 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yysigned_char yyrhs[] = { - 24, 0, -1, 33, -1, 10, 27, -1, -1, 32, + 24, 0, -1, 33, -1, 11, 27, -1, -1, 32, -1, 26, -1, 33, -1, 3, 26, -1, 28, 32, 31, -1, 28, 26, 31, -1, 25, -1, 28, 29, - -1, -1, 11, -1, 28, 12, -1, 13, -1, 12, - -1, 13, -1, 30, 31, -1, 5, 32, -1, 6, - 32, -1, 3, 32, -1, 4, -1, 7, -1, 8, - -1, 5, 33, -1, 9, -1, 34, -1, 38, -1, - 40, -1, 46, -1, 28, 36, 29, -1, 14, 27, - -1, 37, -1, 5, 30, 36, -1, 5, 36, -1, - 3, 30, 36, -1, 3, 36, -1, 35, -1, 37, - 30, 35, -1, 37, 30, -1, 17, 39, 18, -1, - 17, 18, -1, 25, -1, 39, 21, 25, -1, 28, - 41, 29, -1, 28, 44, 29, -1, 5, 30, 44, - -1, 5, 41, -1, 3, 30, 44, -1, 3, 41, - -1, 32, 15, 27, -1, 42, -1, 22, 25, 30, - 15, 27, -1, 43, -1, 44, 30, 35, -1, 44, - 30, 43, -1, 44, 30, -1, 25, 15, 27, -1, + -1, -1, 12, -1, 28, 13, -1, 14, -1, 13, + -1, 14, -1, 30, 31, -1, 5, 32, -1, 6, + 32, -1, 7, 32, -1, 3, 32, -1, 4, -1, + 8, -1, 9, -1, 5, 33, -1, 6, 33, -1, + 10, -1, 34, -1, 38, -1, 40, -1, 46, -1, + 28, 36, 29, -1, 15, 27, -1, 37, -1, 5, + 30, 36, -1, 5, 36, -1, 6, 30, 36, -1, + 6, 36, -1, 3, 30, 36, -1, 3, 36, -1, + 35, -1, 37, 30, 35, -1, 37, 30, -1, 17, + 39, 18, -1, 17, 18, -1, 25, -1, 39, 21, + 25, -1, 28, 41, 29, -1, 28, 44, 29, -1, + 5, 30, 44, -1, 5, 41, -1, 6, 30, 44, + -1, 6, 41, -1, 3, 30, 44, -1, 3, 41, + -1, 32, 16, 27, -1, 42, -1, 22, 25, 30, + 16, 27, -1, 43, -1, 44, 30, 35, -1, 44, + 30, 43, -1, 44, 30, -1, 25, 16, 27, -1, 19, 47, 20, -1, 19, 20, -1, 45, -1, 47, 21, 45, -1 }; @@ -332,11 +336,11 @@ static const unsigned short yyrline[] = { 0, 44, 44, 48, 52, 58, 59, 62, 63, 72, 76, 82, 83, 96, 114, 115, 118, 121, 124, 125, - 133, 138, 146, 150, 158, 171, 178, 183, 184, 185, - 186, 187, 193, 199, 205, 206, 211, 216, 220, 226, - 230, 235, 244, 248, 254, 258, 268, 273, 280, 285, - 290, 294, 300, 315, 316, 324, 325, 337, 344, 353, - 361, 365, 371, 372 + 133, 138, 143, 151, 155, 163, 176, 183, 188, 193, + 194, 195, 196, 197, 203, 209, 215, 216, 221, 226, + 231, 236, 240, 246, 250, 255, 264, 268, 274, 278, + 288, 293, 300, 305, 310, 315, 320, 324, 330, 345, + 346, 354, 355, 367, 374, 383, 391, 395, 401, 402 }; #endif @@ -346,9 +350,9 @@ static const unsigned short yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "YAML_ANCHOR", "YAML_ALIAS", - "YAML_TRANSFER", "YAML_ITRANSFER", "YAML_WORD", "YAML_PLAIN", - "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT", "YAML_IEND", - "'-'", "':'", "'+'", "'['", "']'", "'{'", "'}'", "','", "'?'", + "YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER", "YAML_WORD", + "YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT", + "YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'", "','", "'?'", "$accept", "doc", "atom", "ind_rep", "atom_or_empty", "indent_open", "indent_end", "indent_sep", "indent_flex_end", "word_rep", "struct_rep", "implicit_seq", "basic_seq", "top_imp_seq", "in_implicit_seq", @@ -364,7 +368,7 @@ static const char *const yytname[] = static const unsigned short yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 45, 58, 43, 91, 93, 123, + 265, 266, 267, 268, 269, 45, 58, 91, 93, 123, 125, 44, 63 }; # endif @@ -374,11 +378,11 @@ static const unsigned char yyr1[] = { 0, 23, 24, 24, 24, 25, 25, 26, 26, 26, 26, 27, 27, 27, 28, 28, 29, 30, 31, 31, - 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, - 33, 33, 34, 35, 36, 36, 36, 36, 36, 37, - 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, - 41, 41, 42, 43, 43, 44, 44, 44, 44, 45, - 46, 46, 47, 47 + 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, + 33, 33, 33, 33, 34, 35, 36, 36, 36, 36, + 36, 36, 36, 37, 37, 37, 38, 38, 39, 39, + 40, 40, 41, 41, 41, 41, 41, 41, 42, 43, + 43, 44, 44, 44, 44, 45, 46, 46, 47, 47 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -386,11 +390,11 @@ static const unsigned char yyr2[] = { 0, 2, 1, 2, 0, 1, 1, 1, 2, 3, 3, 1, 2, 0, 1, 2, 1, 1, 1, 2, - 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 3, 2, 1, 3, 2, 3, 2, 1, - 3, 2, 3, 2, 1, 3, 3, 3, 3, 2, - 3, 2, 3, 1, 5, 1, 3, 3, 2, 3, - 3, 2, 1, 3 + 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 1, 3, 2, 1, 3, 2, 3, + 2, 3, 2, 1, 3, 2, 3, 2, 1, 3, + 3, 3, 3, 2, 3, 2, 3, 2, 3, 1, + 5, 1, 3, 3, 2, 3, 3, 2, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -398,51 +402,55 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned char yydefact[] = { - 4, 0, 27, 13, 14, 0, 0, 0, 0, 2, - 28, 29, 30, 31, 26, 0, 23, 0, 0, 24, - 25, 11, 6, 3, 0, 5, 7, 43, 44, 0, - 0, 61, 0, 62, 0, 1, 0, 0, 15, 13, - 0, 0, 39, 0, 34, 0, 53, 55, 0, 8, - 22, 0, 20, 0, 21, 0, 0, 16, 0, 12, - 0, 42, 0, 13, 60, 0, 17, 0, 38, 51, - 0, 36, 49, 33, 0, 13, 32, 41, 46, 47, - 58, 18, 0, 10, 9, 45, 59, 63, 0, 0, - 37, 50, 35, 48, 0, 52, 40, 56, 57, 19, - 0, 0, 13, 0, 0, 54 + 4, 0, 0, 29, 13, 14, 0, 0, 0, 0, + 2, 30, 31, 32, 33, 27, 28, 0, 24, 0, + 0, 0, 25, 26, 11, 6, 3, 0, 5, 7, + 47, 48, 0, 0, 67, 0, 68, 0, 1, 0, + 0, 0, 15, 13, 0, 0, 43, 0, 36, 0, + 59, 61, 0, 8, 23, 0, 20, 21, 0, 0, + 22, 0, 0, 0, 16, 0, 12, 0, 46, 0, + 13, 66, 0, 17, 0, 42, 57, 0, 38, 53, + 0, 40, 55, 35, 0, 13, 34, 45, 50, 51, + 64, 18, 0, 10, 9, 49, 65, 69, 0, 0, + 0, 41, 56, 37, 52, 39, 54, 0, 58, 44, + 62, 63, 19, 0, 0, 0, 13, 0, 0, 0, + 60 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yysigned_char yydefgoto[] = { - -1, 7, 21, 22, 23, 29, 59, 80, 83, 25, - 26, 10, 42, 68, 44, 11, 30, 12, 45, 46, - 47, 48, 33, 13, 34 + -1, 8, 24, 25, 26, 32, 66, 90, 93, 28, + 29, 11, 46, 75, 48, 12, 33, 13, 49, 50, + 51, 52, 36, 14, 37 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -54 +#define YYPACT_NINF -68 static const short yypact[] = { - 267, 278, -54, 245, -54, 228, 176, 8, 140, -54, - -54, -54, -54, -54, -54, 245, -54, 262, 325, -54, - -54, -54, -54, -54, 100, -54, -54, -54, -54, 120, - 48, -54, -5, -54, 52, -54, 295, 295, -54, 245, - 245, -3, -54, 13, 9, 13, -54, -54, 76, -54, - -54, 325, -54, 325, -54, 194, 211, -54, 108, -54, - 103, -54, 245, 245, -54, 245, -54, 152, -54, -54, - 152, -54, -54, -54, 9, 245, -54, 24, -54, -54, - 164, -54, 108, -54, -54, -54, -54, -54, 307, 307, - -54, 9, -54, 9, 32, -54, -54, -54, -54, -54, - 6, 6, 245, 313, 313, -54 + 133, 177, 177, -68, 352, -68, 335, 283, 27, 223, + -68, -68, -68, -68, -68, -68, -68, 352, -68, 369, + 369, 97, -68, -68, -68, -68, -68, 154, -68, -68, + -68, -68, 203, -12, -68, 17, -68, 46, -68, 386, + 386, 386, -68, 352, 352, 25, -68, 30, 33, 30, + -68, -68, 67, -68, -68, 97, -68, -68, 97, 97, + -68, 301, 318, 318, -68, 107, -68, 37, -68, 352, + 352, -68, 352, -68, 243, -68, -68, 243, -68, -68, + 243, -68, -68, -68, 33, 352, -68, 40, -68, -68, + 263, -68, 107, -68, -68, -68, -68, -68, 399, 399, + 399, -68, 33, -68, 33, -68, 33, 42, -68, -68, + -68, -68, -68, 84, 84, 84, 352, 9, 9, 9, + -68 }; /* YYPGOTO[NTERM-NUM]. */ static const yysigned_char yypgoto[] = { - -54, -54, 31, -10, -35, 0, 12, -12, -53, -2, - 41, -54, -47, -6, -54, -54, -54, -54, 44, -54, - -28, 15, 14, -54, -54 + -68, -68, 10, -9, -38, 0, -7, 86, -56, 56, + 29, -68, -62, -6, -68, -68, -68, -68, -2, -68, + -26, -67, -3, -68, -68 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -452,95 +460,113 @@ static const yysigned_char yypgoto[] = #define YYTABLE_NINF -1 static const unsigned char yytable[] = { - 8, 8, 43, 24, 73, 49, 41, 84, 35, 103, - 63, 104, 75, 50, 58, 52, 54, 8, 43, 58, - 39, 66, 60, 43, 67, 70, 57, 60, 86, 99, - 96, 71, 77, 97, 50, 52, 28, 32, 39, 24, - 95, 9, 14, 67, 70, 49, 82, 102, 82, 50, - 71, 52, 98, 50, 52, 76, 8, 78, 14, 0, - 79, 90, 94, 24, 92, 41, 61, 105, 41, 62, - 82, 74, 64, 65, 0, 24, 100, 101, 41, 87, - 69, 72, 91, 71, 0, 93, 50, 52, 66, 57, - 0, 100, 101, 85, 90, 92, 32, 14, 71, 69, - 72, 0, 24, 55, 16, 56, 18, 19, 20, 2, - 0, 4, 38, 57, 39, 66, 81, 5, 75, 6, - 66, 81, 40, 55, 16, 56, 18, 19, 20, 2, - 0, 4, 38, 0, 39, 0, 0, 5, 0, 6, - 0, 0, 40, 36, 16, 37, 18, 19, 20, 0, - 0, 0, 38, 0, 39, 88, 16, 89, 18, 19, - 20, 0, 40, 0, 0, 0, 39, 51, 16, 53, - 18, 19, 20, 0, 40, 0, 0, 0, 39, 15, - 16, 17, 18, 19, 20, 2, 40, 4, 0, 0, - 0, 0, 0, 5, 0, 6, 31, 55, 16, 56, - 18, 19, 20, 2, 0, 4, 66, 0, 39, 0, - 0, 5, 0, 6, 36, 16, 56, 18, 19, 20, - 2, 0, 4, 66, 0, 39, 0, 0, 5, 0, - 6, 15, 16, 17, 18, 19, 20, 2, 0, 4, - 0, 0, 0, 0, 0, 5, 27, 6, 15, 16, - 17, 18, 19, 20, 2, 0, 4, 0, 0, 0, - 0, 0, 5, 0, 6, 51, 16, 17, 18, 19, - 20, 2, 1, 4, 0, 0, 2, 3, 4, 5, - 0, 6, 0, 1, 5, 0, 6, 2, 0, 4, - 0, 0, 0, 0, 0, 5, 0, 6, 36, 16, - 37, 18, 19, 20, 0, 0, 0, 66, 0, 39, - 88, 16, 89, 18, 19, 20, 103, 0, 104, 66, - 0, 39, 0, 0, 0, 66, 0, 39, 51, 16, - 53, 18, 19, 20 + 9, 9, 9, 47, 27, 83, 68, 102, 53, 69, + 104, 94, 117, 106, 118, 119, 31, 35, 65, 9, + 9, 47, 73, 65, 43, 109, 47, 38, 110, 10, + 15, 16, 96, 70, 78, 81, 112, 76, 79, 82, + 86, 85, 88, 27, 64, 89, 73, 108, 15, 16, + 73, 91, 53, 85, 84, 43, 78, 81, 116, 76, + 79, 82, 9, 9, 111, 45, 71, 72, 101, 97, + 27, 103, 0, 54, 105, 56, 57, 60, 120, 95, + 73, 64, 35, 67, 0, 27, 0, 117, 67, 118, + 119, 15, 16, 78, 81, 54, 56, 57, 0, 43, + 55, 18, 58, 59, 21, 22, 23, 101, 103, 105, + 0, 54, 78, 81, 56, 57, 27, 54, 56, 57, + 73, 91, 0, 0, 0, 74, 77, 80, 0, 0, + 45, 0, 0, 45, 87, 0, 45, 0, 1, 2, + 0, 0, 0, 3, 4, 5, 45, 74, 77, 80, + 6, 92, 7, 92, 54, 56, 57, 61, 18, 62, + 63, 21, 22, 23, 3, 0, 5, 42, 64, 43, + 107, 6, 0, 7, 0, 0, 44, 0, 92, 0, + 0, 0, 1, 2, 113, 114, 115, 3, 0, 5, + 0, 0, 0, 0, 6, 0, 7, 0, 0, 0, + 0, 0, 0, 113, 114, 115, 61, 18, 62, 63, + 21, 22, 23, 3, 0, 5, 42, 0, 43, 0, + 6, 0, 7, 0, 0, 44, 39, 18, 40, 41, + 21, 22, 23, 0, 0, 0, 42, 0, 43, 0, + 0, 0, 0, 0, 0, 44, 98, 18, 99, 100, + 21, 22, 23, 0, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 44, 55, 18, 58, 59, + 21, 22, 23, 0, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 44, 17, 18, 19, 20, + 21, 22, 23, 3, 0, 5, 0, 0, 0, 0, + 6, 0, 7, 34, 61, 18, 62, 63, 21, 22, + 23, 3, 0, 5, 73, 0, 43, 0, 6, 0, + 7, 39, 18, 62, 63, 21, 22, 23, 3, 0, + 5, 73, 0, 43, 0, 6, 0, 7, 17, 18, + 19, 20, 21, 22, 23, 3, 0, 5, 0, 0, + 0, 0, 6, 30, 7, 17, 18, 19, 20, 21, + 22, 23, 3, 0, 5, 0, 0, 0, 0, 6, + 0, 7, 55, 18, 19, 20, 21, 22, 23, 3, + 0, 5, 0, 0, 0, 0, 6, 0, 7, 39, + 18, 40, 41, 21, 22, 23, 0, 0, 0, 73, + 0, 43, 98, 18, 99, 100, 21, 22, 23, 0, + 0, 0, 73, 0, 43 }; static const yysigned_char yycheck[] = { - 0, 1, 8, 3, 39, 15, 8, 60, 0, 3, - 15, 5, 15, 15, 24, 17, 18, 17, 24, 29, - 14, 12, 24, 29, 36, 37, 13, 29, 63, 82, - 77, 37, 44, 80, 36, 37, 5, 6, 14, 39, - 75, 0, 1, 55, 56, 55, 58, 15, 60, 51, - 56, 53, 80, 55, 56, 43, 56, 45, 17, -1, - 48, 67, 74, 63, 70, 67, 18, 102, 70, 21, - 82, 40, 20, 21, -1, 75, 88, 89, 80, 65, - 36, 37, 67, 89, -1, 70, 88, 89, 12, 13, - -1, 103, 104, 62, 100, 101, 65, 56, 104, 55, - 56, -1, 102, 3, 4, 5, 6, 7, 8, 9, - -1, 11, 12, 13, 14, 12, 13, 17, 15, 19, - 12, 13, 22, 3, 4, 5, 6, 7, 8, 9, - -1, 11, 12, -1, 14, -1, -1, 17, -1, 19, - -1, -1, 22, 3, 4, 5, 6, 7, 8, -1, - -1, -1, 12, -1, 14, 3, 4, 5, 6, 7, - 8, -1, 22, -1, -1, -1, 14, 3, 4, 5, - 6, 7, 8, -1, 22, -1, -1, -1, 14, 3, - 4, 5, 6, 7, 8, 9, 22, 11, -1, -1, - -1, -1, -1, 17, -1, 19, 20, 3, 4, 5, - 6, 7, 8, 9, -1, 11, 12, -1, 14, -1, - -1, 17, -1, 19, 3, 4, 5, 6, 7, 8, - 9, -1, 11, 12, -1, 14, -1, -1, 17, -1, - 19, 3, 4, 5, 6, 7, 8, 9, -1, 11, - -1, -1, -1, -1, -1, 17, 18, 19, 3, 4, - 5, 6, 7, 8, 9, -1, 11, -1, -1, -1, - -1, -1, 17, -1, 19, 3, 4, 5, 6, 7, - 8, 9, 5, 11, -1, -1, 9, 10, 11, 17, - -1, 19, -1, 5, 17, -1, 19, 9, -1, 11, - -1, -1, -1, -1, -1, 17, -1, 19, 3, 4, - 5, 6, 7, 8, -1, -1, -1, 12, -1, 14, - 3, 4, 5, 6, 7, 8, 3, -1, 5, 12, - -1, 14, -1, -1, -1, 12, -1, 14, 3, 4, - 5, 6, 7, 8 + 0, 1, 2, 9, 4, 43, 18, 74, 17, 21, + 77, 67, 3, 80, 5, 6, 6, 7, 27, 19, + 20, 27, 13, 32, 15, 87, 32, 0, 90, 0, + 1, 2, 70, 16, 40, 41, 92, 39, 40, 41, + 47, 16, 49, 43, 14, 52, 13, 85, 19, 20, + 13, 14, 61, 16, 44, 15, 62, 63, 16, 61, + 62, 63, 62, 63, 90, 9, 20, 21, 74, 72, + 70, 77, -1, 17, 80, 19, 20, 21, 116, 69, + 13, 14, 72, 27, -1, 85, -1, 3, 32, 5, + 6, 62, 63, 99, 100, 39, 40, 41, -1, 15, + 3, 4, 5, 6, 7, 8, 9, 113, 114, 115, + -1, 55, 118, 119, 58, 59, 116, 61, 62, 63, + 13, 14, -1, -1, -1, 39, 40, 41, -1, -1, + 74, -1, -1, 77, 48, -1, 80, -1, 5, 6, + -1, -1, -1, 10, 11, 12, 90, 61, 62, 63, + 17, 65, 19, 67, 98, 99, 100, 3, 4, 5, + 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, + 84, 17, -1, 19, -1, -1, 22, -1, 92, -1, + -1, -1, 5, 6, 98, 99, 100, 10, -1, 12, + -1, -1, -1, -1, 17, -1, 19, -1, -1, -1, + -1, -1, -1, 117, 118, 119, 3, 4, 5, 6, + 7, 8, 9, 10, -1, 12, 13, -1, 15, -1, + 17, -1, 19, -1, -1, 22, 3, 4, 5, 6, + 7, 8, 9, -1, -1, -1, 13, -1, 15, -1, + -1, -1, -1, -1, -1, 22, 3, 4, 5, 6, + 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, + -1, -1, -1, -1, -1, 22, 3, 4, 5, 6, + 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, + -1, -1, -1, -1, -1, 22, 3, 4, 5, 6, + 7, 8, 9, 10, -1, 12, -1, -1, -1, -1, + 17, -1, 19, 20, 3, 4, 5, 6, 7, 8, + 9, 10, -1, 12, 13, -1, 15, -1, 17, -1, + 19, 3, 4, 5, 6, 7, 8, 9, 10, -1, + 12, 13, -1, 15, -1, 17, -1, 19, 3, 4, + 5, 6, 7, 8, 9, 10, -1, 12, -1, -1, + -1, -1, 17, 18, 19, 3, 4, 5, 6, 7, + 8, 9, 10, -1, 12, -1, -1, -1, -1, 17, + -1, 19, 3, 4, 5, 6, 7, 8, 9, 10, + -1, 12, -1, -1, -1, -1, 17, -1, 19, 3, + 4, 5, 6, 7, 8, 9, -1, -1, -1, 13, + -1, 15, 3, 4, 5, 6, 7, 8, 9, -1, + -1, -1, 13, -1, 15 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 5, 9, 10, 11, 17, 19, 24, 28, 33, - 34, 38, 40, 46, 33, 3, 4, 5, 6, 7, - 8, 25, 26, 27, 28, 32, 33, 18, 25, 28, - 39, 20, 25, 45, 47, 0, 3, 5, 12, 14, - 22, 32, 35, 36, 37, 41, 42, 43, 44, 26, - 32, 3, 32, 5, 32, 3, 5, 13, 26, 29, - 32, 18, 21, 15, 20, 21, 12, 30, 36, 41, - 30, 36, 41, 27, 25, 15, 29, 30, 29, 29, - 30, 13, 30, 31, 31, 25, 27, 45, 3, 5, - 36, 44, 36, 44, 30, 27, 35, 35, 43, 31, - 30, 30, 15, 3, 5, 27 + 0, 5, 6, 10, 11, 12, 17, 19, 24, 28, + 33, 34, 38, 40, 46, 33, 33, 3, 4, 5, + 6, 7, 8, 9, 25, 26, 27, 28, 32, 33, + 18, 25, 28, 39, 20, 25, 45, 47, 0, 3, + 5, 6, 13, 15, 22, 32, 35, 36, 37, 41, + 42, 43, 44, 26, 32, 3, 32, 32, 5, 6, + 32, 3, 5, 6, 14, 26, 29, 32, 18, 21, + 16, 20, 21, 13, 30, 36, 41, 30, 36, 41, + 30, 36, 41, 27, 25, 16, 29, 30, 29, 29, + 30, 14, 30, 31, 31, 25, 27, 45, 3, 5, + 6, 36, 44, 36, 44, 36, 44, 30, 27, 35, + 35, 43, 31, 30, 30, 30, 16, 3, 5, 6, + 27 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1183,6 +1209,14 @@ yyreduce: case 21: #line 139 "gram.y" + { + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 22: +#line 144 "gram.y" { if ( ((SyckParser *)parser)->implicit_typing == 1 ) { @@ -1192,15 +1226,15 @@ yyreduce: } break; - case 22: -#line 147 "gram.y" + case 23: +#line 152 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 23: -#line 151 "gram.y" + case 24: +#line 156 "gram.y" { /* * _Aliases_: The anchor symbol table is scanned for the anchor name. @@ -1210,8 +1244,8 @@ yyreduce: } break; - case 24: -#line 159 "gram.y" + case 25: +#line 164 "gram.y" { SyckNode *n = yyvsp[0].nodeData; if ( ((SyckParser *)parser)->taguri_expansion == 1 ) @@ -1226,157 +1260,197 @@ yyreduce: } break; - case 26: -#line 179 "gram.y" + case 27: +#line 184 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 32: -#line 194 "gram.y" + case 28: +#line 189 "gram.y" + { + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 34: +#line 204 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 33: -#line 200 "gram.y" + case 35: +#line 210 "gram.y" { yyval.nodeId = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ); } break; - case 35: -#line 207 "gram.y" + case 37: +#line 217 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 36: -#line 212 "gram.y" + case 38: +#line 222 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 37: -#line 217 "gram.y" + case 39: +#line 227 "gram.y" + { + syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 40: +#line 232 "gram.y" + { + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 41: +#line 237 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData ); } break; - case 38: -#line 221 "gram.y" + case 42: +#line 241 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 39: -#line 227 "gram.y" + case 43: +#line 247 "gram.y" { yyval.nodeData = syck_new_seq( yyvsp[0].nodeId ); } break; - case 40: -#line 231 "gram.y" + case 44: +#line 251 "gram.y" { syck_seq_add( yyvsp[-2].nodeData, yyvsp[0].nodeId ); yyval.nodeData = yyvsp[-2].nodeData; } break; - case 41: -#line 236 "gram.y" + case 45: +#line 256 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 42: -#line 245 "gram.y" + case 46: +#line 265 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 43: -#line 249 "gram.y" + case 47: +#line 269 "gram.y" { yyval.nodeData = syck_alloc_seq(); } break; - case 44: -#line 255 "gram.y" + case 48: +#line 275 "gram.y" { yyval.nodeData = syck_new_seq( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); } break; - case 45: -#line 259 "gram.y" + case 49: +#line 279 "gram.y" { syck_seq_add( yyvsp[-2].nodeData, syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); yyval.nodeData = yyvsp[-2].nodeData; } break; - case 46: -#line 269 "gram.y" + case 50: +#line 289 "gram.y" { apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData ); yyval.nodeData = yyvsp[-1].nodeData; } break; - case 47: -#line 274 "gram.y" + case 51: +#line 294 "gram.y" { apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData ); yyval.nodeData = yyvsp[-1].nodeData; } break; - case 48: -#line 281 "gram.y" + case 52: +#line 301 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 49: -#line 286 "gram.y" + case 53: +#line 306 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 50: -#line 291 "gram.y" + case 54: +#line 311 "gram.y" + { + syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 55: +#line 316 "gram.y" + { + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 56: +#line 321 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData ); } break; - case 51: -#line 295 "gram.y" + case 57: +#line 325 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 52: -#line 301 "gram.y" + case 58: +#line 331 "gram.y" { yyval.nodeData = syck_new_map( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ), @@ -1384,8 +1458,8 @@ yyreduce: } break; - case 54: -#line 317 "gram.y" + case 60: +#line 347 "gram.y" { yyval.nodeData = syck_new_map( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-3].nodeData ), @@ -1393,8 +1467,8 @@ yyreduce: } break; - case 56: -#line 326 "gram.y" + case 62: +#line 356 "gram.y" { if ( yyvsp[-2].nodeData->shortcut == NULL ) { @@ -1408,8 +1482,8 @@ yyreduce: } break; - case 57: -#line 338 "gram.y" + case 63: +#line 368 "gram.y" { apply_seq_in_map( (SyckParser *)parser, yyvsp[-2].nodeData ); syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData ); @@ -1418,15 +1492,15 @@ yyreduce: } break; - case 58: -#line 345 "gram.y" + case 64: +#line 375 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 59: -#line 354 "gram.y" + case 65: +#line 384 "gram.y" { yyval.nodeData = syck_new_map( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ), @@ -1434,22 +1508,22 @@ yyreduce: } break; - case 60: -#line 362 "gram.y" + case 66: +#line 392 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 61: -#line 366 "gram.y" + case 67: +#line 396 "gram.y" { yyval.nodeData = syck_alloc_map(); } break; - case 63: -#line 373 "gram.y" + case 69: +#line 403 "gram.y" { syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData ); syck_free_node( yyvsp[0].nodeData ); @@ -1461,7 +1535,7 @@ yyreduce: } /* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 1464 "y.tab.c" +#line 1538 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -1680,7 +1754,7 @@ yyreturn: } -#line 380 "gram.y" +#line 410 "gram.y" void diff --git a/ext/syck/gram.h b/ext/syck/gram.h index f21796a64d..d1e577b0ee 100644 --- a/ext/syck/gram.h +++ b/ext/syck/gram.h @@ -35,27 +35,29 @@ YAML_ANCHOR = 258, YAML_ALIAS = 259, YAML_TRANSFER = 260, - YAML_ITRANSFER = 261, - YAML_WORD = 262, - YAML_PLAIN = 263, - YAML_BLOCK = 264, - YAML_DOCSEP = 265, - YAML_IOPEN = 266, - YAML_INDENT = 267, - YAML_IEND = 268 + YAML_TAGURI = 261, + YAML_ITRANSFER = 262, + YAML_WORD = 263, + YAML_PLAIN = 264, + YAML_BLOCK = 265, + YAML_DOCSEP = 266, + YAML_IOPEN = 267, + YAML_INDENT = 268, + YAML_IEND = 269 }; #endif #define YAML_ANCHOR 258 #define YAML_ALIAS 259 #define YAML_TRANSFER 260 -#define YAML_ITRANSFER 261 -#define YAML_WORD 262 -#define YAML_PLAIN 263 -#define YAML_BLOCK 264 -#define YAML_DOCSEP 265 -#define YAML_IOPEN 266 -#define YAML_INDENT 267 -#define YAML_IEND 268 +#define YAML_TAGURI 261 +#define YAML_ITRANSFER 262 +#define YAML_WORD 263 +#define YAML_PLAIN 264 +#define YAML_BLOCK 265 +#define YAML_DOCSEP 266 +#define YAML_IOPEN 267 +#define YAML_INDENT 268 +#define YAML_IEND 269 @@ -68,7 +70,7 @@ typedef union { char *name; } yystype; /* Line 1281 of /usr/local/share/bison/yacc.c. */ -#line 72 "y.tab.h" +#line 74 "y.tab.h" # define YYSTYPE yystype #endif diff --git a/ext/syck/handler.c b/ext/syck/handler.c index ca15fd03a2..eddc6465af 100644 --- a/ext/syck/handler.c +++ b/ext/syck/handler.c @@ -99,7 +99,7 @@ syck_hdlr_get_anchor( SyckParser *p, char *a ) if ( n->anchor ) { S_FREE( a ); - } + } else { n->anchor = a; @@ -141,7 +141,7 @@ syck_taguri( char *domain, char *type_id, int type_len ) { char *uri = S_ALLOC_N( char, strlen( domain ) + type_len + 14 ); uri[0] = '\0'; - strcat( uri, "taguri:" ); + strcat( uri, "tag:" ); strcat( uri, domain ); strcat( uri, ":" ); strncat( uri, type_id, type_len ); diff --git a/ext/syck/implicit.c b/ext/syck/implicit.c index 80703a5297..a34e5d30f2 100644 --- a/ext/syck/implicit.c +++ b/ext/syck/implicit.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Tue Aug 26 00:28:27 2003 */ +/* Generated by re2c 0.5 on Thu Oct 9 09:11:08 2003 */ #line 1 "implicit.re" /* * implicit.re @@ -58,35 +58,56 @@ yy1: ++YYCURSOR; yy0: if((YYLIMIT - YYCURSOR) < 26) YYFILL(26); yych = *YYCURSOR; - 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; + 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; + } + } + } } yy2: yych = *++YYCURSOR; if(yych <= '\000') goto yy6; @@ -95,18 +116,23 @@ yy3: { return "str"; } yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'o': goto yy163; - case 'u': goto yy191; - default: goto yy3; - } + if(yych == 'o') goto yy163; + if(yych == 'u') goto yy191; + goto yy3; yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'O': case 'o': goto yy163; - case 'U': goto yy186; - case 'u': goto yy187; - default: goto yy3; + 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; + } } yy6: yych = *++YYCURSOR; yy7: @@ -114,145 +140,126 @@ yy7: { return "null"; } yy8: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'r': goto yy184; - default: goto yy3; - } + if(yych == 'r') goto yy184; + goto yy3; yy9: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'R': goto yy180; - case 'r': goto yy181; - default: goto yy3; - } + if(yych == 'R') goto yy180; + if(yych == 'r') goto yy181; + goto yy3; yy10: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'e': goto yy179; - default: goto yy3; - } + if(yych == 'e') goto yy179; + goto yy3; yy11: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'E': goto yy177; - case 'e': goto yy178; - default: goto yy3; - } + if(yych == 'E') goto yy177; + if(yych == 'e') goto yy178; + goto yy3; yy12: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'f': goto yy176; - case 'n': goto yy173; - default: goto yy3; - } + if(yych == 'f') goto yy176; + if(yych == 'n') goto yy173; + goto yy3; yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'F': goto yy171; - case 'N': case 'n': goto yy173; - case 'f': goto yy172; - default: goto yy3; + 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; + } } yy14: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'a': goto yy168; - default: goto yy3; - } + if(yych == 'a') goto yy168; + goto yy3; yy15: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'A': goto yy159; - case 'a': goto yy160; - default: goto yy3; - } + if(yych == 'A') goto yy159; + if(yych == 'a') goto yy160; + goto yy3; yy16: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + if(yych <= '/'){ + if(yych == '.') goto yy158; + goto yy3; + } else { + if(yych <= '0') goto yy149; + if(yych <= '9') goto yy47; + goto yy3; } yy17: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + if(yych <= '/'){ + if(yych == '.') goto yy148; + goto yy3; + } else { + if(yych <= '0') goto yy149; + if(yych <= '9') goto yy47; + goto yy3; } yy18: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; + } } yy19: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; } yy20: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'I': goto yy33; - case 'N': goto yy31; - case 'i': goto yy32; - case 'n': goto yy30; - default: goto yy3; + 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; + } } yy21: yych = *++YYCURSOR; if(yych <= '\000') goto yy28; goto yy3; yy22: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '<': goto yy24; - default: goto yy3; - } + if(yych == '<') goto yy24; + goto yy3; yy23: yych = *++YYCURSOR; goto yy3; yy24: yych = *++YYCURSOR; @@ -270,37 +277,24 @@ yy29: #line 112 { return "default"; } yy30: yych = *++YYCURSOR; - switch(yych){ - case 'a': goto yy45; - default: goto yy25; - } + if(yych == 'a') goto yy45; + goto yy25; yy31: yych = *++YYCURSOR; - switch(yych){ - case 'A': goto yy40; - case 'a': goto yy41; - default: goto yy25; - } + if(yych == 'A') goto yy40; + if(yych == 'a') goto yy41; + goto yy25; yy32: yych = *++YYCURSOR; - switch(yych){ - case 'n': goto yy39; - default: goto yy25; - } + if(yych == 'n') goto yy39; + goto yy25; yy33: yych = *++YYCURSOR; - switch(yych){ - case 'N': goto yy34; - case 'n': goto yy35; - default: goto yy25; - } + if(yych == 'N') goto yy34; + if(yych == 'n') goto yy35; + goto yy25; yy34: yych = *++YYCURSOR; - switch(yych){ - case 'F': goto yy36; - default: goto yy25; - } + if(yych == 'F') goto yy36; + goto yy25; yy35: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy36; - default: goto yy25; - } + if(yych != 'f') goto yy25; yy36: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy37: yych = *++YYCURSOR; @@ -308,20 +302,13 @@ yy38: #line 98 { return "float#inf"; } yy39: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy36; - default: goto yy25; - } + if(yych == 'f') goto yy36; + goto yy25; yy40: yych = *++YYCURSOR; - switch(yych){ - case 'N': goto yy42; - default: goto yy25; - } + if(yych == 'N') goto yy42; + goto yy25; yy41: yych = *++YYCURSOR; - switch(yych){ - case 'N': goto yy42; - default: goto yy25; - } + if(yych != 'N') goto yy25; yy42: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy43: yych = *++YYCURSOR; @@ -329,61 +316,46 @@ yy44: #line 102 { return "float#nan"; } yy45: yych = *++YYCURSOR; - switch(yych){ - case 'n': goto yy42; - default: goto yy25; - } + if(yych == 'n') goto yy42; + goto yy25; yy46: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy48; + if(yych <= '9') goto yy65; + goto yy48; yy47: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; } yy49: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy51: yych = *++YYCURSOR; yy52: @@ -392,19 +364,14 @@ yy52: yy53: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; } yy55: yych = *++YYCURSOR; yy56: @@ -413,671 +380,277 @@ yy56: yy57: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy59: yych = *++YYCURSOR; - switch(yych){ - case '+': case '-': goto yy60; - default: goto yy25; - } + if(yych == '+') goto yy60; + if(yych != '-') goto yy25; yy60: yych = *++YYCURSOR; if(yych <= '\000') goto yy25; goto yy62; yy61: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; - } +yy62: if(yych <= '\000') goto yy63; + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy61; + goto yy25; yy63: yych = *++YYCURSOR; yy64: #line 96 { return "float#exp"; } yy65: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy48; + if(yych >= ':') goto yy48; yy66: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy67; - default: goto yy48; - } + if(yych != '-') goto yy48; yy67: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy68: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy69: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy70; - default: goto yy25; - } + if(yych != '-') goto yy25; yy70: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy71: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy72: yych = *++YYCURSOR; - 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; + 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; } yy73: yych = *++YYCURSOR; yy74: #line 104 { return "timestamp#ymd"; } yy75: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy117; + goto yy25; yy76: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy99; + goto yy25; yy77: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +yy78: if(yych <= '\037'){ + if(yych == '\t') goto yy77; + goto yy25; + } else { + if(yych <= ' ') goto yy77; + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; } yy79: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy80: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy81; - default: goto yy25; - } + if(yych != ':') goto yy25; yy81: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy82: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy83: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy84; - default: goto yy25; - } + if(yych != ':') goto yy25; yy84: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy85: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy86: yych = *++YYCURSOR; - switch(yych){ - case '\t': case ' ': goto yy89; - case '.': goto yy87; - default: goto yy25; + if(yych <= '\037'){ + if(yych == '\t') goto yy89; + goto yy25; + } else { + if(yych <= ' ') goto yy89; + if(yych != '.') goto yy25; } yy87: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; } yy89: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy90: switch(yych){ - case '\t': case ' ': goto yy89; - case '+': case '-': goto yy92; - case 'Z': goto yy91; - default: goto yy25; +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; + } } yy91: yych = *++YYCURSOR; if(yych <= '\000') goto yy96; goto yy25; yy92: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy93: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy94: yych = *++YYCURSOR; - switch(yych){ - case '\000': goto yy96; - case ':': goto yy95; - default: goto yy25; - } + if(yych <= '\000') goto yy96; + if(yych != ':') goto yy25; yy95: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy98; + goto yy25; yy96: yych = *++YYCURSOR; yy97: #line 108 { return "timestamp#spaced"; } yy98: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy91; + goto yy25; yy99: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy100: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy101; - default: goto yy25; - } + if(yych != ':') goto yy25; yy101: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy102: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy103: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy104; - default: goto yy25; - } + if(yych != ':') goto yy25; yy104: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy105: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy106: yych = *++YYCURSOR; - 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; - } + if(yych == '.') goto yy107; + if(yych <= '/') goto yy108; + if(yych <= '9') goto yy25; + goto yy108; yy107: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy109: yych = *++YYCURSOR; if(yych <= '\000') goto yy114; goto yy25; yy110: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy111: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy112: yych = *++YYCURSOR; - switch(yych){ - case '\000': goto yy114; - case ':': goto yy113; - default: goto yy25; - } + if(yych <= '\000') goto yy114; + if(yych != ':') goto yy25; yy113: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy116; + goto yy25; yy114: yych = *++YYCURSOR; yy115: #line 106 { return "timestamp#iso8601"; } yy116: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych <= '9') goto yy109; + goto yy25; yy117: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy118: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy119; - default: goto yy25; - } + if(yych != ':') goto yy25; yy119: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy120: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy121: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy122; - default: goto yy25; - } + if(yych != ':') goto yy25; yy122: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy123: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy25; + if(yych >= ':') goto yy25; yy124: yych = *++YYCURSOR; - 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; + if(yych <= '/'){ + if(yych != '.') goto yy126; + } else { + if(yych <= '9') goto yy25; + if(yych == 'Z') goto yy127; + goto yy126; } yy125: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; -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; +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; + } } yy127: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; @@ -1086,66 +659,48 @@ yy128: yych = *++YYCURSOR; yy129: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yych = *YYCURSOR; -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; +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; + } } yy131: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy134; + if(yych <= '7') goto yy146; + if(yych <= '9') goto yy144; + goto yy134; yy132: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy143; + if(yych <= '9') goto yy144; + goto yy143; yy133: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy135: yych = *++YYCURSOR; if(yych <= '\000') goto yy25; @@ -1153,29 +708,23 @@ yy135: yych = *++YYCURSOR; yy136: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy138: yych = *++YYCURSOR; yy139: @@ -1188,91 +737,49 @@ yy141: yy142: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; } yy144: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy143; + if(yych >= ':') goto yy143; yy145: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy67; - default: goto yy143; - } + if(yych == '-') goto yy67; + goto yy143; yy146: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy134; + if(yych <= '7') goto yy147; + if(yych <= '9') goto yy145; + goto yy134; yy147: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy67; - default: goto yy134; - } + if(yych == '-') goto yy67; + goto yy134; yy148: yych = *++YYCURSOR; - switch(yych){ - case 'I': goto yy151; - case 'i': goto yy150; - default: goto yy25; - } + if(yych == 'I') goto yy151; + if(yych == 'i') goto yy150; + goto yy25; yy149: yych = *++YYCURSOR; - switch(yych){ - case '\000': goto yy51; - case 'x': goto yy135; - default: goto yy134; - } + if(yych <= '\000') goto yy51; + if(yych == 'x') goto yy135; + goto yy134; yy150: yych = *++YYCURSOR; - switch(yych){ - case 'n': goto yy157; - default: goto yy25; - } + if(yych == 'n') goto yy157; + goto yy25; yy151: yych = *++YYCURSOR; - switch(yych){ - case 'N': goto yy152; - case 'n': goto yy153; - default: goto yy25; - } + if(yych == 'N') goto yy152; + if(yych == 'n') goto yy153; + goto yy25; yy152: yych = *++YYCURSOR; - switch(yych){ - case 'F': goto yy154; - default: goto yy25; - } + if(yych == 'F') goto yy154; + goto yy25; yy153: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy154; - default: goto yy25; - } + if(yych != 'f') goto yy25; yy154: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy155: yych = *++YYCURSOR; @@ -1280,36 +787,21 @@ yy156: #line 100 { return "float#neginf"; } yy157: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy154; - default: goto yy25; - } + if(yych == 'f') goto yy154; + goto yy25; yy158: yych = *++YYCURSOR; - switch(yych){ - case 'I': goto yy33; - case 'i': goto yy32; - default: goto yy25; - } + if(yych == 'I') goto yy33; + if(yych == 'i') goto yy32; + goto yy25; yy159: yych = *++YYCURSOR; - switch(yych){ - case 'L': goto yy166; - default: goto yy25; - } + if(yych == 'L') goto yy166; + goto yy25; yy160: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy161; - default: goto yy25; - } + if(yych != 'l') goto yy25; yy161: yych = *++YYCURSOR; - switch(yych){ - case 's': goto yy162; - default: goto yy25; - } + if(yych != 's') goto yy25; yy162: yych = *++YYCURSOR; - switch(yych){ - case 'e': goto yy163; - default: goto yy25; - } + if(yych != 'e') goto yy25; yy163: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy164: yych = *++YYCURSOR; @@ -1317,40 +809,23 @@ yy165: #line 86 { return "bool#no"; } yy166: yych = *++YYCURSOR; - switch(yych){ - case 'S': goto yy167; - default: goto yy25; - } + if(yych != 'S') goto yy25; yy167: yych = *++YYCURSOR; - switch(yych){ - case 'E': goto yy163; - default: goto yy25; - } + if(yych == 'E') goto yy163; + goto yy25; yy168: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy169; - default: goto yy25; - } + if(yych != 'l') goto yy25; yy169: yych = *++YYCURSOR; - switch(yych){ - case 's': goto yy170; - default: goto yy25; - } + if(yych != 's') goto yy25; yy170: yych = *++YYCURSOR; - switch(yych){ - case 'e': goto yy163; - default: goto yy25; - } + if(yych == 'e') goto yy163; + goto yy25; yy171: yych = *++YYCURSOR; - switch(yych){ - case 'F': goto yy163; - default: goto yy25; - } + if(yych == 'F') goto yy163; + goto yy25; yy172: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy163; - default: goto yy25; - } + if(yych == 'f') goto yy163; + goto yy25; yy173: yych = *++YYCURSOR; if(yych >= '\001') goto yy25; yy174: yych = *++YYCURSOR; @@ -1358,88 +833,51 @@ yy175: #line 84 { return "bool#yes"; } yy176: yych = *++YYCURSOR; - switch(yych){ - case 'f': goto yy163; - default: goto yy25; - } + if(yych == 'f') goto yy163; + goto yy25; yy177: yych = *++YYCURSOR; - switch(yych){ - case 'S': goto yy173; - default: goto yy25; - } + if(yych == 'S') goto yy173; + goto yy25; yy178: yych = *++YYCURSOR; - switch(yych){ - case 's': goto yy173; - default: goto yy25; - } + if(yych == 's') goto yy173; + goto yy25; yy179: yych = *++YYCURSOR; - switch(yych){ - case 's': goto yy173; - default: goto yy25; - } + if(yych == 's') goto yy173; + goto yy25; yy180: yych = *++YYCURSOR; - switch(yych){ - case 'U': goto yy183; - default: goto yy25; - } + if(yych == 'U') goto yy183; + goto yy25; yy181: yych = *++YYCURSOR; - switch(yych){ - case 'u': goto yy182; - default: goto yy25; - } + if(yych != 'u') goto yy25; yy182: yych = *++YYCURSOR; - switch(yych){ - case 'e': goto yy173; - default: goto yy25; - } + if(yych == 'e') goto yy173; + goto yy25; yy183: yych = *++YYCURSOR; - switch(yych){ - case 'E': goto yy173; - default: goto yy25; - } + if(yych == 'E') goto yy173; + goto yy25; yy184: yych = *++YYCURSOR; - switch(yych){ - case 'u': goto yy185; - default: goto yy25; - } + if(yych != 'u') goto yy25; yy185: yych = *++YYCURSOR; - switch(yych){ - case 'e': goto yy173; - default: goto yy25; - } + if(yych == 'e') goto yy173; + goto yy25; yy186: yych = *++YYCURSOR; - switch(yych){ - case 'L': goto yy190; - default: goto yy25; - } + if(yych == 'L') goto yy190; + goto yy25; yy187: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy188; - default: goto yy25; - } + if(yych != 'l') goto yy25; yy188: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy189; - default: goto yy25; - } + if(yych != 'l') goto yy25; yy189: yych = *++YYCURSOR; if(yych <= '\000') goto yy6; goto yy25; yy190: yych = *++YYCURSOR; - switch(yych){ - case 'L': goto yy189; - default: goto yy25; - } + if(yych == 'L') goto yy189; + goto yy25; yy191: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy192; - default: goto yy25; - } + if(yych != 'l') goto yy25; yy192: yych = *++YYCURSOR; - switch(yych){ - case 'l': goto yy189; - default: goto yy25; - } + if(yych == 'l') goto yy189; + goto yy25; } #line 118 @@ -1462,68 +900,27 @@ yy194: ++YYCURSOR; yy193: if((YYLIMIT - YYCURSOR) < 21) YYFILL(21); yych = *YYCURSOR; - 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; + 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; + } } yy195: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -1531,143 +928,50 @@ yy195: YYCURSOR = YYMARKER; } yy196: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; + } } yy197: #line 170 { return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); } yy198: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; + } } yy199: yych = *++YYCURSOR; yy200: @@ -1675,291 +979,93 @@ yy200: { return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); } yy201: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; + } } yy202: yych = *++YYCURSOR; goto yy197; yy203: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy205: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy207: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych <= '9') goto yy215; + goto yy195; yy208: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case '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; + 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; + } } yy209: yych = *++YYCURSOR; yy210: @@ -1979,202 +1085,66 @@ yy210: yy211: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -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; +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; + } } yy213: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -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; +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; + } } yy215: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy216: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy217: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy218: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy219; - case '/': goto yy220; - default: goto yy195; - } + if(yych == '-') goto yy219; + if(yych == '/') goto yy220; + goto yy195; yy219: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych <= '9') goto yy222; + goto yy195; yy220: yych = *++YYCURSOR; yy221: #line 159 @@ -2189,641 +1159,260 @@ yy221: return uri; } yy222: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy223: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy224; - case '/': goto yy220; - default: goto yy195; - } + if(yych == '-') goto yy224; + if(yych == '/') goto yy220; + goto yy195; yy224: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy225: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy226: yych = *++YYCURSOR; - switch(yych){ - case '/': goto yy220; - default: goto yy195; - } + if(yych == '/') goto yy220; + goto yy195; yy227: yych = *++YYCURSOR; - switch(yych){ - case 'p': goto yy228; - default: goto yy204; - } + if(yych != 'p') goto yy204; yy228: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'r': goto yy229; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'r') goto yy204; } yy229: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'i': goto yy230; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'i') goto yy204; } yy230: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'v': goto yy231; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'v') goto yy204; } yy231: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'a': goto yy232; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'a') goto yy204; } yy232: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 't': goto yy233; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 't') goto yy204; } yy233: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'e': goto yy234; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'e') goto yy204; } yy234: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case ':': goto yy235; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != ':') goto yy204; } yy235: yych = *++YYCURSOR; yy236: #line 142 { return type_id; } yy237: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'g': goto yy238; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != 'g') goto yy204; } yy238: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'u': goto yy239; - default: goto yy204; + if(yych <= '.'){ + if(yych == ',') goto yy207; + if(yych <= '-') goto yy204; + goto yy208; + } else { + if(yych <= '/') goto yy209; + if(yych != ':') goto yy204; } yy239: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'r': goto yy240; - default: goto yy204; - } -yy240: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case 'i': goto yy241; - default: goto yy204; - } -yy241: yych = *++YYCURSOR; - switch(yych){ - case ',': goto yy207; - case '.': goto yy208; - case '/': goto yy209; - case ':': goto yy242; - default: goto yy204; - } -yy242: yych = *++YYCURSOR; - switch(yych){ - case ',': - case '-': - case '.': goto yy195; - default: goto yy244; - } -yy243: ++YYCURSOR; + if(yych <= '+') goto yy241; + if(yych <= '.') goto yy195; + goto yy241; +yy240: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy244: switch(yych){ - case ',': goto yy247; - case '-': goto yy245; - 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 yy243; - default: goto yy195; - } -yy245: ++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; + } + } +yy242: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy246: switch(yych){ - 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 yy243; - default: goto yy195; - } -yy247: yych = *++YYCURSOR; - 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; - } -yy248: ++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; + } + } +yy244: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych <= '9') goto yy250; + goto yy195; +yy245: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case '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 yy249; - default: goto yy195; - } -yy249: ++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; + } + } +yy246: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; -yy250: switch(yych){ - case ',': goto yy247; - case '-': goto yy251; - 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 yy249; - default: goto yy195; +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; + } } -yy251: ++YYCURSOR; +yy248: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy252: switch(yych){ - case '-': goto yy251; - 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 yy249; - default: goto yy195; - } +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; + } + } +yy250: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; +yy251: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; +yy252: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy253: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy254; - default: goto yy195; - } + if(yych == '-') goto yy254; + if(yych == ':') goto yy255; + goto yy195; yy254: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy255; - default: goto yy195; - } + if(yych <= '/') goto yy195; + if(yych <= '9') goto yy257; + goto yy195; yy255: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy256; - default: goto yy195; - } -yy256: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy257; - case ':': goto yy258; - default: goto yy195; - } -yy257: yych = *++YYCURSOR; - 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; - } -yy258: yych = *++YYCURSOR; -yy259: +yy256: #line 140 { return type_id; } +yy257: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; +yy258: yych = *++YYCURSOR; + if(yych == '-') goto yy259; + if(yych == ':') goto yy255; + goto yy195; +yy259: yych = *++YYCURSOR; + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy260: yych = *++YYCURSOR; - 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; - } + if(yych <= '/') goto yy195; + if(yych >= ':') goto yy195; yy261: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy262; - case ':': goto yy258; - default: goto yy195; - } -yy262: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy263; - default: goto yy195; - } -yy263: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy264; - default: goto yy195; - } -yy264: yych = *++YYCURSOR; - switch(yych){ - case ':': goto yy258; - default: goto yy195; - } + if(yych == ':') goto yy255; + goto yy195; } #line 172 diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index e7ec534a8f..aee66c8d41 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -41,7 +41,7 @@ typedef struct RVALUE { * symbols and constants */ static ID s_new, s_utc, s_at, s_to_f, s_read, s_binmode, s_call, s_transfer, s_update, s_dup, s_match, s_keys, s_to_str, s_unpack, s_tr_bang, s_anchors, s_default_set; -static VALUE sym_model, sym_generic; +static VALUE sym_model, sym_generic, sym_input, sym_bytecode; static VALUE sym_scalar, sym_seq, sym_map; VALUE cDate, cParser, cLoader, cNode, cPrivateType, cDomainType, cBadAlias, cDefaultKey, cMergeKey, cEmitter; VALUE oDefaultLoader; @@ -473,18 +473,22 @@ yaml_org_handler( n, ref ) break; case syck_seq_kind: + if ( type_id == NULL || strcmp( type_id, "seq" ) == 0 ) + { + transferred = 1; + } obj = rb_ary_new2( n->data.list->idx ); for ( i = 0; i < n->data.list->idx; i++ ) { rb_ary_store( obj, i, syck_seq_read( n, i ) ); } - if ( type_id == NULL || strcmp( type_id, "seq" ) == 0 ) - { - transferred = 1; - } break; case syck_map_kind: + if ( type_id == NULL || strcmp( type_id, "map" ) == 0 ) + { + transferred = 1; + } obj = rb_hash_new(); for ( i = 0; i < n->data.pairs->idx; i++ ) { @@ -529,10 +533,6 @@ yaml_org_handler( n, ref ) rb_hash_aset( obj, k, v ); } } - if ( type_id == NULL || strcmp( type_id, "map" ) == 0 ) - { - transferred = 1; - } break; } @@ -609,7 +609,7 @@ rb_syck_bad_anchor_handler(p, a) char *a; { SyckNode *badanc = syck_new_map( rb_str_new2( "name" ), rb_str_new2( a ) ); - badanc->type_id = syck_strndup( "taguri:ruby.yaml.org,2002:object:YAML::Syck::BadAlias", 53 ); + badanc->type_id = syck_strndup( "tag:ruby.yaml.org,2002:object:YAML::Syck::BadAlias", 53 ); return badanc; } @@ -617,9 +617,9 @@ rb_syck_bad_anchor_handler(p, a) * data loaded based on the model requested. */ void -syck_set_model( parser, model ) +syck_set_model( parser, input, model ) SyckParser *parser; - VALUE model; + VALUE input, model; { if ( model == sym_generic ) { @@ -633,6 +633,10 @@ syck_set_model( parser, model ) syck_parser_implicit_typing( parser, 1 ); syck_parser_taguri_expansion( parser, 0 ); } + if ( input == sym_bytecode ) + { + syck_parser_set_input_type( parser, syck_bytecode_utf8 ); + } syck_parser_error_handler( parser, rb_syck_err_handler ); syck_parser_bad_anchor_handler( parser, rb_syck_bad_anchor_handler ); } @@ -694,7 +698,7 @@ syck_parser_load(argc, argv, self) VALUE *argv; VALUE self; { - VALUE port, proc, model; + VALUE port, proc, model, input; SyckParser *parser; struct parser_xtra bonus; volatile VALUE hash; /* protect from GC */ @@ -702,8 +706,9 @@ syck_parser_load(argc, argv, self) rb_scan_args(argc, argv, "11", &port, &proc); Data_Get_Struct(self, SyckParser, parser); + input = rb_hash_aref( rb_iv_get( self, "@options" ), sym_input ); model = rb_hash_aref( rb_iv_get( self, "@options" ), sym_model ); - syck_set_model( parser, model ); + syck_set_model( parser, input, model ); bonus.taint = syck_parser_assign_io(parser, port); bonus.data = hash = rb_hash_new(); @@ -724,7 +729,7 @@ syck_parser_load_documents(argc, argv, self) VALUE *argv; VALUE self; { - VALUE port, proc, v, model; + VALUE port, proc, v, input, model; SyckParser *parser; struct parser_xtra bonus; volatile VALUE hash; @@ -732,8 +737,9 @@ syck_parser_load_documents(argc, argv, self) rb_scan_args(argc, argv, "1&", &port, &proc); Data_Get_Struct(self, SyckParser, parser); + input = rb_hash_aref( rb_iv_get( self, "@options" ), sym_input ); model = rb_hash_aref( rb_iv_get( self, "@options" ), sym_model ); - syck_set_model( parser, model ); + syck_set_model( parser, input, model ); bonus.taint = syck_parser_assign_io(parser, port); while ( 1 ) @@ -929,7 +935,7 @@ syck_loader_transfer( self, type, val ) int transferred = 0; VALUE scheme, name, type_hash, domain = Qnil, type_proc = Qnil; VALUE type_uri = rb_str_new2( taguri ); - VALUE str_taguri = rb_str_new2("taguri"); + VALUE str_taguri = rb_str_new2("tag"); VALUE str_xprivate = rb_str_new2("x-private"); VALUE str_yaml_domain = rb_str_new2(YAML_DOMAIN); VALUE parts = rb_str_split( type_uri, ":" ); @@ -1296,6 +1302,8 @@ Init_syck() sym_model = ID2SYM(rb_intern("Model")); sym_generic = ID2SYM(rb_intern("Generic")); + sym_input = ID2SYM(rb_intern("Input")); + sym_bytecode = ID2SYM(rb_intern("Bytecode")); sym_map = ID2SYM(rb_intern("map")); sym_scalar = ID2SYM(rb_intern("scalar")); sym_seq = ID2SYM(rb_intern("seq")); diff --git a/ext/syck/syck.c b/ext/syck/syck.c index 707225762b..9f2f900383 100644 --- a/ext/syck/syck.c +++ b/ext/syck/syck.c @@ -9,8 +9,8 @@ #include #include -#include "syck.h" #include "ruby.h" +#include "syck.h" void syck_parser_pop_level( SyckParser * ); @@ -109,6 +109,7 @@ syck_parser_reset_levels( SyckParser *p ) { p->lvl_idx = 1; p->levels[0].spaces = -1; + p->levels[0].ncount = 0; p->levels[0].domain = syck_strndup( "", 0 ); } p->levels[0].status = syck_lvl_header; @@ -159,6 +160,7 @@ syck_new_parser() p = S_ALLOC( SyckParser ); p->lvl_capa = ALLOC_CT; p->levels = S_ALLOC_N( SyckLevel, p->lvl_capa ); + p->input_type = syck_yaml_utf8; p->io_type = syck_io_str; p->io.str = NULL; p->syms = NULL; @@ -282,6 +284,13 @@ syck_parser_bad_anchor_handler( SyckParser *p, SyckBadAnchorHandler hdlr ) p->bad_anchor_handler = hdlr; } +void +syck_parser_set_input_type( SyckParser *p, enum syck_parser_input input_type ) +{ + ASSERT( p != NULL ); + p->input_type = input_type; +} + void syck_parser_file( SyckParser *p, FILE *fp, SyckIoFileRead read ) { @@ -358,6 +367,7 @@ syck_parser_add_level( SyckParser *p, int len, enum syck_level_status status ) ASSERT( len > p->levels[p->lvl_idx-1].spaces ); p->levels[p->lvl_idx].spaces = len; + p->levels[p->lvl_idx].ncount = 0; p->levels[p->lvl_idx].domain = syck_strndup( p->levels[p->lvl_idx-1].domain, strlen( p->levels[p->lvl_idx-1].domain ) ); p->levels[p->lvl_idx].status = status; p->lvl_idx += 1; diff --git a/ext/syck/syck.h b/ext/syck/syck.h index 8c10f0d27e..7497576483 100644 --- a/ext/syck/syck.h +++ b/ext/syck/syck.h @@ -13,11 +13,9 @@ #define SYCK_YAML_MAJOR 1 #define SYCK_YAML_MINOR 0 -#define SYCK_VERSION "0.39" +#define SYCK_VERSION "0.41" #define YAML_DOMAIN "yaml.org,2002" -#include -#include #include "st.h" #if defined(__cplusplus) @@ -139,9 +137,17 @@ enum syck_io_type { syck_io_file }; +enum syck_parser_input { + syck_yaml_utf8, + syck_yaml_utf16, + syck_yaml_utf32, + syck_bytecode_utf8 +}; + enum syck_level_status { syck_lvl_header, syck_lvl_doc, + syck_lvl_open, syck_lvl_seq, syck_lvl_map, syck_lvl_block, @@ -170,6 +176,7 @@ struct _syck_str { struct _syck_level { int spaces; + int ncount; char *domain; enum syck_level_status status; }; @@ -185,6 +192,8 @@ struct _syck_parser { SyckErrorHandler error_handler; /* InvalidAnchor handler */ SyckBadAnchorHandler bad_anchor_handler; + /* Parser input type */ + enum syck_parser_input input_type; /* IO type */ enum syck_io_type io_type; /* Custom buffer size */ @@ -374,8 +383,7 @@ void apply_seq_in_map( SyckParser *, SyckNode * ); /* * Lexer prototypes */ -int syckparse( void * ); -void syckerror( char *msg ); +void syckerror( char * ); #ifndef ST_DATA_T_DEFINED typedef long st_data_t; diff --git a/ext/syck/token.c b/ext/syck/token.c index dc20ecd085..d7fa6e4573 100644 --- a/ext/syck/token.c +++ b/ext/syck/token.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.5 on Wed Sep 3 12:48:43 2003 */ +/* Generated by re2c 0.5 on Mon Oct 13 18:40:21 2003 */ #line 1 "token.re" /* * token.re @@ -206,7 +206,9 @@ SyckParser *syck_parser_ptr = NULL; */ void eat_comments( SyckParser * ); int is_newline( char *ptr ); -int yywrap(); +int sycklex_yaml_utf8( YYSTYPE *, SyckParser * ); +int sycklex_bytecode_utf8( YYSTYPE *, SyckParser * ); +int syckwrap(); /* * My own re-entrant sycklex() using re2c. @@ -215,6 +217,30 @@ int yywrap(); */ int sycklex( YYSTYPE *sycklval, SyckParser *parser ) +{ + switch ( parser->input_type ) + { + case syck_yaml_utf8: + return sycklex_yaml_utf8( sycklval, parser ); + + case syck_yaml_utf16: + syckerror( "UTF-16 is not currently supported in Syck.\nPlease contribute code to help this happen!" ); + break; + + case syck_yaml_utf32: + syckerror( "UTF-32 is not currently supported in Syck.\nPlease contribute code to help this happen!" ); + break; + + case syck_bytecode_utf8: + return sycklex_bytecode_utf8( sycklval, parser ); + } +} + +/* + * Parser for standard YAML [UTF-8] + */ +int +sycklex_yaml_utf8( YYSTYPE *sycklval, SyckParser *parser ) { int doc_level = 0; syck_parser_ptr = parser; @@ -230,7 +256,7 @@ sycklex( YYSTYPE *sycklval, SyckParser *parser ) return t; } -#line 248 +#line 274 if ( YYLINEPTR != YYCURSOR ) @@ -250,42 +276,48 @@ yy1: ++YYCURSOR; yy0: if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy7; - case '\n': goto yy9; - case '\r': goto yy11; - case ' ': goto yy12; - case '#': goto yy5; - case '-': goto yy2; - case '.': goto yy4; - default: goto yy14; + if(yych <= '\037'){ + if(yych <= '\n'){ + if(yych <= '\000') goto yy7; + if(yych <= '\t') goto yy14; + goto yy9; + } else { + if(yych == '\r') goto yy11; + goto yy14; + } + } else { + if(yych <= '#'){ + if(yych <= ' ') goto yy12; + if(yych <= '"') goto yy14; + goto yy5; + } else { + if(yych <= ',') goto yy14; + if(yych <= '-') goto yy2; + if(yych <= '.') goto yy4; + goto yy14; + } } yy2: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '-': goto yy28; - default: goto yy3; - } + if(yych == '-') goto yy28; yy3: -#line 307 +#line 333 { YYPOS(0); goto Document; } yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '.': goto yy21; - default: goto yy3; - } + if(yych == '.') goto yy21; + goto yy3; yy5: yych = *++YYCURSOR; yy6: -#line 289 +#line 315 { eat_comments( parser ); goto Header; } yy7: yych = *++YYCURSOR; yy8: -#line 293 +#line 319 { SyckLevel *lvl = CURRENT_LEVEL(); ENSURE_YAML_IEND(lvl, -1); YYPOS(0); @@ -295,19 +327,17 @@ yy9: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); goto yy18; yy10: -#line 299 +#line 325 { GOBBLE_UP_YAML_INDENT( doc_level, YYTOKEN ); goto Header; } yy11: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy3; - } + if(yych == '\n') goto yy17; + goto yy3; yy12: yych = *++YYCURSOR; goto yy16; yy13: -#line 303 +#line 329 { doc_level = YYCURSOR - YYLINEPTR; goto Header; } @@ -316,46 +346,42 @@ yy14: yych = *++YYCURSOR; yy15: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy16: switch(yych){ - case ' ': goto yy15; - default: goto yy13; - } +yy16: if(yych == ' ') goto yy15; + goto yy13; yy17: yyaccept = 1; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy18: switch(yych){ - case '\n': case ' ': goto yy17; - case '\r': goto yy19; - default: goto yy10; +yy18: if(yych <= '\f'){ + if(yych == '\n') goto yy17; + goto yy10; + } else { + if(yych <= '\r') goto yy19; + if(yych == ' ') goto yy17; + goto yy10; } yy19: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy17; - default: goto yy20; - } + if(yych == '\n') goto yy17; yy20: YYCURSOR = YYMARKER; switch(yyaccept){ case 1: goto yy10; case 0: goto yy3; } yy21: yych = *++YYCURSOR; - switch(yych){ - case '.': goto yy22; - default: goto yy20; - } + if(yych != '.') goto yy20; yy22: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy23; - case '\r': goto yy27; - case ' ': goto yy25; - default: goto yy20; + if(yych <= '\f'){ + if(yych != '\n') goto yy20; + } else { + if(yych <= '\r') goto yy27; + if(yych == ' ') goto yy25; + goto yy20; } yy23: yych = *++YYCURSOR; yy24: -#line 275 +#line 301 { SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { @@ -372,30 +398,24 @@ yy24: yy25: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy26: switch(yych){ - case ' ': goto yy25; - default: goto yy24; - } +yy26: if(yych == ' ') goto yy25; + goto yy24; yy27: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy23; - default: goto yy20; - } + if(yych == '\n') goto yy23; + goto yy20; yy28: yych = *++YYCURSOR; - switch(yych){ - case '-': goto yy29; - default: goto yy20; - } + if(yych != '-') goto yy20; yy29: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - case '\r': goto yy34; - case ' ': goto yy32; - default: goto yy20; + if(yych <= '\f'){ + if(yych != '\n') goto yy20; + } else { + if(yych <= '\r') goto yy34; + if(yych == ' ') goto yy32; + goto yy20; } yy30: yych = *++YYCURSOR; yy31: -#line 261 +#line 287 { SyckLevel *lvl = CURRENT_LEVEL(); if ( lvl->status == syck_lvl_header ) { @@ -412,17 +432,13 @@ yy31: yy32: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy33: switch(yych){ - case ' ': goto yy32; - default: goto yy31; - } +yy33: if(yych == ' ') goto yy32; + goto yy31; yy34: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy30; - default: goto yy20; - } + if(yych == '\n') goto yy30; + goto yy20; } -#line 311 +#line 337 Document: @@ -443,35 +459,72 @@ yy36: ++YYCURSOR; yy35: if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy60; - case '\n': goto yy37; - case '\r': goto yy39; - case ' ': goto yy58; - case '!': goto yy49; - case '"': goto yy53; - case '#': goto yy56; - case '&': goto yy47; - case '\'': goto yy51; - case '*': goto yy48; - case ',': case ':': goto yy45; - case '-': case '?': goto yy46; - case '>': case '|': goto yy55; - case '[': case '{': goto yy41; - case ']': case '}': goto yy43; - default: goto yy62; + if(yych <= '+'){ + if(yych <= '!'){ + if(yych <= '\f'){ + if(yych <= '\000') goto yy60; + if(yych != '\n') goto yy62; + } else { + if(yych <= '\r') goto yy39; + if(yych <= '\037') goto yy62; + if(yych <= ' ') goto yy58; + goto yy49; + } + } else { + if(yych <= '&'){ + if(yych <= '"') goto yy53; + if(yych <= '#') goto yy56; + if(yych <= '%') goto yy62; + goto yy47; + } else { + if(yych <= '\'') goto yy51; + if(yych == '*') goto yy48; + goto yy62; + } + } + } else { + if(yych <= 'Z'){ + if(yych <= ':'){ + if(yych <= ',') goto yy45; + if(yych <= '-') goto yy46; + if(yych <= '9') goto yy62; + goto yy45; + } else { + if(yych <= '=') goto yy62; + if(yych <= '>') goto yy55; + if(yych <= '?') goto yy46; + goto yy62; + } + } else { + if(yych <= 'z'){ + if(yych <= '[') goto yy41; + if(yych == ']') goto yy43; + goto yy62; + } else { + if(yych <= '{') goto yy41; + if(yych <= '|') goto yy55; + if(yych <= '}') goto yy43; + goto yy62; + } + } } yy37: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy90; yy38: -#line 325 +#line 351 { /* Isolate spaces */ int indt_len; GOBBLE_UP_YAML_INDENT( indt_len, YYTOKEN ); lvl = CURRENT_LEVEL(); doc_level = 0; + /* XXX: Comment lookahead */ + if ( *YYCURSOR == '#' ) + { + goto Document; + } + /* Check for open indent */ ENSURE_YAML_IEND(lvl, indt_len); ENSURE_YAML_IOPEN(lvl, indt_len, 0); @@ -482,18 +535,15 @@ yy38: return YAML_INDENT; } yy39: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy40; - } + if(yych == '\n') goto yy89; yy40: -#line 413 +#line 445 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto Plain; } yy41: yych = *++YYCURSOR; yy42: -#line 341 +#line 373 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); lvl = CURRENT_LEVEL(); ADD_LEVEL(lvl->spaces + 1, syck_lvl_inline); @@ -501,201 +551,123 @@ yy42: } yy43: yych = *++YYCURSOR; yy44: -#line 347 +#line 379 { POP_LEVEL(); return YYTOKEN[0]; } yy45: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy84; - case '\r': goto yy88; - case ' ': goto yy86; - default: goto yy40; + if(yych <= '\f'){ + if(yych == '\n') goto yy84; + goto yy40; + } else { + if(yych <= '\r') goto yy88; + if(yych == ' ') goto yy86; + goto yy40; } yy46: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy79; - case '\r': goto yy83; - case ' ': goto yy81; - default: goto yy40; + if(yych <= '\f'){ + if(yych == '\n') goto yy79; + goto yy40; + } else { + if(yych <= '\r') goto yy83; + if(yych == ' ') goto yy81; + goto yy40; } yy47: yych = *++YYCURSOR; - switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy76; - default: goto yy40; + if(yych <= '@'){ + if(yych <= '-'){ + if(yych <= ',') goto yy40; + goto yy76; + } else { + if(yych <= '/') goto yy40; + if(yych <= '9') goto yy76; + goto yy40; + } + } else { + if(yych <= '_'){ + if(yych <= 'Z') goto yy76; + if(yych <= '^') goto yy40; + goto yy76; + } else { + if(yych <= '`') goto yy40; + if(yych <= 'z') goto yy76; + goto yy40; + } } yy48: yych = *++YYCURSOR; - switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy73; - default: goto yy40; + if(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; + } } yy49: yych = *++YYCURSOR; yy50: -#line 386 +#line 418 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto TransferMethod; } yy51: yych = *++YYCURSOR; yy52: -#line 389 +#line 421 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto SingleQuote; } yy53: yych = *++YYCURSOR; yy54: -#line 392 +#line 424 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); goto DoubleQuote; } yy55: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy40; + if(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; + } } yy56: yych = *++YYCURSOR; yy57: -#line 402 +#line 434 { eat_comments( parser ); goto Document; } yy58: yych = *++YYCURSOR; goto yy64; yy59: -#line 406 +#line 438 { goto Document; } yy60: yych = *++YYCURSOR; yy61: -#line 408 +#line 440 { ENSURE_YAML_IEND(lvl, -1); YYPOS(0); return 0; @@ -705,28 +677,26 @@ yy62: yych = *++YYCURSOR; yy63: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy64: switch(yych){ - case ' ': goto yy63; - default: goto yy59; - } +yy64: if(yych == ' ') goto yy63; + goto yy59; yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy66: switch(yych){ - case '\n': goto yy68; - case '\r': goto yy72; - case ' ': goto yy70; - case '+': case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy65; - default: goto yy67; +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; + } } yy67: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -735,7 +705,7 @@ yy67: YYCURSOR = YYMARKER; } yy68: yych = *++YYCURSOR; yy69: -#line 395 +#line 427 { if ( is_newline( YYCURSOR - 1 ) ) { YYCURSOR--; @@ -745,83 +715,32 @@ yy69: yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy71: switch(yych){ - case ' ': goto yy70; - default: goto yy69; - } +yy71: if(yych == ' ') goto yy70; + goto yy69; yy72: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy68; - default: goto yy67; - } + if(yych == '\n') goto yy68; + goto yy67; yy73: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy74: switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy73; - default: goto yy75; +yy74: if(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; + } } yy75: -#line 381 +#line 413 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); return YAML_ALIAS; @@ -829,71 +748,24 @@ yy75: yy76: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy77: switch(yych){ - case '-': case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy76; - default: goto yy78; +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; + } } yy78: -#line 369 +#line 401 { ENSURE_YAML_IOPEN(lvl, doc_level, 1); sycklval->name = syck_strndup( YYTOKEN + 1, YYCURSOR - YYTOKEN - 1 ); @@ -907,7 +779,7 @@ yy78: } yy79: yych = *++YYCURSOR; yy80: -#line 355 +#line 387 { ENSURE_YAML_IOPEN(lvl, YYTOKEN - YYLINEPTR, 1); FORCE_NEXT_TOKEN(YAML_IOPEN); if ( is_newline( YYCURSOR ) || is_newline( YYCURSOR - 1 ) ) @@ -924,51 +796,44 @@ yy80: yy81: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy82: switch(yych){ - case ' ': goto yy81; - default: goto yy80; - } +yy82: if(yych == ' ') goto yy81; + goto yy80; yy83: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy79; - default: goto yy67; - } + if(yych == '\n') goto yy79; + goto yy67; yy84: yych = *++YYCURSOR; yy85: -#line 351 +#line 383 { YYPOS(1); return YYTOKEN[0]; } yy86: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy87: switch(yych){ - case ' ': goto yy86; - default: goto yy85; - } +yy87: if(yych == ' ') goto yy86; + goto yy85; yy88: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy84; - default: goto yy67; - } + if(yych == '\n') goto yy84; + goto yy67; yy89: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy90: switch(yych){ - case '\n': case ' ': goto yy89; - case '\r': goto yy91; - default: goto yy38; +yy90: if(yych <= '\f'){ + if(yych == '\n') goto yy89; + goto yy38; + } else { + if(yych <= '\r') goto yy91; + if(yych == ' ') goto yy89; + goto yy38; } yy91: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy89; - default: goto yy67; - } + if(yych == '\n') goto yy89; + goto yy67; } -#line 417 +#line 449 } @@ -984,11 +849,13 @@ yy93: ++YYCURSOR; yy92: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy94; - case ' ': goto yy97; - case '%': goto yy95; - default: goto yy99; + if(yych <= ' '){ + if(yych <= '\000') goto yy94; + if(yych <= '\037') goto yy99; + goto yy97; + } else { + if(yych == '%') goto yy95; + goto yy99; } yy94: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -996,348 +863,52 @@ yy94: YYCURSOR = YYMARKER; } yy95: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '.': - case '/': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '[': - case '\\': - case ']': - case '^': - case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy102; - default: goto yy96; - } + if(yych <= '-') goto yy96; + if(yych == '`') goto yy96; + if(yych <= 'z') goto yy102; yy96: -#line 430 +#line 462 { YYCURSOR = YYTOKTMP; return YAML_DOCSEP; } yy97: yych = *++YYCURSOR; goto yy101; yy98: -#line 428 +#line 460 { goto Directive; } yy99: yych = *++YYCURSOR; goto yy96; yy100: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy101: switch(yych){ - case ' ': goto yy100; - default: goto yy98; - } +yy101: if(yych == ' ') goto yy100; + goto yy98; yy102: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy103: switch(yych){ - case '.': - case '/': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '[': - case '\\': - case ']': - case '^': - case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy102; - case ':': goto yy104; - default: goto yy94; +yy103: if(yych <= ':'){ + if(yych <= '-') goto yy94; + if(yych <= '9') goto yy102; + } else { + if(yych == '`') goto yy94; + if(yych <= 'z') goto yy102; + goto yy94; } yy104: yych = *++YYCURSOR; - switch(yych){ - case '.': - case '/': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '[': - case '\\': - case ']': - case '^': - case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy105; - default: goto yy94; - } + if(yych <= '-') goto yy94; + if(yych == '`') goto yy94; + if(yych >= '{') goto yy94; yy105: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy106: switch(yych){ - case '.': - case '/': - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '[': - case '\\': - case ']': - case '^': - case '_': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy105; - default: goto yy107; - } +yy106: if(yych <= '-') goto yy107; + if(yych == '`') goto yy107; + if(yych <= 'z') goto yy105; yy107: -#line 426 +#line 458 { goto Directive; } } -#line 433 +#line 465 } @@ -1367,21 +938,31 @@ yy109: ++YYCURSOR; yy108: if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy120; - case '\n': goto yy110; - case '\r': goto yy112; - case ' ': goto yy118; - case ',': goto yy117; - case ':': goto yy114; - case ']': case '}': goto yy115; - default: goto yy122; + if(yych <= '+'){ + if(yych <= '\f'){ + if(yych <= '\000') goto yy120; + if(yych != '\n') goto yy122; + } else { + if(yych <= '\r') goto yy112; + if(yych == ' ') goto yy118; + goto yy122; + } + } else { + if(yych <= '\\'){ + if(yych <= ',') goto yy117; + if(yych == ':') goto yy114; + goto yy122; + } else { + if(yych <= ']') goto yy115; + if(yych == '}') goto yy115; + goto yy122; + } } yy110: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy136; yy111: -#line 456 +#line 488 { int indt_len, nl_count = 0; SyckLevel *lvl; char *tok = YYTOKTMP; @@ -1414,26 +995,25 @@ yy111: goto Plain2; } yy112: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy113; - } + if(yych == '\n') goto yy135; yy113: -#line 510 +#line 542 { QUOTECATS(qstr, qcapa, qidx, YYTOKTMP, YYCURSOR - YYTOKTMP); goto Plain2; } yy114: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy130; - case '\r': goto yy134; - case ' ': goto yy132; - default: goto yy113; + if(yych <= '\f'){ + if(yych == '\n') goto yy130; + goto yy113; + } else { + if(yych <= '\r') goto yy134; + if(yych == ' ') goto yy132; + goto yy113; } yy115: yych = *++YYCURSOR; yy116: -#line 490 +#line 522 { if ( plvl->status != syck_lvl_inline ) { if ( *(YYCURSOR - 1) == ' ' || is_newline( YYCURSOR - 1 ) ) @@ -1447,29 +1027,28 @@ yy116: } yy117: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case '\n': goto yy125; - case '\r': goto yy128; - case ' ': goto yy126; - default: goto yy113; + if(yych <= '\f'){ + if(yych == '\n') goto yy125; + goto yy113; + } else { + if(yych <= '\r') goto yy128; + if(yych == ' ') goto yy126; + goto yy113; } yy118: yych = *++YYCURSOR; - switch(yych){ - case '#': goto yy123; - default: goto yy119; - } + if(yych == '#') goto yy123; yy119: -#line 508 +#line 540 { goto Plain3; } yy120: yych = *++YYCURSOR; yy121: -#line 506 +#line 538 { RETURN_IMPLICIT(); } yy122: yych = *++YYCURSOR; goto yy113; yy123: yych = *++YYCURSOR; yy124: -#line 502 +#line 534 { eat_comments( parser ); RETURN_IMPLICIT(); } @@ -1478,15 +1057,10 @@ yy125: yych = *++YYCURSOR; yy126: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy127: switch(yych){ - case ' ': goto yy126; - default: goto yy116; - } +yy127: if(yych == ' ') goto yy126; + goto yy116; yy128: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy125; - default: goto yy129; - } + if(yych == '\n') goto yy125; yy129: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy111; @@ -1494,38 +1068,35 @@ yy129: YYCURSOR = YYMARKER; } yy130: yych = *++YYCURSOR; yy131: -#line 488 +#line 520 { RETURN_IMPLICIT(); } yy132: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy133: switch(yych){ - case ' ': goto yy132; - default: goto yy131; - } +yy133: if(yych == ' ') goto yy132; + goto yy131; yy134: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy130; - default: goto yy129; - } + if(yych == '\n') goto yy130; + goto yy129; yy135: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy136: switch(yych){ - case '\n': case ' ': goto yy135; - case '\r': goto yy137; - default: goto yy111; +yy136: if(yych <= '\f'){ + if(yych == '\n') goto yy135; + goto yy111; + } else { + if(yych <= '\r') goto yy137; + if(yych == ' ') goto yy135; + goto yy111; } yy137: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy135; - default: goto yy129; - } + if(yych == '\n') goto yy135; + goto yy129; } -#line 514 +#line 546 } @@ -1546,18 +1117,19 @@ yy139: ++YYCURSOR; yy138: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy146; - case '\n': goto yy140; - case '\r': goto yy142; - case '\'': goto yy144; - default: goto yy147; + if(yych <= '\f'){ + if(yych <= '\000') goto yy146; + if(yych != '\n') goto yy147; + } else { + if(yych <= '\r') goto yy142; + if(yych == '\'') goto yy144; + goto yy147; } yy140: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy151; yy141: -#line 528 +#line 560 { int indt_len; int nl_count = 0; SyckLevel *lvl; @@ -1594,22 +1166,16 @@ yy141: goto SingleQuote2; } yy142: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy143; - } + if(yych == '\n') goto yy150; yy143: -#line 583 +#line 615 { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto SingleQuote2; } yy144: yych = *++YYCURSOR; - switch(yych){ - case '\'': goto yy148; - default: goto yy145; - } + if(yych == '\'') goto yy148; yy145: -#line 568 +#line 600 { SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1630,7 +1196,7 @@ yy147: yych = *++YYCURSOR; goto yy143; yy148: yych = *++YYCURSOR; yy149: -#line 564 +#line 596 { QUOTECAT(qstr, qcapa, qidx, '\''); goto SingleQuote2; } @@ -1638,24 +1204,24 @@ yy150: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy151: switch(yych){ - case '\n': case ' ': goto yy150; - case '\r': goto yy152; - default: goto yy141; +yy151: if(yych <= '\f'){ + if(yych == '\n') goto yy150; + goto yy141; + } else { + if(yych <= '\r') goto yy152; + if(yych == ' ') goto yy150; + goto yy141; } yy152: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy150; - default: goto yy153; - } + if(yych == '\n') goto yy150; yy153: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy141; } } -#line 587 +#line 619 } @@ -1680,19 +1246,29 @@ yy155: ++YYCURSOR; yy154: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy161; - case '\n': goto yy156; - case '\r': goto yy158; - case '"': goto yy163; - case '\\': goto yy160; - default: goto yy164; + if(yych <= '\r'){ + if(yych <= '\t'){ + if(yych <= '\000') goto yy161; + goto yy164; + } else { + if(yych <= '\n') goto yy156; + if(yych <= '\f') goto yy164; + goto yy158; + } + } else { + if(yych <= '"'){ + if(yych <= '!') goto yy164; + goto yy163; + } else { + if(yych == '\\') goto yy160; + goto yy164; + } } yy156: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy178; yy157: -#line 605 +#line 637 { int indt_len; int nl_count = 0; SyckLevel *lvl; @@ -1733,30 +1309,59 @@ yy157: goto DoubleQuote2; } yy158: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy159; - } + if(yych == '\n') goto yy177; yy159: -#line 690 +#line 722 { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto DoubleQuote2; } yy160: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - 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; + 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; + } + } } yy161: yych = *++YYCURSOR; yy162: -#line 675 +#line 707 { SyckLevel *lvl; SyckNode *n = syck_alloc_str(); lvl = CURRENT_LEVEL(); @@ -1778,11 +1383,11 @@ yy164: yych = *++YYCURSOR; yy165: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy166: switch(yych){ - case '\n': goto yy168; - case '\r': goto yy170; - case ' ': goto yy165; - default: goto yy167; +yy166: if(yych <= '\f'){ + if(yych == '\n') goto yy168; + } else { + if(yych <= '\r') goto yy170; + if(yych == ' ') goto yy165; } yy167: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -1791,43 +1396,28 @@ yy167: YYCURSOR = YYMARKER; } yy168: yych = *++YYCURSOR; yy169: -#line 670 +#line 702 { keep_nl = 0; YYCURSOR--; goto DoubleQuote2; } yy170: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy168; - default: goto yy167; - } + if(yych == '\n') goto yy168; + goto yy167; yy171: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy174; - default: goto yy167; + if(yych <= '@'){ + if(yych <= '/') goto yy167; + if(yych <= '9') goto yy174; + goto yy167; + } else { + if(yych <= 'F') goto yy174; + if(yych <= '`') goto yy167; + if(yych <= 'f') goto yy174; + goto yy167; } yy172: yych = *++YYCURSOR; yy173: -#line 645 +#line 677 { char ch = *( YYCURSOR - 1 ); switch ( ch ) { @@ -1844,32 +1434,17 @@ yy173: goto DoubleQuote2; } yy174: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy175; - default: goto yy167; + if(yych <= '@'){ + if(yych <= '/') goto yy167; + if(yych >= ':') goto yy167; + } else { + if(yych <= 'F') goto yy175; + if(yych <= '`') goto yy167; + if(yych >= 'g') goto yy167; } yy175: yych = *++YYCURSOR; yy176: -#line 661 +#line 693 { long ch; char *chr_text = syck_strndup( YYTOKTMP, 4 ); chr_text[0] = '0'; @@ -1882,20 +1457,21 @@ yy177: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy178: switch(yych){ - case '\n': case ' ': goto yy177; - case '\r': goto yy179; - default: goto yy157; +yy178: if(yych <= '\f'){ + if(yych == '\n') goto yy177; + goto yy157; + } else { + if(yych <= '\r') goto yy179; + if(yych == ' ') goto yy177; + goto yy157; } yy179: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy177; - default: goto yy167; - } + if(yych == '\n') goto yy177; + goto yy167; } -#line 694 +#line 726 } @@ -1916,13 +1492,22 @@ yy181: ++YYCURSOR; yy180: if((YYLIMIT - YYCURSOR) < 4) YYFILL(4); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy182; - case '\n': goto yy183; - case '\r': goto yy186; - case ' ': goto yy185; - case '\\': goto yy188; - default: goto yy189; + if(yych <= '\r'){ + if(yych <= '\t'){ + if(yych >= '\001') goto yy189; + } else { + if(yych <= '\n') goto yy183; + if(yych <= '\f') goto yy189; + goto yy186; + } + } else { + if(yych <= ' '){ + if(yych <= '\037') goto yy189; + goto yy185; + } else { + if(yych == '\\') goto yy188; + goto yy189; + } } yy182: YYCURSOR = YYMARKER; switch(yyaccept){ @@ -1930,7 +1515,7 @@ yy182: YYCURSOR = YYMARKER; } yy183: yych = *++YYCURSOR; yy184: -#line 708 +#line 740 { SyckLevel *lvl; YYCURSOR = YYTOKTMP; if ( YYCURSOR == YYTOKEN + 1 ) @@ -1983,74 +1568,39 @@ yy184: yy185: yych = *++YYCURSOR; goto yy196; yy186: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy194; - default: goto yy187; - } + if(yych == '\n') goto yy194; yy187: -#line 770 +#line 802 { QUOTECAT(qstr, qcapa, qidx, *(YYCURSOR - 1)); goto TransferMethod2; } yy188: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - switch(yych){ - case 'x': goto yy190; - default: goto yy187; - } + if(yych == 'x') goto yy190; + goto yy187; yy189: yych = *++YYCURSOR; goto yy187; yy190: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy191; - default: goto yy182; + 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; } yy191: yych = *++YYCURSOR; - switch(yych){ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': goto yy192; - default: goto yy182; + 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; } yy192: yych = *++YYCURSOR; yy193: -#line 761 +#line 793 { long ch; char *chr_text = syck_strndup( YYTOKTMP, 4 ); chr_text[0] = '0'; @@ -2064,12 +1614,10 @@ yy194: yych = *++YYCURSOR; yy195: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy196: switch(yych){ - case ' ': goto yy195; - default: goto yy184; - } +yy196: if(yych == ' ') goto yy195; + goto yy184; } -#line 775 +#line 807 } @@ -2123,18 +1671,19 @@ yy198: ++YYCURSOR; yy197: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy205; - case '\n': goto yy199; - case '\r': goto yy201; - case '#': goto yy203; - default: goto yy207; + 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; } yy199: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy209; yy200: -#line 822 +#line 854 { char *pacer; char *tok = YYTOKTMP; int indt_len = 0, nl_count = 0, fold_nl = 0, nl_begin = 0; @@ -2201,18 +1750,15 @@ yy200: goto ScalarBlock2; } yy201: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy208; - default: goto yy202; - } + if(yych == '\n') goto yy208; yy202: -#line 908 +#line 940 { QUOTECAT(qstr, qcapa, qidx, *YYTOKTMP); goto ScalarBlock2; } yy203: yych = *++YYCURSOR; yy204: -#line 889 +#line 921 { lvl = CURRENT_LEVEL(); if ( lvl->status != syck_lvl_block ) { @@ -2227,7 +1773,7 @@ yy204: } yy205: yych = *++YYCURSOR; yy206: -#line 903 +#line 935 { YYCURSOR--; POP_LEVEL(); RETURN_YAML_BLOCK(); @@ -2238,24 +1784,24 @@ yy208: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy209: switch(yych){ - case '\n': case ' ': goto yy208; - case '\r': goto yy210; - default: goto yy200; +yy209: if(yych <= '\f'){ + if(yych == '\n') goto yy208; + goto yy200; + } else { + if(yych <= '\r') goto yy210; + if(yych == ' ') goto yy208; + goto yy200; } yy210: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy208; - default: goto yy211; - } + if(yych == '\n') goto yy208; yy211: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy200; } } -#line 913 +#line 945 } @@ -2280,15 +1826,17 @@ yy213: ++YYCURSOR; yy212: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; - switch(yych){ - case '\000': goto yy214; - case '\n': goto yy216; - case '\r': goto yy217; - default: goto yy219; + if(yych <= '\n'){ + if(yych <= '\000') goto yy214; + if(yych <= '\t') goto yy219; + goto yy216; + } else { + if(yych == '\r') goto yy217; + goto yy219; } yy214: yych = *++YYCURSOR; yy215: -#line 931 +#line 963 { YYCURSOR = tok; return; } @@ -2296,12 +1844,9 @@ yy216: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy221; yy217: yych = *++YYCURSOR; - switch(yych){ - case '\n': goto yy220; - default: goto yy218; - } + if(yych == '\n') goto yy220; yy218: -#line 935 +#line 967 { goto Comment; } yy219: yych = *++YYCURSOR; @@ -2310,24 +1855,18 @@ yy220: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy221: switch(yych){ - case '\n': goto yy220; - case '\r': goto yy222; - default: goto yy215; - } +yy221: if(yych == '\n') goto yy220; + if(yych != '\r') goto yy215; yy222: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; - switch(yych){ - case '\n': goto yy220; - default: goto yy223; - } + if(yych == '\n') goto yy220; yy223: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy215; } } -#line 938 +#line 970 } -- cgit v1.2.3