资源简介

词法分析器(c++版) 词法分析程序,能识别出所有的关键字、标识符、常数、运算符(包括复合运算符,如++)、界符;能过滤掉源程序中的注释、空格、制表符、换行符等等

资源截图

代码片段和文件信息

#include  
#include  
using namespace std; 

bool jiancha_int(int iint jchar s[100]) 

     if((j-i)==2) 
 { 
        if(s[i]==‘i‘) 
{  
           i++; 
           if(s[i]==‘n‘) 
   { 
              i++; 
              if(s[i]==‘t‘) 
  { 
                 cout<<“int是一个关键字“<                 return true; 
  } 
              else 
  return false; 
   } 
           else
   return false; 

        else
return false; 
 } 
     else
 return false; 


bool jiancha_if(int iint jchar s[100]) 

   if((j-i)==1) 
   { 
      if(s[i]==‘i‘) 
  { 
         i++; 
         if(s[i]==‘f‘) 
 { 
cout<<“if是一个关键字“< return true; 
 } 
 else
 return false; 
  } 
      else
  return false; 
   } 
   else
   return false; 


bool jiancha_else(int iint jchar s[100]) 

if((j-i)==3) 

if(s[i]==‘e‘) 

i++; 
if(s[i]==‘l‘) 

i++; 
if(s[i]==‘s‘) 

i++; 
if(s[i]==‘e‘) 

cout<<“else是一个关键字“<return true; 

else return false; 

else return false; 

else return false; 

else return false; 

else return false; 


bool jiancha_void(int iint jchar s[100]) 

if((j-i)==3) 

if(s[i]==‘v‘) 

i++; 
if(s[i]==‘o‘) 

i++; 
if(s[i]==‘i‘) 

i++; 
if(s[i]==‘d‘) 

cout<<“void是一个关键字“<return true; 

else return false; 

else return false; 

else return false; 

else return false; 

else return false; 


bool jiancha_while(int iint jchar s[100]) 

if((j-i)==4) 

if(s[i]==‘w‘) 

i++; 
if(s[i]==‘h‘) 

i++; 
if(s[i]==‘i‘) 

i++; 
if(s[i]==‘l‘) 

i++; 
if(s[i]==‘e‘) 

cout<<“while是一个关键字“<return true; 

else return false; 

else return false; 

else return false; 

else return false; 

else return false; 

else return false; 


char numb[10]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘}; 
char letter[53]={‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘‘_‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘}; 
char digit[63]={‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘‘_‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘}; 
bool Identifier(int xint ychar s[100]) 

int ia=xb=yn=0m=1c=0a1=xb1=ym1=0n1=1;; 
int p[1024]; 
for(i=0;i<1024;i++) 
p[i]=0; 
for(i=0;i<53;i++) 

if(s[x]==letter[i]) 
{n=1;} 

if(n==1) 
{} 
else 

int P[1024]; 
for(i=0;i<1024;i++) 

P[i]=0; 

while(x
for(i=0;i<10;i++) 

if(s[x]==numb[i]) 

P[m1]=1; 


x++; 
m1++; 


for(i=0;i
if(P[i]==0) 
{n1=0;} 

if(n1==1) 

for(i=a;i<=b;i++) 
cout<cou

评论

共有 条评论