if(ch=='=') { re.kind=JAE; re.value=0; return re; } else { fpoint--;
file.seekg(fpoint,ios::beg); re.kind=JA; re.value=0; return re; } break; case'<': file.get(ch); fpoint++; if(ch=='=') { re.kind=JBE; re.value=0; return re; } else { fpoint--; file.seekg(fpoint,ios::beg); re.kind=JB; re.value=0; return re; } break; case'(': re.kind=SLP; re.value=0; return re; break; case')': re.kind=SRP; re.value=0; return re; break; case'{': re.kind=LP; re.value=0;
//后退 //后退
return re; break; case'}': re.kind=RP; re.value=0; return re; break; case';': re.kind=SEMI; re.value=0; return re; break;
///////////////////////不是该语言所能识别的单词////////////////////////////
default: cout<<\ //报错 }//end switch }
////////////////////////////主程序//////////////////////////////////////// void main() { char ch; word reword; //接收词法分析程序返回的单词 fpoint=0; //记录当前字符的位置,用于回退 num_token=0; //记录一个单词中的字符数量
token=new char[30]; file.open(\
//存放每个单词
cout<<\词法程序分析结果:\ while(1) { file.get(ch); fpoint++; if(file.eof()!=0) break; reword=scan(ch); if(reword.kind!=0){ switch(reword.kind) { case 1: cout<<\ \ case 2: cout<<\ \ case 3: cout<<\ \ case 4: cout<<\ \ case 5: cout<<\ \ case 6: cout<<\ \ case 7: cout<<\ \ case 8: cout<<\ \ case 9: cout<<\ \ case 10: cout<<\ \
case 11: cout<<\ \ case 12: cout<<\ \ case 13: cout<<\ \ case 14: cout<<\ \ case 15: cout<<\ \ case 16: cout<<\ \ case 17: cout<<\ \ case 18: cout<<\ \ case 19: cout<<\ \ case 20: cout<<\ \ case 21: cout<<\ \ case 22: cout<<\ \ case 23: cout<<\ \ case 24: cout<<\ \ case 25: cout<<\ \ case 26: cout<<\ \
default: cout<<\非法标识\}
if(reword.kind!=6) if(reword.kind==13||reword.kind==12||reword.kind==11)
cout< else cout<<\ //输出无属性 else{ do{ cout<<*token; token++; }while(*token!='\\0'); //输出标示符 cout<<\ } } } file.close(); system(\}