scannerdlg.h

来自「通过设计编制调试一个具体的词法分析程序」· C头文件 代码 · 共 75 行

H
75
字号
// ScannerDlg.h : header file
//
//{{AFX_INCLUDES()
#include "richtext.h"
//}}AFX_INCLUDES

#if !defined(AFX_SCANNERDLG_H__8A20725E_29A6_40CE_9E19_B1100D493402__INCLUDED_)
#define AFX_SCANNERDLG_H__8A20725E_29A6_40CE_9E19_B1100D493402__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CScannerDlg dialog

class CScannerDlg : public CDialog
{
// Construction
public:
	CString GetAllConst();//将常数表转化为字符串
	CString GetAllId();//将标识符表转化为字符串
	CStringArray ConstList;//常数表
	CStringArray IdList;//标识符表
	CString StrToken;//单词符号
	CString StrOut;//词法分析结果
	CString NewStr;//预处理源程序
	CString StrIn;//初始源程序
	CScannerDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CScannerDlg)
	enum { IDD = IDD_SCANNER_DIALOG };
	CRichText	m_nInput;//输入文本控件
	CRichText	m_nOutput;//输出文本控件
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CScannerDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
	// Generated message map functions
	//{{AFX_MSG(CScannerDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnInOpen();//文件输入
	afx_msg void OnInSave();//输入保存
	afx_msg void OnOutSave();//输出保存
	afx_msg void OnPredo();//预处理按钮事件
	afx_msg void OnScan();//词法分析按钮事件
	afx_msg void OnListView();//列表显示按钮事件
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
private:
	void InsertConst(CString str);//将常数插入常数表
	void InsertId(CString str);//将标识符插入标识符表
	void Scan();//词法分析
	void PreProcess();//预处理
	CString Reserve(CString strToken);//关键字的判断
	BOOL IsSpace(char ch);//判断字符是否为空白符
	BOOL IsLetter(char ch);//判断字符是否为字母
	BOOL IsDigit(char ch);//判断字符是否为数字
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SCANNERDLG_H__8A20725E_29A6_40CE_9E19_B1100D493402__INCLUDED_)

⌨️ 快捷键说明

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