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

📄 type.h

📁 这是一个能够自动生成文档的程序
💻 H
字号:
#ifndef __CLASS_H__
#define __CLASS_H__
#pragma once

#include "Identifier.h"
#include "CPTypeDef.h"
#include "Variable.h"
#include "ExFunction.h"
#include "Enum.h"

class CType;
typedef CList<CType*, CType*> CTypeList;

struct REWRITEFUNCTION
{
	CString         name;
	CExFunctionList list;
};
typedef CList<REWRITEFUNCTION*, REWRITEFUNCTION*> CRewriteFunctionList;


#define TYPE_CLASS      0x0001    //普通类
#define TYPE_INTERFACE  0x0002    //接口
#define TYPE_STRUCT     0x0003    //结构
#define TYPE_UNION      0x0004    //联合

//类型对象,包括:
//普通类,由关键字class定义
//接口,由关键字interface定义
//结构,由关键字struct定义
//联合,由关键字union定义
class CType : public CIdentifier  
{
public:
	//构造函数
	CType(CPage* ipPage=NULL, int iLine=1, int iColumn=1);
	//析构函数
	virtual ~CType();

	//解析一个类型的代码
    static CType* ParseType(CTokenList& ioList, POSITION& ioPos, UINT iType, UINT iAccess=TRIM_PRIVATE);


    //解析类声明代码
	BOOL ParseDeclare(CTokenList& ioList, POSITION& ioPos);
	//解析类体代码
	void ParseBody(CTokenList& ioList, POSITION& ioPos);
	//解析枚举代码
	static CEnum* ParseEnum(CTokenList& ioList, POSITION& ioPos);
    //解析类别名
	static void ParseTypedef(CTokenList& ioList, POSITION& ioPos);
	//解析类成员
	void ParseMember(CTokenList& ioList, POSITION& ioPos);
	//设置访问标识符
	void SetAccessTrim(UINT iAccess){mAccessTrim=iAccess;};
    //输出信息到代码文档
	void OutputSymbols(LPCTSTR iDocDir);

public:
	//设置类型的类别(类,接口,结构或联合)
	void SetType(BOOL iType) {mType=iType;};
	//判断是否类或接口
	BOOL IsClassOrInterface() const 
	{return (mType==TYPE_CLASS || mType==TYPE_INTERFACE);};
	//判断是否结构或联合
	BOOL IsStructOrUnion() const
	{return (mType==TYPE_STRUCT || mType==TYPE_UNION);};

private:
    CStringPtrList       mBaseClassList;
	UINT                 mAccessTrim;     //访问修饰

	CVariableList        mVariableList;   //成员变量列表
	CExFunctionList      mFunctionList;   //成员函数列表

	UINT                 mType;           //指普通类/结构/联合/接口

	UNIT_TEST(CType)
};

DECLARE_TEST_DUMP(CType)

#endif

⌨️ 快捷键说明

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