⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ca.cpp

📁 该词法分析程序用VC++ 6.0编写
💻 CPP
字号:
// CA.cpp : implementation file
//

#include "stdafx.h"
#include "CFFX.h"
#include "CA.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "CFFXDlg.h"
/////////////////////////////////////////////////////////////////////////////
// CCA


CCA::CCA()
{
	    char * tempkey[]={"asm","auto","bool","break","case","catch","char","class"
		,"const","continue","default","delete","do","double","else","enum","extern"
		,"false","float","for","friend","goto","if","inline","include","int","long","namespace"
		,"new","operator","private","protected","public","register","return","short"
		,"signed","sizeof","static","struct","switch","template","this","throw","true"
		,"try","typedef","typename","union","unsigned","using","virtual","void","volatile","while"};
        for(int i=0;i<55;i++)
		{
			key[i]=tempkey[i];
		}
		char *tempborder[]={"#",",",";","(",")","{","}","/*","*/","//","'"};
		for(i=0;i<11;i++)
		{
			border[i]=tempborder[i];
		}
		char *temparithmetic[]={"+","-","*","/","%","->","::","++","--","+=","-=","*=","/=","[]"};
		for(i=0;i<14;i++)
		{
            arithmetic[i]=temparithmetic[i];
		}
        char *temprelation[]={"<","<=","=",">",">=","!=","&&","||","."};
		for(i=0;i<9;i++)
		{
            relation[i]=temprelation[i];
		}
		for (i=0;i<200;i++)
		{
			label[i]=NULL;
			consts[i]=NULL;
		}
        constnum=0;
		labelnum=0;
		strFileName="";
		file_in=NULL;
		file_out=NULL;
}

//CCA::~CCA()
//{
//}

/////////////////////////////////////////////////////////////////////////////
// CCA message handlers

void CCA::FENXI()
{
	CCFFXDlg *pDlg=(CCFFXDlg *)AfxGetApp()->m_pMainWnd;
	if(strFileName=="")
		return;
	file_in=fopen(strFileName,"r");
	file_out=fopen("output.txt","w");
	if(file_in==NULL)
	{
		MessageBox(NULL,"文件打开失败!","错误",MB_OK|MB_ICONSTOP);
		return;
	}
	char cbuffer;
	cbuffer=fgetc(file_in);
	while(cbuffer!=EOF)
	{
		if (isalpha(cbuffer))
		{
					cbuffer=alphaprocess(cbuffer);
		}
		else if(isdigit(cbuffer))
		{
			cbuffer=digitprocess(cbuffer);
		}
		else
		{
			cbuffer=otherprocess(cbuffer);
		}

	}
	fclose(file_out);
	fclose(file_in);
	pDlg->giveresult();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -