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