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