/* Generated by re2c 0.9.3 on Wed Mar 30 08:27:25 2005 */
#line 1 "implicit.re"
/*
 * implicit.re
 *
 * $Author: why $
 * $Date: 2005/04/06 17:18:59 $
 *
 * Copyright (C) 2003 why the lucky stiff
 */

#include "syck.h"

#define YYCTYPE     char
#define YYCURSOR    cursor
#define YYMARKER    marker
#define YYLIMIT     limit
#define YYFILL(n)

void
try_tag_implicit( SyckNode *n, int taguri )
{
    char *tid = "";
    switch ( n->kind )
    {
        case syck_str_kind:
            tid = syck_match_implicit( n->data.str->ptr, n->data.str->len );
        break;

        case syck_seq_kind:
            tid = "seq";
        break;

        case syck_map_kind:
            tid = "map";
        break;
    }
    if ( n->type_id != NULL ) S_FREE( n->type_id );
    if ( taguri == 1 )
    {
        n->type_id = syck_taguri( YAML_DOMAIN, tid, strlen( tid ) );
    } else {
        n->type_id = syck_strndup( tid, strlen( tid ) );
    }
}

char *syck_match_implicit( char *str, size_t len )
{
    char *cursor, *limit, *marker;
    cursor = str;
    limit = str + len;


#line 6 "<stdout>"
{
        YYCTYPE yych;
        unsigned int yyaccept;
        goto yy0;
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 yy11;
        case 'Y':       goto yy9;
        case 'f':       goto yy14;
        case 'n':       goto yy4;
        case 'o':       goto yy12;
        case 't':       goto yy10;
        case 'y':       goto yy8;
        case '~':       goto yy2;
        default:        goto yy23;
        }
yy2:    ++YYCURSOR;
        if((yych = *YYCURSOR) <= '\000')        goto yy6;
        goto yy3;
yy3:
#line 123 "implicit.re"
{   return "str"; }
#line 51 "<stdout>"
yy4:    yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'o':       goto yy172;
        case 'u':       goto yy200;
        default:        goto yy3;
        }
yy5:    yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'O':       case 'o':       goto yy172;
        case 'U':       goto yy195;
        case 'u':       goto yy196;
        default:        goto yy3;
        }
yy6:    ++YYCURSOR;
        goto yy7;
yy7:
#line 85 "implicit.re"
{   return "null"; }
#line 72 "<stdout>"
yy8:    yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'e':       goto yy194;
        default:        goto yy3;
        }
yy9:    yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'E':       goto yy192;
        case 'e':       goto yy193;
        default:        goto yy3;
        }
yy10:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'r':       goto yy190;
        default:        goto yy3;
        }
yy11:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'R':       goto yy186;
        case 'r':       goto yy187;
        default:        goto yy3;
        }
yy12:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'f':       goto yy185;
        case 'n':       goto yy182;
        default:        goto yy3;
        }
yy13:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'F':       goto yy180;
        case 'N':       case 'n':       goto yy182;
        case 'f':       goto yy181;
        default:        goto yy3;
        }
yy14:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'a':       goto yy177;
        default:        goto yy3;
        }
yy15:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case 'A':       goto yy168;
        case 'a':       goto yy169;
        default:        goto yy3;
        }
yy16:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case '.':       goto yy167;
        case '0':       goto yy158;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy47;
        default:        goto yy3;
        }
yy17:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case '.':       goto yy157;
        case '0':       goto yy158;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy47;
        default:        goto yy3;
        }
yy18:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case '\000':    goto yy52;
        case ',':       goto yy142;
        case '.':       goto yy50;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':       goto yy140;
        case '8':
        case '9':       goto yy141;
        case ':':       goto yy49;
        case 'x':       goto yy144;
        default:        goto yy3;
        }
yy19:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case '\000':    goto yy52;
        case ',':       goto yy47;
        case '.':       goto yy50;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy46;
        case ':':       goto yy49;
        default:        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;
        }
yy21:   yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy28;
        goto yy3;
yy22:   yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case '<':       goto yy24;
        default:        goto yy3;
        }
yy23:   yych = *++YYCURSOR;
        goto yy3;
