📄 chifa.txt
字号:
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
void main()
{
char *keywords[]={"begin","call","const","do","end","if","odd","procedure","read","then","var","while","write"};
char *wsym[ ]={"beginsym" ,"callsym","constsym","dosym","endsym","ifsym","oddsym","proceduresym","readsym","thensym","varsym","whilesym" ,"writesym"};
char *sym;
int flag;
int num;
int cc;
int k,i,j;
char ch;
char words[50];
char id[50];
cout<<"请输入一段程序:"<<endl;
ch = getchar ();
while (ch !='#')
{
if( ch<='z' && ch >='a' || ch<='Z' && ch>='A' )
{
k=0;
do
{
if( k<49 )
{
words[k] = ch ;
k++ ;
}
ch = getchar ();
}while( ch<='z' && ch >='a' || ch<='Z' && ch>='A'|| ch<='9' && ch>='0' ) ;
words[k] = '\0' ;
strcpy( id, words ) ;
i = 0;
flag = 13;
j = flag -1;
do
{
k=(i+j)/2 ;
cc=strcmp(id, keywords[k]);
if( cc<0 )
{
j=k-1 ;
}
else if( cc>0 )
{
i=k+1 ;
}
else break ;
}while( i<=j) ;
if( i<=j )
{
sym=wsym[k] ;
cout<<"("<<id<<","<<sym<<")"<<endl;
}
else
{
sym="ident" ;
cout<<"("<<sym<<","<<id<<")"<<endl;
}
}
else if( ch<='9' && ch>='0' )
{
num=0;
sym="number";
do{
num=10 * num + ch - '0' ;
ch = getchar ();
}while( ch<='9' && ch>='0' ) ;
cout<<"("<<"number"<<","<<num<<")"<<endl;
}
else if (ch ==' ')
{
ch = getchar();
}
else if (ch =='+')
{ sym = "plus";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if (ch =='-')
{ sym = "minus";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if (ch =='*')
{ sym = "times";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if (ch =='-')
{ sym = "slash";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if (ch =='=')
{ sym = "equal";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch==',')
{
sym="douhao";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch==';')
{
sym="fenhao";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch=='(')
{
sym="lparen";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch=='}')
{
sym="rparen";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch=='{')
{
sym="ldakuohao";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
else if(ch=='}')
{
sym="rdakuohao";
cout<<"("<<sym<<","<<" "<<")"<<endl;
ch = getchar ();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -