/* Generated by re2c 0.5 on Thu Oct  9 09:11:08 2003 */
#line 1 "implicit.re"
/*
 * implicit.re
 *
 * $Author: knu $
 * $Date: 2003/10/19 19:21:34 $
 *
 * 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 ( 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;

{
	YYCTYPE yych;
	unsigned int yyaccept;
	goto yy0;
yy1:	++YYCURSOR;
yy0:
	if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
	yych = *YYCURSOR;
	if(yych <= 'N'){
		if(yych <= '0'){
			if(yych <= ','){
				if(yych <= '\000')	goto yy6;
				if(yych == '+')	goto yy16;
				goto yy23;
			} else {
				if(yych <= '-')	goto yy17;
				if(yych <= '.')	goto yy20;
				if(yych <= '/')	goto yy23;
				goto yy18;
			}
		} else {
			if(yych <= '='){
				if(yych <= '9')	goto yy19;
				if(yych <= ';')	goto yy23;
				if(yych <= '<')	goto yy22;
				goto yy21;
			} else {
				if(yych == 'F')	goto yy15;
				if(yych <= 'M')	goto yy23;
				goto yy5;
			}
		}
	} else {
		if(yych <= 'm'){
			if(yych <= 'X'){
				if(yych <= 'O')	goto yy13;
				if(yych == 'T')	goto yy9;
				goto yy23;
			} else {
				if(yych <= 'Y')	goto yy11;
				if(yych == 'f')	goto yy14;
				goto yy23;
			}
		} else {
			if(yych <= 't'){
				if(yych <= 'n')	goto yy4;
				if(yych <= 'o')	goto yy12;
				if(yych <= 's')	goto yy23;
				goto yy8;
			} else {
				if(yych <= 'y'){
					if(yych <= 'x')	goto yy23;
					goto yy10;
				} else {
					if(yych != '~')	goto yy23;
				}
			}
		}
	}
yy2:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy6;
yy3:
#line 116
	{   return "str"; }
yy4:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'o')	goto yy163;
	if(yych == 'u')	goto yy191;
	goto yy3;
yy5:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 'U'){
		if(yych == 'O')	goto yy163;
		if(yych <= 'T')	goto yy3;
		goto yy186;
	} else {
		if(yych <= 'o'){
			if(yych <= 'n')	goto yy3;
			goto yy163;
		} else {
			if(yych == 'u')	goto yy187;
			goto yy3;
		}
	}
yy6:	yych = *++YYCURSOR;
yy7:
#line 82
	{   return "null"; }
yy8:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'r')	goto yy184;
	goto yy3;
yy9:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'R')	goto yy180;
	if(yych == 'r')	goto yy181;
	goto yy3;
yy10:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'e')	goto yy179;
	goto yy3;
yy11:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'E')	goto yy177;
	if(yych == 'e')	goto yy178;
	goto yy3;
yy12:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'f')	goto yy176;
	if(yych == 'n')	goto yy173;
	goto yy3;
yy13:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 'N'){
		if(yych == 'F')	goto yy171;
		if(yych <= 'M')	goto yy3;
		goto yy173;
	} else {
		if(yych <= 'f'){
			if(yych <= 'e')	goto yy3;
			goto yy172;
		} else {
			if(yych == 'n')	goto yy173;
			goto yy3;
		}
	}
yy14:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'a')	goto yy168;
	goto yy3;
yy15:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'A')	goto yy159;
	if(yych == 'a')	goto yy160;
	goto yy3;
yy16:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '/'){
		if(yych == '.')	goto yy158;
		goto yy3;
	} else {
		if(yych <= '0')	goto yy149;
		if(yych <= '9')	goto yy47;
		goto yy3;
	}
yy17:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '/'){
		if(yych == '.')	goto yy148;
		goto yy3;
	} else {
		if(yych <= '0')	goto yy149;
		if(yych <= '9')	goto yy47;
		goto yy3;
	}
yy18:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '.'){
		if(yych <= '+'){
			if(yych <= '\000')	goto yy51;
			goto yy3;
		} else {
			if(yych <= ',')	goto yy133;
			if(yych <= '-')	goto yy3;
			goto yy49;
		}
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy3;
			if(yych <= '7')	goto yy131;
			goto yy132;
		} else {
			if(yych == 'x')	goto yy135;
			goto yy3;
		}
	}
yy19:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '-'){
		if(yych <= '\000')	goto yy51;
		if(yych == ',')	goto yy47;
		goto yy3;
	} else {
		if(yych <= '.')	goto yy49;
		if(yych <= '/')	goto yy3;
		if(yych <= '9')	goto yy46;
		goto yy3;
	}
yy20:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 'N'){
		if(yych == 'I')	goto yy33;
		if(yych <= 'M')	goto yy3;
		goto yy31;
	} else {
		if(yych <= 'i'){
			if(yych <= 'h')	goto yy3;
			goto yy32;
		} else {
			if(yych == 'n')	goto yy30;
			goto yy3;
		}
	}
yy21:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy28;
	goto yy3;
yy22:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == '<')	goto yy24;
	goto yy3;
yy23:	yych = *++YYCURSOR;
	goto yy3;
yy24:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy26;
yy25:	YYCURSOR = YYMARKER;
	switch(yyaccept){
	case 0:	goto yy3;
	}
yy26:	yych = *++YYCURSOR;
yy27:
#line 114
	{   return "merge"; }
yy28:	yych = *++YYCURSOR;
yy29:
#line 112
	{   return "default"; }
yy30:	yych = *++YYCURSOR;
	if(yych == 'a')	goto yy45;
	goto yy25;
yy31:	yych = *++YYCURSOR;
	if(yych == 'A')	goto yy40;
	if(yych == 'a')	goto yy41;
	goto yy25;
yy32:	yych = *++YYCURSOR;
	if(yych == 'n')	goto yy39;
	goto yy25;
yy33:	yych = *++YYCURSOR;
	if(yych == 'N')	goto yy34;
	if(yych == 'n')	goto yy35;
	goto yy25;
yy34:	yych = *++YYCURSOR;
	if(yych == 'F')	goto yy36;
	goto yy25;
yy35:	yych = *++YYCURSOR;
	if(yych != 'f')	goto yy25;
yy36:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy37:	yych = *++YYCURSOR;
yy38:
#line 98
	{   return "float#inf"; }
yy39:	yych = *++YYCURSOR;
	if(yych == 'f')	goto yy36;
	goto yy25;
yy40:	yych = *++YYCURSOR;
	if(yych == 'N')	goto yy42;
	goto yy25;
yy41:	yych = *++YYCURSOR;
	if(yych != 'N')	goto yy25;
yy42:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy43:	yych = *++YYCURSOR;
yy44:
#line 102
	{   return "float#nan"; }
yy45:	yych = *++YYCURSOR;
	if(yych == 'n')	goto yy42;
	goto yy25;
yy46:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy48;
	if(yych <= '9')	goto yy65;
	goto yy48;
yy47:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy48:	if(yych <= '-'){
		if(yych <= '\000')	goto yy51;
		if(yych == ',')	goto yy47;
		goto yy25;
	} else {
		if(yych <= '.')	goto yy49;
		if(yych <= '/')	goto yy25;
		if(yych <= '9')	goto yy47;
		goto yy25;
	}
yy49:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy50:	if(yych <= '/'){
		if(yych <= ','){
			if(yych <= '\000')	goto yy55;
			if(yych <= '+')	goto yy25;
			goto yy53;
		} else {
			if(yych == '.')	goto yy57;
			goto yy25;
		}
	} else {
		if(yych <= 'E'){
			if(yych <= '9')	goto yy49;
			if(yych <= 'D')	goto yy25;
			goto yy59;
		} else {
			if(yych == 'e')	goto yy59;
			goto yy25;
		}
	}
yy51:	yych = *++YYCURSOR;
yy52:
#line 92
	{   return "int"; }
yy53:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy54:	if(yych <= ','){
		if(yych <= '\000')	goto yy55;
		if(yych <= '+')	goto yy25;
		goto yy53;
	} else {
		if(yych <= '/')	goto yy25;
		if(yych <= '9')	goto yy53;
		goto yy25;
	}
yy55:	yych = *++YYCURSOR;
yy56:
#line 94
	{   return "float#fix"; }
yy57:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy58:	if(yych <= '9'){
		if(yych == '.')	goto yy57;
		if(yych <= '/')	goto yy25;
		goto yy57;
	} else {
		if(yych <= 'E'){
			if(yych <= 'D')	goto yy25;
		} else {
			if(yych != 'e')	goto yy25;
		}
	}
yy59:	yych = *++YYCURSOR;
	if(yych == '+')	goto yy60;
	if(yych != '-')	goto yy25;
yy60:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy25;
	goto yy62;
yy61:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy62:	if(yych <= '\000')	goto yy63;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy61;
	goto yy25;
yy63:	yych = *++YYCURSOR;
yy64:
#line 96
	{   return "float#exp"; }
yy65:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy48;
	if(yych >= ':')	goto yy48;
yy66:	yych = *++YYCURSOR;
	if(yych != '-')	goto yy48;
yy67:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy68:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy69:	yych = *++YYCURSOR;
	if(yych != '-')	goto yy25;
yy70:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy71:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy72:	yych = *++YYCURSOR;
	if(yych <= 'S'){
		if(yych <= '\000')	goto yy73;
		if(yych <= '/')	goto yy78;
		if(yych <= '9')	goto yy25;
		goto yy78;
	} else {
		if(yych <= 'T')	goto yy75;
		if(yych == 't')	goto yy76;
		goto yy78;
	}
yy73:	yych = *++YYCURSOR;
yy74:
#line 104
	{   return "timestamp#ymd"; }
yy75:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy117;
	goto yy25;
yy76:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy99;
	goto yy25;
yy77:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy78:	if(yych <= '\037'){
		if(yych == '\t')	goto yy77;
		goto yy25;
	} else {
		if(yych <= ' ')	goto yy77;
		if(yych <= '/')	goto yy25;
		if(yych >= ':')	goto yy25;
	}
yy79:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy80:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy81:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy82:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy83:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy84:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy85:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy86:	yych = *++YYCURSOR;
	if(yych <= '\037'){
		if(yych == '\t')	goto yy89;
		goto yy25;
	} else {
		if(yych <= ' ')	goto yy89;
		if(yych != '.')	goto yy25;
	}
yy87:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy88:	if(yych <= '\037'){
		if(yych != '\t')	goto yy25;
	} else {
		if(yych <= ' ')	goto yy89;
		if(yych <= '/')	goto yy25;
		if(yych <= '9')	goto yy87;
		goto yy25;
	}
yy89:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy90:	if(yych <= '*'){
		if(yych <= '\t'){
			if(yych <= '\b')	goto yy25;
			goto yy89;
		} else {
			if(yych == ' ')	goto yy89;
			goto yy25;
		}
	} else {
		if(yych <= '-'){
			if(yych == ',')	goto yy25;
			goto yy92;
		} else {
			if(yych != 'Z')	goto yy25;
		}
	}
yy91:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy96;
	goto yy25;
yy92:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy93:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy94:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy96;
	if(yych != ':')	goto yy25;
yy95:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy98;
	goto yy25;
yy96:	yych = *++YYCURSOR;
yy97:
#line 108
	{   return "timestamp#spaced"; }
yy98:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy91;
	goto yy25;
yy99:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy100:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy101:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy102:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy103:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy104:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy105:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy106:	yych = *++YYCURSOR;
	if(yych == '.')	goto yy107;
	if(yych <= '/')	goto yy108;
	if(yych <= '9')	goto yy25;
	goto yy108;
yy107:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy108:	if(yych <= '-'){
		if(yych == '+')	goto yy110;
		if(yych <= ',')	goto yy25;
		goto yy110;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy25;
			goto yy107;
		} else {
			if(yych != 'Z')	goto yy25;
		}
	}
yy109:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy114;
	goto yy25;
yy110:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy111:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy112:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy114;
	if(yych != ':')	goto yy25;
yy113:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy116;
	goto yy25;
yy114:	yych = *++YYCURSOR;
yy115:
#line 106
	{   return "timestamp#iso8601"; }
yy116:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych <= '9')	goto yy109;
	goto yy25;
yy117:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy118:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy119:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy120:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy121:	yych = *++YYCURSOR;
	if(yych != ':')	goto yy25;
yy122:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy123:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy25;
	if(yych >= ':')	goto yy25;
yy124:	yych = *++YYCURSOR;
	if(yych <= '/'){
		if(yych != '.')	goto yy126;
	} else {
		if(yych <= '9')	goto yy25;
		if(yych == 'Z')	goto yy127;
		goto yy126;
	}
yy125:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
	yych = *YYCURSOR;
yy126:	if(yych <= '/'){
		if(yych <= '+'){
			if(yych <= '*')	goto yy25;
			goto yy110;
		} else {
			if(yych == '-')	goto yy110;
			goto yy25;
		}
	} else {
		if(yych <= '9'){
			if(yych <= '0')	goto yy125;
			goto yy129;
		} else {
			if(yych == 'Z')	goto yy109;
			goto yy25;
		}
	}
yy127:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy128:	yych = *++YYCURSOR;
	goto yy115;
yy129:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
	yych = *YYCURSOR;
yy130:	if(yych <= '/'){
		if(yych <= '+'){
			if(yych <= '*')	goto yy25;
			goto yy110;
		} else {
			if(yych == '-')	goto yy110;
			goto yy25;
		}
	} else {
		if(yych <= '9'){
			if(yych <= '0')	goto yy125;
			goto yy129;
		} else {
			if(yych == 'Z')	goto yy127;
			goto yy25;
		}
	}
yy131:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy134;
	if(yych <= '7')	goto yy146;
	if(yych <= '9')	goto yy144;
	goto yy134;
yy132:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy143;
	if(yych <= '9')	goto yy144;
	goto yy143;
yy133:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy134:	if(yych <= '-'){
		if(yych <= '\000')	goto yy140;
		if(yych == ',')	goto yy133;
		goto yy25;
	} else {
		if(yych <= '/'){
			if(yych <= '.')	goto yy49;
			goto yy25;
		} else {
			if(yych <= '7')	goto yy133;
			if(yych <= '9')	goto yy142;
			goto yy25;
		}
	}
yy135:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy25;
	goto yy137;
yy136:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy137:	if(yych <= '9'){
		if(yych <= '+'){
			if(yych >= '\001')	goto yy25;
		} else {
			if(yych <= ',')	goto yy136;
			if(yych <= '/')	goto yy25;
			goto yy136;
		}
	} else {
		if(yych <= 'F'){
			if(yych <= '@')	goto yy25;
			goto yy136;
		} else {
			if(yych <= '`')	goto yy25;
			if(yych <= 'f')	goto yy136;
			goto yy25;
		}
	}
yy138:	yych = *++YYCURSOR;
yy139:
#line 88
	{   return "int#hex"; }
yy140:	yych = *++YYCURSOR;
yy141:
#line 90
	{   return "int#oct"; }
yy142:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy143:	if(yych <= '-'){
		if(yych == ',')	goto yy142;
		goto yy25;
	} else {
		if(yych <= '.')	goto yy49;
		if(yych <= '/')	goto yy25;
		if(yych <= '9')	goto yy142;
		goto yy25;
	}
yy144:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy143;
	if(yych >= ':')	goto yy143;
yy145:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy67;
	goto yy143;
yy146:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy134;
	if(yych <= '7')	goto yy147;
	if(yych <= '9')	goto yy145;
	goto yy134;
yy147:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy67;
	goto yy134;
yy148:	yych = *++YYCURSOR;
	if(yych == 'I')	goto yy151;
	if(yych == 'i')	goto yy150;
	goto yy25;
yy149:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy51;
	if(yych == 'x')	goto yy135;
	goto yy134;
yy150:	yych = *++YYCURSOR;
	if(yych == 'n')	goto yy157;
	goto yy25;
yy151:	yych = *++YYCURSOR;
	if(yych == 'N')	goto yy152;
	if(yych == 'n')	goto yy153;
	goto yy25;
yy152:	yych = *++YYCURSOR;
	if(yych == 'F')	goto yy154;
	goto yy25;
yy153:	yych = *++YYCURSOR;
	if(yych != 'f')	goto yy25;
yy154:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy155:	yych = *++YYCURSOR;
yy156:
#line 100
	{   return "float#neginf"; }
yy157:	yych = *++YYCURSOR;
	if(yych == 'f')	goto yy154;
	goto yy25;
yy158:	yych = *++YYCURSOR;
	if(yych == 'I')	goto yy33;
	if(yych == 'i')	goto yy32;
	goto yy25;
yy159:	yych = *++YYCURSOR;
	if(yych == 'L')	goto yy166;
	goto yy25;
yy160:	yych = *++YYCURSOR;
	if(yych != 'l')	goto yy25;
yy161:	yych = *++YYCURSOR;
	if(yych != 's')	goto yy25;
yy162:	yych = *++YYCURSOR;
	if(yych != 'e')	goto yy25;
yy163:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy164:	yych = *++YYCURSOR;
yy165:
#line 86
	{   return "bool#no"; }
yy166:	yych = *++YYCURSOR;
	if(yych != 'S')	goto yy25;
yy167:	yych = *++YYCURSOR;
	if(yych == 'E')	goto yy163;
	goto yy25;
yy168:	yych = *++YYCURSOR;
	if(yych != 'l')	goto yy25;
yy169:	yych = *++YYCURSOR;
	if(yych != 's')	goto yy25;
yy170:	yych = *++YYCURSOR;
	if(yych == 'e')	goto yy163;
	goto yy25;
yy171:	yych = *++YYCURSOR;
	if(yych == 'F')	goto yy163;
	goto yy25;
yy172:	yych = *++YYCURSOR;
	if(yych == 'f')	goto yy163;
	goto yy25;
yy173:	yych = *++YYCURSOR;
	if(yych >= '\001')	goto yy25;
yy174:	yych = *++YYCURSOR;
yy175:
#line 84
	{   return "bool#yes"; }
yy176:	yych = *++YYCURSOR;
	if(yych == 'f')	goto yy163;
	goto yy25;
yy177:	yych = *++YYCURSOR;
	if(yych == 'S')	goto yy173;
	goto yy25;
yy178:	yych = *++YYCURSOR;
	if(yych == 's')	goto yy173;
	goto yy25;
yy179:	yych = *++YYCURSOR;
	if(yych == 's')	goto yy173;
	goto yy25;
yy180:	yych = *++YYCURSOR;
	if(yych == 'U')	goto yy183;
	goto yy25;
yy181:	yych = *++YYCURSOR;
	if(yych != 'u')	goto yy25;
yy182:	yych = *++YYCURSOR;
	if(yych == 'e')	goto yy173;
	goto yy25;
yy183:	yych = *++YYCURSOR;
	if(yych == 'E')	goto yy173;
	goto yy25;
yy184:	yych = *++YYCURSOR;
	if(yych != 'u')	goto yy25;
yy185:	yych = *++YYCURSOR;
	if(yych == 'e')	goto yy173;
	goto yy25;
yy186:	yych = *++YYCURSOR;
	if(yych == 'L')	goto yy190;
	goto yy25;
yy187:	yych = *++YYCURSOR;
	if(yych != 'l')	goto yy25;
yy188:	yych = *++YYCURSOR;
	if(yych != 'l')	goto yy25;
yy189:	yych = *++YYCURSOR;
	if(yych <= '\000')	goto yy6;
	goto yy25;
yy190:	yych = *++YYCURSOR;
	if(yych == 'L')	goto yy189;
	goto yy25;
yy191:	yych = *++YYCURSOR;
	if(yych != 'l')	goto yy25;
yy192:	yych = *++YYCURSOR;
	if(yych == 'l')	goto yy189;
	goto yy25;
}
#line 118


}

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

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

{
	YYCTYPE yych;
	unsigned int yyaccept;
	goto yy193;
yy194:	++YYCURSOR;
yy193:
	if((YYLIMIT - YYCURSOR) < 21) YYFILL(21);
	yych = *YYCURSOR;
	if(yych <= '^'){
		if(yych <= '/'){
			if(yych <= '\000')	goto yy195;
			if(yych == '!')	goto yy199;
			goto yy202;
		} else {
			if(yych <= '9')	goto yy201;
			if(yych <= '@')	goto yy202;
			if(yych <= 'Z')	goto yy201;
			goto yy202;
		}
	} else {
		if(yych <= 't'){
			if(yych == '`')	goto yy202;
			if(yych <= 's')	goto yy201;
			goto yy196;
		} else {
			if(yych == 'x')	goto yy198;
			if(yych <= 'z')	goto yy201;
			goto yy202;
		}
	}
yy195:	YYCURSOR = YYMARKER;
	switch(yyaccept){
	case 0:	goto yy197;
	}
yy196:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '@'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy197;
			if(yych <= ',')	goto yy207;
			goto yy203;
		} else {
			if(yych <= '.')	goto yy208;
			if(yych <= '/')	goto yy209;
			if(yych <= '9')	goto yy205;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy205;
			if(yych >= '_')	goto yy205;
		} else {
			if(yych <= '`')	goto yy197;
			if(yych <= 'a')	goto yy237;
			if(yych <= 'z')	goto yy205;
		}
	}
yy197:
#line 170
	{   return syck_taguri( YAML_DOMAIN, type_id, strlen( type_id ) ); }
yy198:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '@'){
		if(yych <= ','){
			if(yych <= '+')	goto yy197;
			goto yy206;
		} else {
			if(yych <= '-')	goto yy227;
			if(yych <= '9')	goto yy206;
			goto yy197;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy206;
			if(yych <= '^')	goto yy197;
			goto yy206;
		} else {
			if(yych <= '`')	goto yy197;
			if(yych <= 'z')	goto yy206;
			goto yy197;
		}
	}
yy199:	yych = *++YYCURSOR;
yy200:
#line 144
	{   return syck_xprivate( type_id + 1, strlen( type_id ) - 1 ); }
yy201:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '9'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy197;
			if(yych <= ',')	goto yy207;
			goto yy203;
		} else {
			if(yych <= '.')	goto yy208;
			if(yych <= '/')	goto yy209;
			goto yy205;
		}
	} else {
		if(yych <= '^'){
			if(yych <= '@')	goto yy197;
			if(yych <= 'Z')	goto yy205;
			goto yy197;
		} else {
			if(yych == '`')	goto yy197;
			if(yych <= 'z')	goto yy205;
			goto yy197;
		}
	}
yy202:	yych = *++YYCURSOR;
	goto yy197;
yy203:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy204:	if(yych <= '@'){
		if(yych <= '-'){
			if(yych <= ',')	goto yy195;
			goto yy203;
		} else {
			if(yych <= '/')	goto yy195;
			if(yych >= ':')	goto yy195;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy205;
			if(yych <= '^')	goto yy195;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych >= '{')	goto yy195;
		}
	}
yy205:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy206:	if(yych <= '9'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy195;
			if(yych >= '-')	goto yy203;
		} else {
			if(yych <= '.')	goto yy208;
			if(yych <= '/')	goto yy209;
			goto yy205;
		}
	} else {
		if(yych <= '^'){
			if(yych <= '@')	goto yy195;
			if(yych <= 'Z')	goto yy205;
			goto yy195;
		} else {
			if(yych == '`')	goto yy195;
			if(yych <= 'z')	goto yy205;
			goto yy195;
		}
	}
yy207:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych <= '9')	goto yy215;
	goto yy195;
yy208:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 'Z'){
		if(yych <= '/')	goto yy195;
		if(yych <= '9')	goto yy211;
		if(yych <= '@')	goto yy195;
		goto yy211;
	} else {
		if(yych <= '_'){
			if(yych <= '^')	goto yy195;
			goto yy211;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych <= 'z')	goto yy211;
			goto yy195;
		}
	}
yy209:	yych = *++YYCURSOR;
yy210:
#line 146
	{   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;
                }
yy211:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
yy212:	if(yych <= '9'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy195;
			if(yych <= ',')	goto yy207;
		} else {
			if(yych <= '.')	goto yy208;
			if(yych <= '/')	goto yy209;
			goto yy211;
		}
	} else {
		if(yych <= '^'){
			if(yych <= '@')	goto yy195;
			if(yych <= 'Z')	goto yy211;
			goto yy195;
		} else {
			if(yych == '`')	goto yy195;
			if(yych <= 'z')	goto yy211;
			goto yy195;
		}
	}
yy213:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy214:	if(yych <= '@'){
		if(yych <= '-'){
			if(yych <= ',')	goto yy195;
			goto yy213;
		} else {
			if(yych <= '/')	goto yy195;
			if(yych <= '9')	goto yy211;
			goto yy195;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy211;
			if(yych <= '^')	goto yy195;
			goto yy211;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych <= 'z')	goto yy211;
			goto yy195;
		}
	}
yy215:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy216:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy217:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy218:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy219;
	if(yych == '/')	goto yy220;
	goto yy195;
yy219:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych <= '9')	goto yy222;
	goto yy195;
yy220:	yych = *++YYCURSOR;
yy221:
#line 159
	{   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;
                            }
yy222:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy223:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy224;
	if(yych == '/')	goto yy220;
	goto yy195;
yy224:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy225:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy226:	yych = *++YYCURSOR;
	if(yych == '/')	goto yy220;
	goto yy195;
yy227:	yych = *++YYCURSOR;
	if(yych != 'p')	goto yy204;
yy228:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'r')	goto yy204;
	}
yy229:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'i')	goto yy204;
	}
yy230:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'v')	goto yy204;
	}
yy231:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'a')	goto yy204;
	}
yy232:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 't')	goto yy204;
	}
yy233:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'e')	goto yy204;
	}
yy234:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != ':')	goto yy204;
	}
yy235:	yych = *++YYCURSOR;
yy236:
#line 142
	{   return type_id; }
yy237:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != 'g')	goto yy204;
	}
yy238:	yych = *++YYCURSOR;
	if(yych <= '.'){
		if(yych == ',')	goto yy207;
		if(yych <= '-')	goto yy204;
		goto yy208;
	} else {
		if(yych <= '/')	goto yy209;
		if(yych != ':')	goto yy204;
	}
yy239:	yych = *++YYCURSOR;
	if(yych <= '+')	goto yy241;
	if(yych <= '.')	goto yy195;
	goto yy241;
yy240:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy241:	if(yych <= '9'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy195;
			if(yych <= ',')	goto yy244;
		} else {
			if(yych <= '.')	goto yy245;
			if(yych <= '/')	goto yy195;
			goto yy240;
		}
	} else {
		if(yych <= '^'){
			if(yych <= '@')	goto yy195;
			if(yych <= 'Z')	goto yy240;
			goto yy195;
		} else {
			if(yych == '`')	goto yy195;
			if(yych <= 'z')	goto yy240;
			goto yy195;
		}
	}
yy242:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy243:	if(yych <= '@'){
		if(yych <= '-'){
			if(yych <= ',')	goto yy195;
			goto yy242;
		} else {
			if(yych <= '/')	goto yy195;
			if(yych <= '9')	goto yy240;
			goto yy195;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy240;
			if(yych <= '^')	goto yy195;
			goto yy240;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych <= 'z')	goto yy240;
			goto yy195;
		}
	}
yy244:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych <= '9')	goto yy250;
	goto yy195;
yy245:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 'Z'){
		if(yych <= '/')	goto yy195;
		if(yych <= '9')	goto yy246;
		if(yych <= '@')	goto yy195;
	} else {
		if(yych <= '_'){
			if(yych <= '^')	goto yy195;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych >= '{')	goto yy195;
		}
	}
yy246:	++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
yy247:	if(yych <= '9'){
		if(yych <= '-'){
			if(yych <= '+')	goto yy195;
			if(yych <= ',')	goto yy244;
		} else {
			if(yych <= '.')	goto yy245;
			if(yych <= '/')	goto yy195;
			goto yy246;
		}
	} else {
		if(yych <= '^'){
			if(yych <= '@')	goto yy195;
			if(yych <= 'Z')	goto yy246;
			goto yy195;
		} else {
			if(yych == '`')	goto yy195;
			if(yych <= 'z')	goto yy246;
			goto yy195;
		}
	}
yy248:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy249:	if(yych <= '@'){
		if(yych <= '-'){
			if(yych <= ',')	goto yy195;
			goto yy248;
		} else {
			if(yych <= '/')	goto yy195;
			if(yych <= '9')	goto yy246;
			goto yy195;
		}
	} else {
		if(yych <= '_'){
			if(yych <= 'Z')	goto yy246;
			if(yych <= '^')	goto yy195;
			goto yy246;
		} else {
			if(yych <= '`')	goto yy195;
			if(yych <= 'z')	goto yy246;
			goto yy195;
		}
	}
yy250:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy251:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy252:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy253:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy254;
	if(yych == ':')	goto yy255;
	goto yy195;
yy254:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych <= '9')	goto yy257;
	goto yy195;
yy255:	yych = *++YYCURSOR;
yy256:
#line 140
	{   return type_id; }
yy257:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy258:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy259;
	if(yych == ':')	goto yy255;
	goto yy195;
yy259:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy260:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy195;
	if(yych >= ':')	goto yy195;
yy261:	yych = *++YYCURSOR;
	if(yych == ':')	goto yy255;
	goto yy195;
}
#line 172


}

