in src/scanners.c [749:1587]
bufsize_t _scan_autolink_uri(const unsigned char *p) {
const unsigned char *marker = NULL;
const unsigned char *start = p;
{
unsigned char yych;
static const unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 0, 128, 0, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,
};
yych = *p;
if (yych <= '@')
goto yy41;
if (yych <= 'Z')
goto yy43;
if (yych <= '`')
goto yy41;
if (yych <= 'z')
goto yy43;
yy41:
++p;
yy42 : { return 0; }
yy43:
yych = *(marker = ++p);
if (yych <= '/') {
if (yych <= '+') {
if (yych <= '*')
goto yy42;
} else {
if (yych <= ',')
goto yy42;
if (yych >= '/')
goto yy42;
}
} else {
if (yych <= 'Z') {
if (yych <= '9')
goto yy44;
if (yych <= '@')
goto yy42;
} else {
if (yych <= '`')
goto yy42;
if (yych >= '{')
goto yy42;
}
}
yy44:
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych == '+')
goto yy46;
} else {
if (yych != '/')
goto yy46;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych >= 'A')
goto yy46;
} else {
if (yych <= '`')
goto yy45;
if (yych <= 'z')
goto yy46;
}
}
yy45:
p = marker;
goto yy42;
yy46:
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych == '+')
goto yy49;
goto yy45;
} else {
if (yych == '/')
goto yy45;
goto yy49;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
goto yy49;
} else {
if (yych <= '`')
goto yy45;
if (yych <= 'z')
goto yy49;
goto yy45;
}
}
yy47:
++p;
yych = *p;
if (yybm[0 + yych] & 128) {
goto yy47;
}
if (yych <= 0xEC) {
if (yych <= 0xC1) {
if (yych <= '<')
goto yy45;
if (yych <= '>')
goto yy50;
goto yy45;
} else {
if (yych <= 0xDF)
goto yy52;
if (yych <= 0xE0)
goto yy53;
goto yy54;
}
} else {
if (yych <= 0xF0) {
if (yych <= 0xED)
goto yy55;
if (yych <= 0xEF)
goto yy54;
goto yy56;
} else {
if (yych <= 0xF3)
goto yy57;
if (yych <= 0xF4)
goto yy58;
goto yy45;
}
}
yy49:
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych == '+')
goto yy59;
goto yy45;
} else {
if (yych == '/')
goto yy45;
goto yy59;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
goto yy59;
} else {
if (yych <= '`')
goto yy45;
if (yych <= 'z')
goto yy59;
goto yy45;
}
}
yy50:
++p;
{ return (bufsize_t)(p - start); }
yy52:
++p;
yych = *p;
if (yych <= 0x7F)
goto yy45;
if (yych <= 0xBF)
goto yy47;
goto yy45;
yy53:
++p;
yych = *p;
if (yych <= 0x9F)
goto yy45;
if (yych <= 0xBF)
goto yy52;
goto yy45;
yy54:
++p;
yych = *p;
if (yych <= 0x7F)
goto yy45;
if (yych <= 0xBF)
goto yy52;
goto yy45;
yy55:
++p;
yych = *p;
if (yych <= 0x7F)
goto yy45;
if (yych <= 0x9F)
goto yy52;
goto yy45;
yy56:
++p;
yych = *p;
if (yych <= 0x8F)
goto yy45;
if (yych <= 0xBF)
goto yy54;
goto yy45;
yy57:
++p;
yych = *p;
if (yych <= 0x7F)
goto yy45;
if (yych <= 0xBF)
goto yy54;
goto yy45;
yy58:
++p;
yych = *p;
if (yych <= 0x7F)
goto yy45;
if (yych <= 0x8F)
goto yy54;
goto yy45;
yy59:
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
yych = *++p;
if (yych <= '9') {
if (yych <= ',') {
if (yych != '+')
goto yy45;
} else {
if (yych == '/')
goto yy45;
}
} else {
if (yych <= 'Z') {
if (yych <= ':')
goto yy47;
if (yych <= '@')
goto yy45;
} else {
if (yych <= '`')
goto yy45;
if (yych >= '{')
goto yy45;
}
}
++p;
if ((yych = *p) == ':')
goto yy47;
goto yy45;
}
}