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

📄 lexanalyzer.h

📁 用CJ60Lib界面库制作的SQL数据库客户与服务器程序。
💻 H
字号:
#if !defined(AFX_LEXANALYZER_H__AB6A94C5_5F1E_402E_B185_BECAEE10706F__INCLUDED_)
#define AFX_LEXANALYZER_H__AB6A94C5_5F1E_402E_B185_BECAEE10706F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// LexAnalyzer.h : header file
//

#include "Tokenizer.h"
#include "miniSQL.h"
#include <afxtempl.h>

#define MAX_KW 100

enum SQLKey
{
    SEMICOLON, SEPARATOR, MUL, EQU, DOT,
	LESS, GREATER, LEFT_PAR, RIGHT_PAR, ADD, SUB,
	BETWEEN, AND, EXIT,
	CREATE, DROP, INSERT, _DELETE, UPDATE, SELECT,
    _TABLE, INDEX, ON, INTO, FROM, SET, WHERE, VALUES,
    UNIQUE, NUL,
    _INT, _LONG, _FLOAT, _STRING, _DATE,
    User, Digit, String, NewLine, EndOfFile
};

struct Lex
{
	Lex( SQLKey k = SEMICOLON, const CString s = _T("") ) :
		key( k ), str( s ) {}

	SQLKey	key;
	CString	str;
};

class CLexAnalyzer : public CTokenizer
{
public:
	CLexAnalyzer( CString& str );
	virtual ~CLexAnalyzer();

	void	MapKeyword(void);
	void	PushBack();
	Lex		NextToken();

private:
	BOOL	m_bPushedBack;
	Lex		m_Lex;
	CMap<CString, LPCSTR, SQLKey, SQLKey> m_KeyIndex;
};

#endif // !defined(AFX_LEXANALYZER_H__AB6A94C5_5F1E_402E_B185_BECAEE10706F__INCLUDED_)

⌨️ 快捷键说明

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