📄 compilerone.cpp
字号:
#include<fstream.h>
#include<iostream.h>
#include"get_code.h"
#include"analy_func.h"
void main()
{
LCode* head;//代码链链首
LCode* pS;//代码链当前节点位置
head=InPutCode();//读取文本放入链表并返回其链首,链表结构见get_code.h
pS=head;
char cCode;//当前读出的字符
char strToken[15];
int iCode;
const int iLength=sizeof(strToken);
/////
InitStr(strToken,iLength);//初始化数组
//////////action////////////
int iTemp=0;
while((pS->cCode)!=NULL)
{
cCode=GetCode(pS);
GetBC(pS,cCode);
if(isLetter(cCode))//是标识符或保留字
{
while(isLetter(cCode) | isDigit(cCode))
{
ConCat(strToken,cCode);
cCode=GetCode(pS);
}
Retract(pS);
iCode=Reserve(strToken);
cout<<"("<<iCode<<","<<"\""<<strToken<<"\""<<")"<<endl;
}
else if(isDigit(cCode))//是常数
{
while(isDigit(cCode))
{
ConCat(strToken,cCode);
cCode=GetCode(pS);
}
Retract(pS);
cout<<"(3"<<","<<"\""<<strToken<<"\""<<")"<<endl;
}
else if(isOperator(cCode))//是运算符
{
ConCat(strToken,cCode);
cCode=GetCode(pS);
if(cCode=='=')
{
ConCat(strToken,'=');
}
else
{
Retract(pS);
}
iCode=Reserve(strToken);
cout<<"("<<iCode<<","<<"\""<<strToken<<"\""<<")"<<endl;
}
else if(isSeparator(cCode))//是分隔符
{
ConCat(strToken,cCode);
iCode=Reserve(strToken);
cout<<"("<<iCode<<","<<"\""<<strToken<<"\""<<")"<<endl;
}
else if(cCode=='"')
{
cout<<"(6,\"\"\")"<<endl;
}
iTemp++;
InitStr(strToken,iLength);//初始化数组
}
////////////////////////////////////////////////////////////////////////////
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -