📄 javascanner.cpp
字号:
break;
}
else if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
case 2:if (ch=='E'||ch=='e')
{
putcstrbuf(ch);
state=1;
break;
}
else if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=2;
break;
}
else if (ch=='F'||ch=='f')
{
putcstrbuf(ch);
state=8;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
tcol=ccol-1;
backBuf();
state=9;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 3:if (ch>='0'&&ch<='7')
{
putcstrbuf(ch);
state=3;
break;
}
else {
tcol=ccol-1;
backBuf();
state=10;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x107) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 4:if (ch>='0'&&ch<='9'||ch>='a'&&ch<='f'||ch>='A'&&ch<='F')
{
putcstrbuf(ch);
state=11;
break;
}
case 5:if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
else if (ch=='F'||ch=='f')
{
putcstrbuf(ch);
state=8;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
backBuf();
state=9;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 6:if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
case 11:if (ch>='0'&&ch<='9'||ch>='a'&&ch<='f'||ch>='A'&&ch<='F')
{
putcstrbuf(ch);
state=11;
break;
}
else{
backBuf();
state=10;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x107) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
default:backBuf();
state=12;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x100) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
if (state>=7&&state!=11)
{
break;
}
}
}
else if (ch>='1'&&ch<='9')
{
hcol=ccol;
putcstrbuf(ch);
state=0;
while (true)
{
ch=nextChar();
switch(state)
{
case 0:if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=0;
break;
}
else if (ch=='l'||ch=='L')
{
putcstrbuf(ch);
state=3;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x107) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='E'||ch=='e')
{
putcstrbuf(ch);
state=1;
break;
}
else if (ch=='.')
{
putcstrbuf(ch);
state=2;
break;
}
else {
tcol=ccol-1;
backBuf();
state=4;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x107) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 1:if (ch=='+'||ch=='-')
{
putcstrbuf(ch);
state=6;
break;
}
else if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
case 2:if (ch=='E'||ch=='e')
{
putcstrbuf(ch);
state=1;
break;
}
else if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=2;
break;
}
else if (ch=='F'||ch=='f')
{
putcstrbuf(ch);
state=8;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
tcol=ccol-1;
backBuf();
state=9;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 5:if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
else if (ch=='F'||ch=='f')
{
putcstrbuf(ch);
state=8;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
backBuf();
state=9;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x108) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 6:if (ch>='0'&&ch<='9')
{
putcstrbuf(ch);
state=5;
break;
}
default:backBuf();
state=7;
tcol=ccol;
putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x100) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
if (state==3||state==4||state==7||state==8||state==9)
{
break;
}
}
}
else {
hcol=ccol;
putcstrbuf(ch);
switch(ch)
{
case '+':state=1;break;
case '-':state=5;break;
case '*':state=9;break;
case '%':state=12;break;
case '&':state=15;break;
case '^':state=37;break;
case '>':state=19;break;
case '~':state=28;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11c) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
case '?':
case ':':state=29;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x111) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
case '=':state=30;break;
case '|':state=33;break;
case '!':state=40;break;
case '<':state=43;break;
}
while (state)
{
ch=nextChar();
switch(state)
{
case 1:if (ch=='=')
{
putcstrbuf(ch);state=3;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='+')
{
putcstrbuf(ch);state=4;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11c) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=2;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11a) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 5:if (ch=='=')
{
putcstrbuf(ch);state=7;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='-')
{
putcstrbuf(ch);state=8;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11c) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=6;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11a) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 9:if (ch=='=')
{
putcstrbuf(ch);state=11;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=10;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 12:if (ch=='=')
{
putcstrbuf(ch);state=14;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=13;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11b) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 15:if (ch=='=')
{
putcstrbuf(ch);state=16;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='&')
{
putcstrbuf(ch);state=17;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x113) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=18;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x116) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 37:if (ch=='=')
{
putcstrbuf(ch);state=39;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=38;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x115) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 19:if (ch=='=')
{
putcstrbuf(ch);state=21;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x118) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='>')
{
putcstrbuf(ch);
state=22;
break;
}
else{
state=20;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x118) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 22:if (ch=='=')
{
putcstrbuf(ch);state=24;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='>')
{
putcstrbuf(ch);
state=25;
break;
}
else{
state=23;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x119) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 25:if (ch=='=')
{
putcstrbuf(ch);state=27;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=26;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x119) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 30:if (ch=='=')
{
putcstrbuf(ch);state=31;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x117) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=32;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 33:if (ch=='=')
{
putcstrbuf(ch);state=34;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='|')
{
putcstrbuf(ch);state=35;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x112) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=36;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x114) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 40:if (ch=='=')
{
putcstrbuf(ch);state=42;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x117) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=41;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x11c) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 43:if (ch=='=')
{
putcstrbuf(ch);state=45;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x118) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else if (ch=='<')
{
putcstrbuf(ch);
state=46;
break;
}
else{
state=44;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x118) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
case 46:if (ch=='=')
{
putcstrbuf(ch);state=48;tcol=ccol;putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x110) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
else{
state=47;tcol=ccol-1;backBuf();putcstrbuf('\0');
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x119) [%s]\n",line,++cnum,hcol,tcol,strbuf);
strbufi=0;
break;
}
default:if (ch=='?'||ch==':')
{
backBuf();
}
}if (state!=0&&state!=1&&state!=5&&state!=9&&state!=12&&state!=15&&state!=37&&state!=19&&state!=22&&state!=25&&state!=33&&state!=30
&&state!=40&&state!=43&&state!=46)
{
break;
}
}
}
if (strbufi!=0)
{
for (i=0;i<50;i++)
{
if(strcmp(itable[i],strbuf)==0)
break;
}
if (i==50)
{
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x104) [%s]\n",line,++cnum,hcol,tcol,strbuf);
}
else
{
fprintf(outstream,"%5d-%3d: (%3d-%3d) (0x103) [%s]\n",line,++cnum,hcol,tcol,strbuf);
}
strbufi=0;
}
}
if(ch=='\0'){
tnum+=cnum;
}
fprintf(outstream,"The total number:%d\n",tnum);
fclose(instream);
fclose(outstream);
scanf("%c",&ch);
scanf("%c",&ch);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -