📄 htmlscanner.java
字号:
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_IMG:
switch ( ch )
{
case '>': state = ST_GROUND; break;
case '"': state = ST_IMG_QUOTE; break;
case 'S': case 's': state = ST_IMG_S; break;
default: break;
}
break;
case ST_IMG_QUOTE:
switch ( ch )
{
case '"': state = ST_IMG; break;
default: break;
}
break;
case ST_IMG_S:
switch ( ch )
{
case 'R': case 'r': state = ST_IMG_SR; break;
case '"': state = ST_IMG_QUOTE; break;
default: state = ST_IMG; break;
}
break;
case ST_IMG_SR:
switch ( ch )
{
case 'C': case 'c': state = ST_IMG_SRC; break;
case '"': state = ST_IMG_QUOTE; break;
default: state = ST_IMG; break;
}
break;
case ST_IMG_SRC:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '=': state = ST_IMG_SRC_EQUAL; break;
case '"': state = ST_IMG_QUOTE; break;
default: state = ST_IMG; break;
}
break;
case ST_IMG_SRC_EQUAL:
// Start accumulating a URL.
urlBuf.setLength( 0 );
gettingUrl = true;
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '"': state = ST_IMGSRC_Q; break;
default:
// Accumulate the URL.
urlBuf.append( ch );
state = ST_IMGSRC_NQ;
break;
}
break;
case ST_IMGSRC_Q:
switch ( ch )
{
case '"':
// Got a complete URL.
callIMGSRC( urlBuf.toString() );
gettingUrl = false;
state = ST_IMG;
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_IMGSRC_NQ:
switch ( ch )
{
case '>':
case ' ': case '\t': case '\n': case '\r':
// Got a complete URL.
callIMGSRC( urlBuf.toString() );
gettingUrl = false;
state = ( ch == '>' ? ST_GROUND : ST_IMG );
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_LT_F:
switch ( ch )
{
case 'R': case 'r': state = ST_LT_FR; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_FR:
switch ( ch )
{
case 'A': case 'a': state = ST_LT_FRA; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_FRA:
switch ( ch )
{
case 'M': case 'm': state = ST_LT_FRAM; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_FRAM:
switch ( ch )
{
case 'E': case 'e': state = ST_LT_FRAME; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_FRAME:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r':
state = ST_FRAME; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_FRAME:
switch ( ch )
{
case '>': state = ST_GROUND; break;
case '"': state = ST_FRAME_QUOTE; break;
case 'S': case 's': state = ST_FRAME_S; break;
default: break;
}
break;
case ST_FRAME_QUOTE:
switch ( ch )
{
case '"': state = ST_FRAME; break;
default: break;
}
break;
case ST_FRAME_S:
switch ( ch )
{
case 'R': case 'r': state = ST_FRAME_SR; break;
case '"': state = ST_FRAME_QUOTE; break;
default: state = ST_FRAME; break;
}
break;
case ST_FRAME_SR:
switch ( ch )
{
case 'C': case 'c': state = ST_FRAME_SRC; break;
case '"': state = ST_FRAME_QUOTE; break;
default: state = ST_FRAME; break;
}
break;
case ST_FRAME_SRC:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '=': state = ST_FRAME_SRC_EQUAL; break;
case '"': state = ST_FRAME_QUOTE; break;
default: state = ST_FRAME; break;
}
break;
case ST_FRAME_SRC_EQUAL:
// Start accumulating a URL.
urlBuf.setLength( 0 );
gettingUrl = true;
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '"': state = ST_FRAMESRC_Q; break;
default:
// Accumulate the URL.
urlBuf.append( ch );
state = ST_FRAMESRC_NQ;
break;
}
break;
case ST_FRAMESRC_Q:
switch ( ch )
{
case '"':
// Got a complete URL.
callFRAMESRC( urlBuf.toString() );
gettingUrl = false;
state = ST_FRAME;
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_FRAMESRC_NQ:
switch ( ch )
{
case '>':
case ' ': case '\t': case '\n': case '\r':
// Got a complete URL.
callFRAMESRC( urlBuf.toString() );
gettingUrl = false;
state = ( ch == '>' ? ST_GROUND : ST_FRAME );
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_LT_B:
switch ( ch )
{
case 'A': case 'a': state = ST_LT_BA; break;
case 'O': case 'o': state = ST_LT_BO; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_BA:
switch ( ch )
{
case 'S': case 's': state = ST_LT_BAS; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_BAS:
switch ( ch )
{
case 'E': case 'e': state = ST_LT_BASE; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_BASE:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r':
state = ST_BASE; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_BASE:
switch ( ch )
{
case '>': state = ST_GROUND; break;
case '"': state = ST_BASE_QUOTE; break;
case 'H': case 'h': state = ST_BASE_H; break;
default: break;
}
break;
case ST_BASE_QUOTE:
switch ( ch )
{
case '"': state = ST_BASE; break;
default: break;
}
break;
case ST_BASE_H:
switch ( ch )
{
case 'R': case 'r': state = ST_BASE_HR; break;
case '"': state = ST_BASE_QUOTE; break;
default: state = ST_BASE; break;
}
break;
case ST_BASE_HR:
switch ( ch )
{
case 'E': case 'e': state = ST_BASE_HRE; break;
case '"': state = ST_BASE_QUOTE; break;
default: state = ST_BASE; break;
}
break;
case ST_BASE_HRE:
switch ( ch )
{
case 'F': case 'f': state = ST_BASE_HREF; break;
case '"': state = ST_BASE_QUOTE; break;
default: state = ST_BASE; break;
}
break;
case ST_BASE_HREF:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '=': state = ST_BASE_HREF_EQUAL; break;
case '"': state = ST_BASE_QUOTE; break;
default: state = ST_BASE; break;
}
break;
case ST_BASE_HREF_EQUAL:
// Start accumulating a URL.
urlBuf.setLength( 0 );
gettingUrl = true;
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '"': state = ST_BASEHREF_Q; break;
default:
// Accumulate the URL.
urlBuf.append( ch );
state = ST_BASEHREF_NQ;
break;
}
break;
case ST_BASEHREF_Q:
switch ( ch )
{
case '"':
// Got a complete URL.
callBASEHREF( urlBuf.toString() );
gettingUrl = false;
// Make it the new context.
try
{
contextUrl = Acme.Utils.plainUrl(
contextUrl, urlBuf.toString() );
}
catch ( MalformedURLException e ) {}
state = ST_BASE;
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_BASEHREF_NQ:
switch ( ch )
{
case '>':
case ' ': case '\t': case '\n': case '\r':
// Got a complete URL.
callBASEHREF( urlBuf.toString() );
gettingUrl = false;
// Make it the new context.
try
{
contextUrl = Acme.Utils.plainUrl(
contextUrl, urlBuf.toString() );
}
catch ( MalformedURLException e ) {}
state = ( ch == '>' ? ST_GROUND : ST_BASE );
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_LT_AR:
switch ( ch )
{
case 'E': case 'e': state = ST_LT_ARE; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_ARE:
switch ( ch )
{
case 'A': case 'a': state = ST_LT_AREA; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_AREA:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r':
state = ST_AREA; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_AREA:
switch ( ch )
{
case '>': state = ST_GROUND; break;
case '"': state = ST_AREA_QUOTE; break;
case 'H': case 'h': state = ST_AREA_H; break;
default: break;
}
break;
case ST_AREA_QUOTE:
switch ( ch )
{
case '"': state = ST_AREA; break;
default: break;
}
break;
case ST_AREA_H:
switch ( ch )
{
case 'R': case 'r': state = ST_AREA_HR; break;
case '"': state = ST_AREA_QUOTE; break;
default: state = ST_AREA; break;
}
break;
case ST_AREA_HR:
switch ( ch )
{
case 'E': case 'e': state = ST_AREA_HRE; break;
case '"': state = ST_AREA_QUOTE; break;
default: state = ST_AREA; break;
}
break;
case ST_AREA_HRE:
switch ( ch )
{
case 'F': case 'f': state = ST_AREA_HREF; break;
case '"': state = ST_AREA_QUOTE; break;
default: state = ST_AREA; break;
}
break;
case ST_AREA_HREF:
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '=': state = ST_AREA_HREF_EQUAL; break;
case '"': state = ST_AREA_QUOTE; break;
default: state = ST_AREA; break;
}
break;
case ST_AREA_HREF_EQUAL:
// Start accumulating a URL.
urlBuf.setLength( 0 );
gettingUrl = true;
switch ( ch )
{
case ' ': case '\t': case '\n': case '\r': break;
case '"': state = ST_AREAHREF_Q; break;
default:
// Accumulate the URL.
urlBuf.append( ch );
state = ST_AREAHREF_NQ;
break;
}
break;
case ST_AREAHREF_Q:
switch ( ch )
{
case '"':
// Got a complete URL.
callAREAHREF( urlBuf.toString() );
gettingUrl = false;
state = ST_AREA;
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_AREAHREF_NQ:
switch ( ch )
{
case '>':
case ' ': case '\t': case '\n': case '\r':
// Got a complete URL.
callAREAHREF( urlBuf.toString() );
gettingUrl = false;
state = ( ch == '>' ? ST_GROUND : ST_AREA );
break;
default:
// Accumulate the URL.
urlBuf.append( ch );
break;
}
break;
case ST_LT_L:
switch ( ch )
{
case 'I': case 'i': state = ST_LT_LI; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_LI:
switch ( ch )
{
case 'N': case 'n': state = ST_LT_LIN; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
break;
case ST_LT_LIN:
switch ( ch )
{
case 'K': case 'k': state = ST_LT_LINK; break;
case '>': state = ST_GROUND; break;
default: state = ST_LTJUNK; break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -