📄 commandline.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 + -