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

📄 page.h

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


#define LINE_INCREASE(line) if(gpCurrPage!=NULL) gpCurrPage->IncreaseLine(line);
#define COLUMN_INCREASE(column) if(gpCurrPage!=NULL) gpCurrPage->IncreaseColumn(column)
#define COLUMN_RESET() if(gpCurrPage!=NULL) gpCurrPage->ResetColumn()
#define TOKEN_LINE (gpCurrPage!=NULL ? gpCurrPage->GetLine() : 1) 
#define TOKEN_COLUMN (gpCurrPage!=NULL ? gpCurrPage->GetColumn() : 1) 


class CPage;
#include "afxtempl.h"
typedef CList<CPage*, CPage*> CPageList;
#include "TokenReader.h"

//代码页对象
class CPage  
{
public:
    //构造函数
	CPage(LPCTSTR iPathName);
	//析构函数
	virtual ~CPage();

	//取得代码页的完整路径
    LPCTSTR GetPathName() {return mPathName;};

	//加入一个包含的代码页
	void AddIncludePage(CPage* ipIncludePage);
	//取得该代码页所包含的所有代码页的列表
	CPageList* GetIncludeList() {return &mIncludeList;};
	//查询本页是否#include了ipPage
	BOOL IsIncludedPage(CPage* ipPage);

	//行号递增
	void IncreaseLine(int iLine) {mLine+=iLine;};
	//取得行号
	int GetLine() const {return mLine;};
	//列号递增
	void IncreaseColumn(int iColumn) {mColumn+=iColumn;};
	//重置列号
	void ResetColumn() {mColumn=1;};
	//取得列号
	int GetColumn() const {return mColumn;};

	//将注释token保存到当前页,以便在进行标识符解析时
	//获取相应的注释
	void AddComment(CToken* ipComment);
	//添加用于判定注释归属的分界符
	void AddDividing(int iLine);
	//将注释输出到oComment,iLine为标识符所在的行
	void GetComment(CString& oComment, int iLine, int iEndLine=-1);
    
private:
	//完整的路径
	CString    mPathName;
	//直接及间接include的其他代码页的列表
	CPageList  mIncludeList;
	//当读取token时,记录行号列号
	int        mLine;
	int        mColumn;

	//使用以行号为索引的数组可以提高查询效率,但由于一行中可能有多个注释,
	//所以不能使用以行号为索引的数组
	CTokenList mCommentList;

    UNIT_TEST(CPage)
};

DECLARE_TEST_DUMP(CPage)

#endif

⌨️ 快捷键说明

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