📄 accidanalyse.h
字号:
Temp[i++]='>';
IBufIndex++;
break;
}
else break;
case '+':
Temp[i++]='+';
if(CBuffer[IBufIndex+1]=='+')
{
Temp[i++]='+';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '<':
Temp[i++]='<';
if(CBuffer[IBufIndex+1]=='<'&&CBuffer[IBufIndex+2]!='=')
{
Temp[i++]='<';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='<'&&CBuffer[IBufIndex+2]=='=')
{
Temp[i++]='<';
Temp[i++]='=';
IBufIndex+=2;
break;
}
else break;
case '>':
Temp[i++]='>';
if(CBuffer[IBufIndex+1]=='>'&&CBuffer[IBufIndex+2]!='=')
{
Temp[i++]='>';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='>'&&CBuffer[IBufIndex+2]=='=')
{
Temp[i++]='>';
Temp[i++]='=';
IBufIndex+=2;
break;
}
else break;
case '=':
Temp[i++]='=';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '&':
Temp[i++]='&';
if(CBuffer[IBufIndex+1]=='&')
{
Temp[i++]='&';
IBufIndex++;
break;
}
else if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '|':
Temp[i++]='|';
if(CBuffer[IBufIndex+1]=='|')
{
Temp[i++]='|';
IBufIndex++;
break;
}
else break;
case '!':
Temp[i++]='!';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '^':
Temp[i++]='^';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '*':
Temp[i++]='*';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '/':
Temp[i++]='/';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case '%':
Temp[i++]='%';
if(CBuffer[IBufIndex+1]=='=')
{
Temp[i++]='=';
IBufIndex++;
break;
}
else break;
case ',':
Temp[i++]=',';
break;
case '.':
Temp[i++]='.';
break;
case '?':
Temp[i++]='?';
break;
case ':':
Temp[i++]=':';
break;
case '~':
Temp[i++]='~';
break;
}
Temp[i]='\0';
for(i=0;i<=42;i++)
{
if(strcmp(Operator[i].ID,Temp)==0)
{
printf("所分析的运算符是:%s 属性值是:%s\n",Operator[i].ID,Operator[i].CToken_Type);
WriteDisk(Operator,i);
}
}
IBufIndex++;
}
//***********函数名:DivCharRecoginse()****************//
//***********功 能:识别分界符并写盘******************//
//************被调用:main() **************************//
void DivCharRecoginse()
{
if(CBuffer[IBufIndex]=='{')
printf("所分析的是分界符:%c\n",CBuffer[IBufIndex]);
if (CBuffer[IBufIndex]=='}')
printf("所分析的是分界符:%c\n",CBuffer[IBufIndex]);
if (CBuffer[IBufIndex]==';')
printf("所分析的是分界符:%c\n",CBuffer[IBufIndex]);
if((fp2=fopen("Test1.txt","a"))==NULL) //打开续写的文件
printf("cannot open file\n");
else
{
fputc(CBuffer[IBufIndex],fp2);
fputc('\n',fp2);
fclose(fp2);
}
IBufIndex++;
}
//***********函数名:ConStrRecoginse()****************//
//***********功 能:识别字符串常量*******************//
//************被调用:main() ****************//
//*************调用: WriteDisk(); ****************//
void ConStrRecoginse()
{
int i=0;
if(CBuffer[IBufIndex]=='"')
{
strcpy(ConstStr[ConStrIndex].CToken_Type,"204"); //字符串变量的编号是204
IBufIndex++;
while(CBuffer[IBufIndex]!='"')
{
ConstStr[ConStrIndex].ID[i]=CBuffer[IBufIndex++];
i++;
}
ConstStr[ConStrIndex].ID[i]='\0';
printf("所分析的字符串常量是:%s 类型值是:%s\n",ConstStr[ConStrIndex].ID,ConstStr[ConStrIndex++].CToken_Type);
}
IBufIndex++;
}
//***********函数名:Con_Trans_CharRecoginse()****************//
//***********功 能:识别字符常量和转义类字符*****************//
//************被调用:main() ***********************//
//*************调用: WriteDisk(); ***********************//
void Con_Trans_CharRecoginse()
{
int i=0;
int flag=-1;
strcpy(ConstChar[ConCharIndex].CToken_Type,"205"); //字符串变量的编号是204
IBufIndex++; //跳过单引号
char Temp[4];
while(CBuffer[IBufIndex]!='\'')
{
if(CBuffer[IBufIndex+1]=='\''&&CBuffer[IBufIndex+2]=='\'')
{
Temp[i]=CBuffer[IBufIndex++];
i++;
}
Temp[i]=CBuffer[IBufIndex++];
i++;
}
Temp[i]='\0';
for(i=0;i<7;i++)
{
//printf("所分析的转义类字符是:%s\n",TransChar[i].ID);
if(strcmp(Temp,TransChar[i].ID)==0)
flag=i;
}
if(flag>=0)
{
WriteDisk(TransChar,flag);
printf("所分析的转义类字符是:%s 类型值是:%s\n",TransChar[flag].ID,TransChar[flag].CToken_Type);
}
else if(flag<0)
{
strcpy(ConstChar[ConCharIndex].ID,Temp);
WriteDisk(ConstChar,ConCharIndex);
printf("所分析的字符常量是:%s 类型值是:%s\n",ConstChar[ConCharIndex].ID,ConstChar[ConCharIndex++].CToken_Type);
}
IBufIndex++; //跳过单引号
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -