📄 cifafen.cpp
字号:
// demo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "conio.h"
#include "string.h"
//===========================数据区=======================
//关键字表:
char *KeyWordTable[]={"const","var","procedure","begin","end","odd","if","then","call","while","do","read","write"};
int KeyWordTableLength=13;
//算符表:
char OneArithmeticSymbolTable[]={'+','-','*','/','#'};
char twoArithmeticSymbolTable[]={':','<','>'};
int ArithmeticSymbolTableLength;
//界符表:
char BoundSymbolTable[]={'(',')',',',';',};
int BoundSymbolTableLength;
//分隔符表:
char SpaceSymbolTable[]={' ','\t','\n'};
int SpaceSymbolTableLength;
FILE *stream;
char ch,WordBuffer[32];
int Code;
//==================================函数============================
void Initialization();//初始化
void Finalization();//结束
bool IsDigital(char);//是否数字字母
bool IsLetter(char);//是否字母,注意大小写
int IsWhatSymbol(char);//是何符号
int IsArithmeticSymbol(char);//是算符
int IsBoundSymbol(char);//是界符
int IsSpaceSymbol(char);//是分隔符
int SearchSymbolTable(char,int SymbolTableLen,char *);//搜索算符等符号表
bool MorphologyAnalyze(char* FileName);//词法分析
int IdentifyConst();//识别常量
int IdentifyID();//识别表示符
int main(int argc, char* argv[])
{
Initialization();
MorphologyAnalyze("D:\\...")
Finalization();
return(0);
}
bool MorphologyAnalyze(char* FileName)
{
if((stream = fopen(FileName,"r" )) == NULL )
{printf( "不能打开文件或文件不存在\n" );
return(false);
}
while( !feof(stream))
{
ch=(char)fgetc(stream);
if(IsDigital(ch))
Code=IdentifyConst();
else if(IsLetter(ch))
Code=IdentifyID();
else if((Code=IsWhatSymbol(ch))>=0)
else ...;//该符号是非法的,非语言允许的字符
if(Code...)
}
fclose(stream);
return(true);
}
int IsWhatSymbol(char)//是啥符号
{
//调用IsArithmeticSymbol(char)
//调用IsBoundSymbol(char)
//调用IsSpaceSymbol(char)
}
int IsArithmeticSymbol(char)//是算符
{
//调用SearchSymbolTable(int SymbolTableLen,char *)
//处理种别编码(>=1)
}
int IsBoundSymbol(char)//是界符
{
//调用SearchSymbolTable(int SymbolTableLen,char *)
//处理种别编码(>=1)
}
int IsSpaceSymbol(char)//是分隔符
{
//调用SearchSymbolTable(int SymbolTableLen,char *)
//返回0值
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -