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

📄 abslexer.hpp

📁 Absolute Database 5.12 src. Absolute Database lets you forget the Borland Database Engine (BDE). Th
💻 HPP
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Abslexer.pas' rev: 10.00

#ifndef AbslexerHPP
#define AbslexerHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Db.hpp>	// Pascal unit
#include <Absvariant.hpp>	// Pascal unit
#include <Absexcept.hpp>	// Pascal unit
#include <Absconst.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Abslexer
{
//-- type declarations -------------------------------------------------------
typedef AnsiString ABSLexer__1[12];

#pragma option push -b-
enum TTokenType { tktNone, tktString, tktQuotedString, tktBracketedString, tktInt, tktFloat, tktReservedWord, tktParameter, tktLeftParenthesis, tktRightParenthesis, tktComma, tktDot };
#pragma option pop

typedef Set<TTokenType, tktNone, tktDot>  TTokenTypes;

struct TToken
{
	
public:
	TTokenType TokenType;
	Absconst::TReservedWord ReservedWord;
	AnsiString Text;
	Absvariant::TABSVariant* ParamValue;
	int LineNum;
	int ColumnNum;
} ;

typedef TToken *PToken;

typedef DynamicArray<TToken >  ABSLexer__2;

struct TSQLCommand
{
	
public:
	DynamicArray<TToken >  Tokens;
	int NumTokens;
	int CurrentTokenNo;
} ;

class DELPHICLASS TABSSQLParam;
class PASCALIMPLEMENTATION TABSSQLParam : public Absvariant::TABSVariant 
{
	typedef Absvariant::TABSVariant inherited;
	
public:
	AnsiString Name;
public:
	#pragma option push -w-inl
	/* TABSVariant.Create */ inline __fastcall TABSSQLParam(Abstypes::TABSBaseFieldType DataType) : Absvariant::TABSVariant(DataType) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TABSVariant.Destroy */ inline __fastcall virtual ~TABSSQLParam(void) { }
	#pragma option pop
	
};


class DELPHICLASS TABSSQLParams;
class PASCALIMPLEMENTATION TABSSQLParams : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	TABSSQLParam* operator[](int Index) { return Items[Index]; }
	
private:
	Classes::TList* FParamList;
	int __fastcall GetCount(void);
	TABSSQLParam* __fastcall GetValue(int Index);
	void __fastcall SetValue(int Index, TABSSQLParam* Value);
	
public:
	__fastcall TABSSQLParams(void);
	__fastcall virtual ~TABSSQLParams(void);
	void __fastcall Clear(void);
	TABSSQLParam* __fastcall AddCreated(void);
	TABSSQLParam* __fastcall GetParamByName(AnsiString Name);
	__property int Count = {read=GetCount, nodefault};
	__property TABSSQLParam* Items[int Index] = {read=GetValue, write=SetValue/*, default*/};
};


typedef DynamicArray<TSQLCommand >  ABSLexer__6;

class DELPHICLASS TABSLexer;
class PASCALIMPLEMENTATION TABSLexer : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	AnsiString FSQL;
	TABSSQLParams* FSQLParams;
	void __fastcall Parse(void);
	
public:
	int NumCommands;
	DynamicArray<TSQLCommand >  Commands;
	int CurrentCommandNo;
	__fastcall TABSLexer(AnsiString SQLScript, TABSSQLParams* SQLParams);
	__fastcall virtual ~TABSLexer(void);
	AnsiString __fastcall Test(bool bGenerate = true, bool bShowDetails = true);
	void __fastcall AddCommand(void);
	void __fastcall AddToken(const TToken &Token);
	bool __fastcall GetNextCommand(void);
	bool __fastcall GetNextToken(TToken &Token);
	bool __fastcall GetCurrentToken(TToken &Token);
	bool __fastcall LookNextToken(TToken &Token);
	int __fastcall GetCurrentTokenNo(void);
	bool __fastcall SetCurrentTokenNo(int TokenNo, TToken &Token)/* overload */;
	bool __fastcall SetCurrentTokenNo(int TokenNo)/* overload */;
	bool __fastcall GetNextSpecifiedToken(TToken &Token, TTokenTypes TokenTypes);
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE AnsiString Lf;
extern PACKAGE AnsiString Cr;
extern PACKAGE AnsiString Crlf;
extern PACKAGE AnsiString Tab;
static const char Comment = '\x2d';
static const char Comment1 = '\x23';
static const char Dot = '\x2e';
static const char Comma = '\x2c';
static const char SemiColon = '\x3b';
static const char Asterisk = '\x2a';
static const char SingleQuote = '\x27';
static const char BackQuote = '\x60';
static const char DoubleQuote = '\x22';
static const char Space = '\x20';
static const char LeftParenthesis = '\x28';
static const char RightParenthesis = '\x29';
static const char LeftSquareBracket = '\x5b';
static const char RightSquareBracket = '\x5d';
static const char Percent = '\x25';
static const char BackSlash = '\x5c';
extern PACKAGE AnsiString EABSTokenType[12];
extern PACKAGE bool __fastcall IsReservedWord(const TToken &Token, Absconst::TReservedWord ReservedWord = (Absconst::TReservedWord)(0x124));
extern PACKAGE int __fastcall FindReservedWord(AnsiString s);

}	/* namespace Abslexer */
using namespace Abslexer;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Abslexer

⌨️ 快捷键说明

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