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