yy24:   yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy26;
        goto yy25;
yy25:   YYCURSOR = YYMARKER;
        switch(yyaccept){
        case 0: goto yy3;
        }
yy26:   ++YYCURSOR;
        goto yy27;
yy27:
#line 121 "implicit.re"
{   return "merge"; }
#line 230 "<stdout>"
yy28:   ++YYCURSOR;
        goto yy29;
yy29:
#line 119 "implicit.re"
{   return "default"; }
#line 236 "<stdout>"
yy30:   yych = *++YYCURSOR;
        switch(yych){
        case 'a':       goto yy45;
        default:        goto yy25;
        }
yy31:   yych = *++YYCURSOR;
        switch(yych){
        case 'A':       goto yy40;
        case 'a':       goto yy41;
        default:        goto yy25;
        }
yy32:   yych = *++YYCURSOR;
        switch(yych){
        case 'n':       goto yy39;
        default:        goto yy25;
        }
yy33:   yych = *++YYCURSOR;
        switch(yych){
        case 'N':       goto yy34;
        case 'n':       goto yy35;
        default:        goto yy25;
        }
yy34:   yych = *++YYCURSOR;
        switch(yych){
        case 'F':       goto yy36;
        default:        goto yy25;
        }
yy35:   yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy36;
        default:        goto yy25;
        }
yy36:   yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy37;
yy37:   ++YYCURSOR;
        goto yy38;
yy38:
#line 105 "implicit.re"
{   return "float#inf"; }
#line 277 "<stdout>"
yy39:   yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy36;
        default:        goto yy25;
        }
yy40:   yych = *++YYCURSOR;
        switch(yych){
        case 'N':       goto yy42;
        default:        goto yy25;
        }
yy41:   yych = *++YYCURSOR;
        switch(yych){
        case 'N':       goto yy42;
        default:        goto yy25;
        }
yy42:   yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy43;
yy43:   ++YYCURSOR;
        goto yy44;
yy44:
#line 109 "implicit.re"
{   return "float#nan"; }
#line 301 "<stdout>"
yy45:   yych = *++YYCURSOR;
        switch(yych){
        case 'n':       goto yy42;
        default:        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 yy74;
        default:        goto yy48;
        }
yy47:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy48;
yy48:   switch(yych){
        case '\000':    goto yy52;
        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 yy50;
        case ':':       goto yy49;
        default:        goto yy25;
        }
yy49:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        switch(yych){
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':       goto yy66;
        case '6':
        case '7':
        case '8':
        case '9':       goto yy67;
        default:        goto yy25;
        }
yy50:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy51;
yy51:   switch(yych){
        case '\000':    goto yy56;
        case ',':       goto yy54;
        case '.':       goto yy58;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy50;
        case 'E':       case 'e':       goto yy60;
        default:        goto yy25;
        }
yy52:   ++YYCURSOR;
        goto yy53;
yy53:
#line 97 "implicit.re"
{   return "int"; }
#line 386 "<stdout>"
yy54:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy55;
yy55:   switch(yych){
        case '\000':    goto yy56;
        case ',':       case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy54;
        default:        goto yy25;
        }
yy56:   ++YYCURSOR;
        goto yy57;
yy57:
#line 99 "implicit.re"
{   return "float#fix"; }
#line 411 "<stdout>"
yy58:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy59;
yy59:   switch(yych){
        case '.':       case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy58;
        case 'E':       case 'e':       goto yy60;
        default:        goto yy25;
        }
yy60:   yych = *++YYCURSOR;
        switch(yych){
        case '+':       case '-':       goto yy61;
        default:        goto yy25;
        }
yy61:   yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy25;
        goto yy63;
yy62:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy63;
yy63:   switch(yych){
        case '\000':    goto yy64;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy62;
        default:        goto yy25;
        }
yy64:   ++YYCURSOR;
        goto yy65;
yy65:
#line 101 "implicit.re"
{   return "float#exp"; }
#line 463 "<stdout>"
yy66:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        switch(yych){
        case '\000':    goto yy70;
        case '.':       goto yy68;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy67;
        case ':':       goto yy49;
        default:        goto yy25;
        }
yy67:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        switch(yych){
        case '\000':    goto yy70;
        case '.':       goto yy68;
        case ':':       goto yy49;
        default:        goto yy25;
        }
yy68:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy69;
yy69:   switch(yych){
        case '\000':    goto yy72;
        case ',':       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;
        }
yy70:   ++YYCURSOR;
        goto yy71;
yy71:
#line 95 "implicit.re"
{   return "int#base60"; }
#line 518 "<stdout>"
yy72:   ++YYCURSOR;
        goto yy73;
yy73:
#line 103 "implicit.re"
{   return "float#base60"; }
#line 524 "<stdout>"
yy74:   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 yy75;
        default:        goto yy48;
        }
yy75:   yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy76;
        default:        goto yy48;
        }
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 yy77;
        default:        goto yy25;
        }
yy77:   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 yy78;
        default:        goto yy25;
        }
yy78:   yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy79;
        default:        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;
        }
yy80:   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 yy81;
        default:        goto yy25;
        }
yy81:   yych = *++YYCURSOR;
        switch(yych){
        case '\000':    goto yy82;
        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 yy84;
        case 't':       goto yy85;
        default:        goto yy87;
        }
yy82:   ++YYCURSOR;
        goto yy83;
yy83:
#line 111 "implicit.re"
{   return "timestamp#ymd"; }
#line 627 "<stdout>"
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 yy126;
        default:        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 yy108;
        default:        goto yy25;
        }
yy86:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy87;
yy87:   switch(yych){
        case '\t':      case ' ':       goto yy86;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy88;
        default:        goto yy25;
        }
yy88:   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 yy89;
        default:        goto yy25;
        }
yy89:   yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy90;
        default:        goto yy25;
        }
yy90:   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;
        }
yy91:   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 yy92;
        default:        goto yy25;
        }
yy92:   yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy93;
        default:        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;
        }
yy94:   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 yy95;
        default:        goto yy25;
        }
yy95:   yych = *++YYCURSOR;
        switch(yych){
        case '\t':      case ' ':       goto yy98;
        case '.':       goto yy96;
        default:        goto yy25;
        }
yy96:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy97;
yy97:   switch(yych){
        case '\t':      case ' ':       goto yy98;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy96;
        default:        goto yy25;
        }
yy98:   ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy99;
yy99:   switch(yych){
        case '\t':      case ' ':       goto yy98;
        case '+':       case '-':       goto yy101;
        case 'Z':       goto yy100;
        default:        goto yy25;
        }
yy100:  yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy105;
        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;
        }
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;
        }
yy103:  yych = *++YYCURSOR;
        switch(yych){
        case '\000':    goto yy105;
        case ':':       goto yy104;
        default:        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 yy107;
        default:        goto yy25;
        }
yy105:  ++YYCURSOR;
        goto yy106;
yy106:
#line 115 "implicit.re"
{   return "timestamp#spaced"; }
#line 847 "<stdout>"
yy107:  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;
        }
yy108:  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;
        }
yy109:  yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy110;
        default:        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;
        }
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;
        }
yy112:  yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy113;
        default:        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 yy114;
        default:        goto yy25;
        }
yy114:  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 yy115;
        default:        goto yy25;
        }
yy115:  yych = *++YYCURSOR;
        switch(yych){
        case '.':       goto yy116;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy25;
        default:        goto yy117;
        }
yy116:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy117;
yy117:  switch(yych){
        case '+':       case '-':       goto yy119;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy116;
        case 'Z':       goto yy118;
        default:        goto yy25;
        }
yy118:  yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy123;
        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;
        }
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;
        }
yy121:  yych = *++YYCURSOR;
        switch(yych){
        case '\000':    goto yy123;
        case ':':       goto yy122;
        default:        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 yy125;
        default:        goto yy25;
        }
yy123:  ++YYCURSOR;
        goto yy124;
yy124:
#line 113 "implicit.re"
{   return "timestamp#iso8601"; }
#line 1033 "<stdout>"
yy125:  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;
        }
yy126:  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 yy127;
        default:        goto yy25;
        }
yy127:  yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy128;
        default:        goto yy25;
        }
yy128:  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 yy129;
        default:        goto yy25;
        }
yy129:  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 yy130;
        default:        goto yy25;
        }
yy130:  yych = *++YYCURSOR;
        switch(yych){
        case ':':       goto yy131;
        default:        goto yy25;
        }
yy131:  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 yy132;
        default:        goto yy25;
        }
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 yy133;
        default:        goto yy25;
        }
yy133:  yych = *++YYCURSOR;
        switch(yych){
        case '.':       goto yy134;
        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 yy136;
        default:        goto yy135;
        }
yy134:  ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
        yych = *YYCURSOR;
        goto yy135;
yy135:  switch(yych){
        case '+':       case '-':       goto yy119;
        case '0':       goto yy134;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy138;
        case 'Z':       goto yy118;
        default:        goto yy25;
        }
yy136:  yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy137;
yy137:  yych = *++YYCURSOR;
        goto yy124;
yy138:  ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
        yych = *YYCURSOR;
        goto yy139;
yy139:  switch(yych){
        case '+':       case '-':       goto yy119;
        case '0':       goto yy134;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy138;
        case 'Z':       goto yy136;
        default:        goto yy25;
        }
yy140:  yych = *++YYCURSOR;
        switch(yych){
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':       goto yy155;
        case '8':
        case '9':       goto yy153;
        default:        goto yy143;
        }
yy141:  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 yy153;
        default:        goto yy152;
        }
yy142:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy143;
yy143:  switch(yych){
        case '\000':    goto yy149;
        case ',':       case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':       goto yy142;
        case '.':       goto yy50;
        case '8':
        case '9':       goto yy151;
        case ':':       goto yy49;
        default:        goto yy25;
        }
yy144:  yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy25;
        goto yy146;
yy145:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy146;
yy146:  switch(yych){
        case '\000':    goto yy147;
        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 yy145;
        default:        goto yy25;
        }
yy147:  ++YYCURSOR;
        goto yy148;
yy148:
#line 91 "implicit.re"
{   return "int#hex"; }
#line 1275 "<stdout>"
yy149:  ++YYCURSOR;
        goto yy150;
yy150:
#line 93 "implicit.re"
{   return "int#oct"; }
#line 1281 "<stdout>"
yy151:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy152;
yy152:  switch(yych){
        case ',':       case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':       goto yy151;
        case '.':       goto yy50;
        case ':':       goto yy49;
        default:        goto yy25;
        }
yy153:  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 yy154;
        default:        goto yy152;
        }
yy154:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy76;
        default:        goto yy152;
        }
yy155:  yych = *++YYCURSOR;
        switch(yych){
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':       goto yy156;
        case '8':
        case '9':       goto yy154;
        default:        goto yy143;
        }
yy156:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy76;
        default:        goto yy143;
        }
yy157:  yych = *++YYCURSOR;
        switch(yych){
        case 'I':       goto yy160;
        case 'i':       goto yy159;
        default:        goto yy25;
        }
yy158:  yych = *++YYCURSOR;
        switch(yych){
        case '\000':    goto yy52;
        case 'x':       goto yy144;
        default:        goto yy143;
        }
yy159:  yych = *++YYCURSOR;
        switch(yych){
        case 'n':       goto yy166;
        default:        goto yy25;
        }
yy160:  yych = *++YYCURSOR;
        switch(yych){
        case 'N':       goto yy161;
        case 'n':       goto yy162;
        default:        goto yy25;
        }
yy161:  yych = *++YYCURSOR;
        switch(yych){
        case 'F':       goto yy163;
        default:        goto yy25;
        }
yy162:  yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy163;
        default:        goto yy25;
        }
yy163:  yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy164;
yy164:  ++YYCURSOR;
        goto yy165;
yy165:
#line 107 "implicit.re"
{   return "float#neginf"; }
#line 1381 "<stdout>"
yy166:  yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy163;
        default:        goto yy25;
        }
yy167:  yych = *++YYCURSOR;
        switch(yych){
        case 'I':       goto yy33;
        case 'i':       goto yy32;
        default:        goto yy25;
        }
yy168:  yych = *++YYCURSOR;
        switch(yych){
        case 'L':       goto yy175;
        default:        goto yy25;
        }
