📄 macro.h
字号:
#ifndef __MACRO_H__
#define __MACRO_H__
#pragma once
#include "Identifier.h"
#include "CPTypeDef.h"
//宏对象
class CMacro : public CIdentifier
{
public:
//构造函数
CMacro(CPage* ipPage=NULL, int iLine=1, int iColumn=1);
//析构函数
virtual ~CMacro();
public:
//解析宏内容(自宏名后的token开始)
void ParseContent(CTokenList& ioList, POSITION& ioPos);
//解析宏形参(自(后的token开始)
void ParseParam(CTokenList& ioList, POSITION& ioPos);
//解析宏实参(自(后的token开始)
BOOL ParseArg(CTokenList& ioList, POSITION& ioPos, CTokenList& oArgTokenList);
//添加一个形式参数
void AddParam(LPCTSTR iParam);
//添加该宏的定义中的记号对象
void AddToken(CToken* ipToken)
{ASSERT(ipToken!=NULL); mTokenList.AddTail(ipToken);};
//输出宏展开后的结果,保存到oUnwind
//iParam为宏参数
//将宏展开后插后Token List中,删除宏名所在Token, POSITION
//移到指向展开后的第一个Token
void Unwind(CTokenList& ioList, POSITION& ioPos);
//从源代码解析宏定义
static void ParseMacroFormCode(LPCTSTR iSrc);
private:
CStringPtrList mParamList; //形式参数列表
//宏定义TokenList,解析宏时传入token指针,需在析构时删除
CTokenList mTokenList;
UNIT_TEST(CMacro);
};
DECLARE_TEST_DUMP(CMacro)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -