/* Generated by re2c 0.9.10 on Mon Sep 19 21:46:50 2005 */
#line 1 "implicit.re"
/*
 * implicit.re
 *
 * $Author: nobu $
 *
 * Copyright (C) 2003 why the lucky stiff
 */

#include "ruby/ruby.h"
#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 )
{
    const 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 ) );
    }
}

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


#line 55 "<stdout>"
{
	YYCTYPE yych;
	unsigned int yyaccept;
	goto yy0;
	++YYCURSOR;
yy0:
	if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
	yych = *YYCURSOR;
	switch(yych){
	case 0x00:	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) <= 0x00)	goto yy6;
	goto yy3;
yy3:
#line 123 "implicit.re"
{   return "str"; }
#line 100 "<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 121 "<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 0x00:	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 0x00:	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 <= 0x00)	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 <= 0x00)	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 279 "<stdout>"
yy28:	++YYCURSOR;
	goto yy29;
yy29:
#line 119 "implicit.re"
{   return "default"; }
#line 285 "<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 >= 0x01)	goto yy25;
	goto yy37;
yy37:	++YYCURSOR;
	goto yy38;
yy38:
#line 105 "implicit.re"
{   return "float#inf"; }
#line 326 "<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 >= 0x01)	goto yy25;
	goto yy43;
yy43:	++YYCURSOR;
	goto yy44;
yy44:
#line 109 "implicit.re"
{   return "float#nan"; }
#line 350 "<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 0x00:	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) < 3) YYFILL(3);
	yych = *YYCURSOR;
	goto yy51;
yy51:	switch(yych){
	case 0x00:	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 432 "<stdout>"
yy54:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy55;
yy55:	switch(yych){
	case 0x00:	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 456 "<stdout>"
yy58:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	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 <= 0x00)	goto yy25;
	goto yy63;
yy62:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy63;
yy63:	switch(yych){
	case 0x00:	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 506 "<stdout>"
yy66:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch(yych){
	case 0x00:	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 0x00:	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 0x00:	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 558 "<stdout>"
yy72:	++YYCURSOR;
	goto yy73;
yy73:
#line 103 "implicit.re"
{   return "float#base60"; }
#line 564 "<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 0x00:	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 667 "<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) < 9) YYFILL(9);
	yych = *YYCURSOR;
	goto yy87;
yy87:	switch(yych){
	case 0x09:	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 0x09:	case ' ':	goto yy98;
	case '.':	goto yy96;
	default:	goto yy25;
	}
yy96:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy97;
yy97:	switch(yych){
	case 0x09:	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) < 7) YYFILL(7);
	yych = *YYCURSOR;
	goto yy99;
yy99:	switch(yych){
	case 0x09:	case ' ':	goto yy98;
	case '+':	case '-':	goto yy101;
	case 'Z':	goto yy100;
	default:	goto yy25;
	}
yy100:	yych = *++YYCURSOR;
	if(yych <= 0x00)	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 0x00:	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 884 "<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) < 7) YYFILL(7);
	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 <= 0x00)	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 0x00:	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 1069 "<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 >= 0x01)	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 0x00:	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 <= 0x00)	goto yy25;
	goto yy146;
yy145:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy146;
yy146:	switch(yych){
	case 0x00:	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 1307 "<stdout>"
yy149:	++YYCURSOR;
	goto yy150;
yy150:
#line 93 "implicit.re"
{   return "int#oct"; }
#line 1313 "<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 0x00:	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 >= 0x01)	goto yy25;
	goto yy164;
yy164:	++YYCURSOR;
	goto yy165;
yy165:
#line 107 "implicit.re"
{   return "float#neginf"; }
#line 1412 "<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 >= 0x01)	goto yy25;
	goto yy173;
yy173:	++YYCURSOR;
	goto yy174;
yy174:
#line 89 "implicit.re"
{   return "bool#no"; }
#line 1452 "<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 >= 0x01)	goto yy25;
	goto yy183;
yy183:	++YYCURSOR;
	goto yy184;
yy184:
#line 87 "implicit.re"
{   return "bool#yes"; }
#line 1496 "<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 <= 0x00)	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( const char *tag1, const 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( const char *type_id )
{
    const char *cursor, *limit, *marker = 0;

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


#line 1620 "<stdout>"
{
	YYCTYPE yych;
	unsigned int yyaccept = 0;
	goto yy202;
	++YYCURSOR;
yy202:
	if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
	yych = *YYCURSOR;
	switch(yych){
	case 0x00:	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 1768 "<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 1842 "<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) < 2) YYFILL(2);
	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 2149 "<stdout>"
yy220:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
	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 2365 "<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 syck_strndup( type_id, strlen( type_id ) ); }
#line 2485 "<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) < 2) YYFILL(2);
	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) < 12) YYFILL(12);
	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 syck_strndup( type_id, strlen( type_id ) ); }
#line 2932 "<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"


}