yy169:  yych = *++YYCURSOR;
        switch(yych){
        case 'l':       goto yy170;
        default:        goto yy25;
        }
yy170:  yych = *++YYCURSOR;
        switch(yych){
        case 's':       goto yy171;
        default:        goto yy25;
        }
yy171:  yych = *++YYCURSOR;
        switch(yych){
        case 'e':       goto yy172;
        default:        goto yy25;
        }
yy172:  yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy173;
yy173:  ++YYCURSOR;
        goto yy174;
yy174:
#line 89 "implicit.re"
{   return "bool#no"; }
#line 1421 "<stdout>"
yy175:  yych = *++YYCURSOR;
        switch(yych){
        case 'S':       goto yy176;
        default:        goto yy25;
        }
yy176:  yych = *++YYCURSOR;
        switch(yych){
        case 'E':       goto yy172;
        default:        goto yy25;
        }
yy177:  yych = *++YYCURSOR;
        switch(yych){
        case 'l':       goto yy178;
        default:        goto yy25;
        }
yy178:  yych = *++YYCURSOR;
        switch(yych){
        case 's':       goto yy179;
        default:        goto yy25;
        }
yy179:  yych = *++YYCURSOR;
        switch(yych){
        case 'e':       goto yy172;
        default:        goto yy25;
        }
yy180:  yych = *++YYCURSOR;
        switch(yych){
        case 'F':       goto yy172;
        default:        goto yy25;
        }
yy181:  yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy172;
        default:        goto yy25;
        }
yy182:  yych = *++YYCURSOR;
        if(yych >= '\001')      goto yy25;
        goto yy183;
yy183:  ++YYCURSOR;
        goto yy184;
yy184:
#line 87 "implicit.re"
{   return "bool#yes"; }
#line 1465 "<stdout>"
yy185:  yych = *++YYCURSOR;
        switch(yych){
        case 'f':       goto yy172;
        default:        goto yy25;
        }
yy186:  yych = *++YYCURSOR;
        switch(yych){
        case 'U':       goto yy189;
        default:        goto yy25;
        }
yy187:  yych = *++YYCURSOR;
        switch(yych){
        case 'u':       goto yy188;
        default:        goto yy25;
        }
yy188:  yych = *++YYCURSOR;
        switch(yych){
        case 'e':       goto yy182;
        default:        goto yy25;
        }
yy189:  yych = *++YYCURSOR;
        switch(yych){
        case 'E':       goto yy182;
        default:        goto yy25;
        }
yy190:  yych = *++YYCURSOR;
        switch(yych){
        case 'u':       goto yy191;
        default:        goto yy25;
        }
yy191:  yych = *++YYCURSOR;
        switch(yych){
        case 'e':       goto yy182;
        default:        goto yy25;
        }
yy192:  yych = *++YYCURSOR;
        switch(yych){
        case 'S':       goto yy182;
        default:        goto yy25;
        }
yy193:  yych = *++YYCURSOR;
        switch(yych){
        case 's':       goto yy182;
        default:        goto yy25;
        }
yy194:  yych = *++YYCURSOR;
        switch(yych){
        case 's':       goto yy182;
        default:        goto yy25;
        }
yy195:  yych = *++YYCURSOR;
        switch(yych){
        case 'L':       goto yy199;
        default:        goto yy25;
        }
yy196:  yych = *++YYCURSOR;
        switch(yych){
        case 'l':       goto yy197;
        default:        goto yy25;
        }
yy197:  yych = *++YYCURSOR;
        switch(yych){
        case 'l':       goto yy198;
        default:        goto yy25;
        }
yy198:  yych = *++YYCURSOR;
        if(yych <= '\000')      goto yy6;
        goto yy25;
yy199:  yych = *++YYCURSOR;
        switch(yych){
        case 'L':       goto yy198;
        default:        goto yy25;
        }
yy200:  yych = *++YYCURSOR;
        switch(yych){
        case 'l':       goto yy201;
        default:        goto yy25;
        }
yy201:  ++YYCURSOR;
        switch((yych = *YYCURSOR)) {
        case 'l':       goto yy198;
        default:        goto yy25;
        }
}
#line 125 "implicit.re"


}

/* Remove ending fragment and compare types */
int
syck_tagcmp( char *tag1, char *tag2 )
{
    if ( tag1 == tag2 ) return 1;
    if ( tag1 == NULL || tag2 == NULL ) return 0;
    else {
        int i;
        char *othorpe;
        char *tmp1 = syck_strndup( tag1, strlen( tag1 ) );
        char *tmp2 = syck_strndup( tag2, strlen( tag2 ) );
        othorpe = strstr( tmp1, "#" );
                if ( othorpe != NULL ) {
            othorpe[0] = '\0';
        }
        othorpe = strstr( tmp2, "#" );
                if ( othorpe != NULL ) {
            othorpe[0] = '\0';
        }
        i = strcmp( tmp1, tmp2 );
        S_FREE( tmp1 ); S_FREE( tmp2 );
        return i;
    }
}

char *
syck_type_id_to_uri( char *type_id )
{
    char *cursor, *limit, *marker;

    cursor = type_id;
    limit = type_id + strlen( type_id );


#line 1552 "<stdout>"
{
        YYCTYPE yych;
        unsigned int yyaccept;
        goto yy202;
yy203:  ++YYCURSOR;
yy202:
        if((YYLIMIT - YYCURSOR) < 21) YYFILL(21);
        yych = *YYCURSOR;
        switch(yych){
        case '\000':    goto yy204;
        case '!':       goto yy208;
        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 yy210;
        case 't':       goto yy205;
        case 'x':       goto yy207;
        default:        goto yy211;
        }
yy204:  YYCURSOR = YYMARKER;
        switch(yyaccept){
        case 0: goto yy206;
        }
yy205:  yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case ',':       goto yy216;
        case '-':       goto yy212;
        case '.':       goto yy217;
        case '/':       goto yy218;
        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 yy214;
        case 'a':       goto yy246;
        default:        goto yy206;
        }
yy206:
#line 202 "implicit.re"
{   return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); }
#line 1700 "<stdout>"
yy207:  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 yy215;
        case '-':       goto yy236;
        default:        goto yy206;
        }
yy208:  ++YYCURSOR;
        goto yy209;
yy209:
#line 176 "implicit.re"
{   return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); }
#line 1774 "<stdout>"
yy210:  yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch(yych){
        case ',':       goto yy216;
        case '-':       goto yy212;
        case '.':       goto yy217;
        case '/':       goto yy218;
        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 yy214;
        default:        goto yy206;
        }
yy211:  yych = *++YYCURSOR;
        goto yy206;
yy212:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy213;
yy213:  switch(yych){
        case '-':       goto yy212;
        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 yy214;
        default:        goto yy204;
        }
yy214:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy215;
yy215:  switch(yych){
        case ',':       goto yy216;
        case '-':       goto yy212;
        case '.':       goto yy217;
        case '/':       goto yy218;
        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 yy214;
        default:        goto yy204;
        }
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 yy224;
        default:        goto yy204;
        }
yy217:  ++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 yy220;
        default:        goto yy204;
        }
yy218:  ++YYCURSOR;
        goto yy219;
yy219:
#line 178 "implicit.re"
{   char *domain = S_ALLOC_N( char, ( YYCURSOR - type_id ) + 15 );
                    char *uri;

                    domain[0] = '\0';
                    strncat( domain, type_id, ( YYCURSOR - type_id ) - 1 );
                    strcat( domain, "." );
                    strcat( domain, YAML_DOMAIN );
                    uri = syck_taguri( domain, YYCURSOR, YYLIMIT - YYCURSOR );

                    S_FREE( domain );
                    return uri;
                }
#line 2084 "<stdout>"
yy220:  ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        goto yy221;
yy221:  switch(yych){
        case ',':       goto yy216;
        case '-':       goto yy222;
        case '.':       goto yy217;
        case '/':       goto yy218;
        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 yy220;
        default:        goto yy204;
        }
yy222:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy223;
yy223:  switch(yych){
        case '-':       goto yy222;
        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 yy220;
        default:        goto yy204;
        }
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 yy204;
        }
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 yy204;
        }
yy226:  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 yy227;
        default:        goto yy204;
        }
yy227:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy228;
        case '/':       goto yy229;
        default:        goto yy204;
        }
yy228:  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 yy231;
        default:        goto yy204;
        }
yy229:  ++YYCURSOR;
        goto yy230;
yy230:
#line 191 "implicit.re"
{   char *domain = S_ALLOC_N( char, YYCURSOR - type_id );
                               char *uri;

                               domain[0] = '\0';
                               strncat( domain, type_id, ( YYCURSOR - type_id ) - 1 );
                               uri = syck_taguri( domain, YYCURSOR, YYLIMIT - YYCURSOR );

                               S_FREE( domain );
                               return uri;
                            }
#line 2302 "<stdout>"
yy231:  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 yy232;
        default:        goto yy204;
        }
yy232:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy233;
        case '/':       goto yy229;
        default:        goto yy204;
        }
yy233:  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 yy234;
        default:        goto yy204;
        }
yy234:  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 yy235;
        default:        goto yy204;
        }
yy235:  yych = *++YYCURSOR;
        switch(yych){
        case '/':       goto yy229;
        default:        goto yy204;
        }
yy236:  yych = *++YYCURSOR;
        switch(yych){
        case 'p':       goto yy237;
        default:        goto yy213;
        }
yy237:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'r':       goto yy238;
        default:        goto yy213;
        }
yy238:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'i':       goto yy239;
        default:        goto yy213;
        }
yy239:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'v':       goto yy240;
        default:        goto yy213;
        }
yy240:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'a':       goto yy241;
        default:        goto yy213;
        }
yy241:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 't':       goto yy242;
        default:        goto yy213;
        }
yy242:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'e':       goto yy243;
        default:        goto yy213;
        }
yy243:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case ':':       goto yy244;
        default:        goto yy213;
        }
yy244:  ++YYCURSOR;
        goto yy245;
yy245:
#line 174 "implicit.re"
{   return type_id; }
#line 2422 "<stdout>"
yy246:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case 'g':       goto yy247;
        default:        goto yy213;
        }
yy247:  yych = *++YYCURSOR;
        switch(yych){
        case ',':       goto yy216;
        case '.':       goto yy217;
        case '/':       goto yy218;
        case ':':       goto yy248;
        default:        goto yy213;
        }
yy248:  yych = *++YYCURSOR;
        switch(yych){
        case ',':
        case '-':
        case '.':       goto yy204;
        default:        goto yy250;
        }
yy249:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy250;
yy250:  switch(yych){
        case ',':       goto yy253;
        case '-':       goto yy251;
        case '.':       goto yy254;
        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 yy204;
        }
yy251:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy252;
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 yy204;
        }
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 yy259;
        default:        goto yy204;
        }
yy254:  ++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 yy255;
        default:        goto yy204;
        }
yy255:  ++YYCURSOR;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
        goto yy256;
yy256:  switch(yych){
        case ',':       goto yy253;
        case '-':       goto yy257;
        case '.':       goto yy254;
        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 yy255;
        default:        goto yy204;
        }
yy257:  ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        goto yy258;
yy258:  switch(yych){
        case '-':       goto yy257;
        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 yy255;
        default:        goto yy204;
        }
yy259:  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 yy204;
        }
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 yy204;
        }
yy261:  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 yy262;
        default:        goto yy204;
        }
yy262:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy263;
        case ':':       goto yy264;
        default:        goto yy204;
        }
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 yy266;
        default:        goto yy204;
        }
yy264:  ++YYCURSOR;
        goto yy265;
yy265:
#line 172 "implicit.re"
{   return type_id; }
#line 2874 "<stdout>"
yy266:  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 yy267;
        default:        goto yy204;
        }
yy267:  yych = *++YYCURSOR;
        switch(yych){
        case '-':       goto yy268;
        case ':':       goto yy264;
        default:        goto yy204;
        }
yy268:  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 yy269;
        default:        goto yy204;
        }
yy269:  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 yy270;
        default:        goto yy204;
        }
yy270:  ++YYCURSOR;
        switch((yych = *YYCURSOR)) {
        case ':':       goto yy264;
        default:        goto yy204;
        }
}
#line 204 "implicit.re"


}
