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

📄 commandline.h

📁 内含源代码和编译实验报告
💻 H
字号:
#ifndef		COMMANDLINE_H_
#define		COMMANDLINE_H_

/*******************************************************************
**  宏定义,完成命令行参数中文件扩展名的处理
*******************************************************************/
#define ABOUTFILENAME(EXAPN, NUM)\
		while(*pchargv!=NULL){	\
			pchargv++;	\
			if(*pchargv=='.') break; \
		}	\
		if(*pchargv!=NULL){	\
			if(strcmp(pchargv,EXAPN)) throw CbadCommand("Invalid Filename");}\
		else strcat(m_argv[NUM], EXAPN);						//处理文件扩展名。

/***************************************************************
**宏定义,完成向链表尾添加一对参数与相应的处理函数
**************************************************************/
#define ADD_PARAMETER(Parameter, Function) \
		m_pMobileClass=new CCommandClass(Parameter, Function,NULL);\
			if(!m_pMobileClass) throw bad_alloc();\
				m_pMobileClass->m_pNextClass=m_pFirstClass;\
					m_pFirstClass=m_pMobileClass;


/*****************************************************************
** 类名:    CCommandClass
** 功能描述:  该类将成为一张链表的一个结点,每个结点记录一个命令行
**       参数及其相对应的处理函数,以备处理命令时,调用相应
**              函数使用。该类只被类CCommandOpt使用。
** 重要的类成员:char m_chParameter:        单字符的命令行参数。
**               void (*m_fnpParameter)():   处理函数的指针。
**               CCommandClass *m_pNextClass:指向下一个结点的指针。        
****************************************************************/
class CCommandClass{
public:
	char	m_chParameter;
	void (*m_fnpParameter)(CCompileOption& pa_ComOption);
	CCommandClass	*m_pNextClass;
	CCommandClass(char pa_chParameter, 
		void (*pa_fnpParameter)(CCompileOption& pa_ComOption), CCommandClass *pa_pNextClass);
};

/*****************************************************************
** 类名:	 CCommandOpt
** 功能描述: 该类完成所有的命令行处理功能。针对用户输入的命令行参数,
**            在CCommandClass链表中查找到相应的处理函数,进行命令行处理。
** 作  者:	 何林强
** 日  期:  2002年5月24日。
** 修  改:
** 日  期:
****************************************************************/
class CCommandOpt{
private:
	static int		m_argc;
	static char		**m_argv;
	string			m_strComline;
    CCommandClass	*m_pFirstClass;                   //CCommandClass链表的头指针。
	CCommandClass	*m_pMobileClass;                  //链表处理的一个辅助指针
private:
	void Lookup_Func(CCompileOption& pa_ComOption,char pa_chParameter);
	void OnParameter() throw(bad_alloc);    		//构建命令行参数处理链表的函数。
	static void OnVersion(CCompileOption& pa_ComOption);//以下六个为相应参数的处理函数。
	static void OnHelp(CCompileOption& pa_ComOption);
	static void OnlyScan(CCompileOption& pa_ComOption);
	static void OnlyParse(CCompileOption& pa_ComOption);
	static void OnlyAnalyze(CCompileOption& pa_ComOption);
	static void OnlyCode(CCompileOption& pa_ComOption);
	static void OpenSourceFile(string filname);
	static void OpenCodeFile(string filname);
public:
	CCommandOpt(int argc,char *argv[],CCompileOption& pa_ComOption);
	~CCommandOpt();
};

#endif

⌨️ 快捷键说明

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