// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

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

#ifndef DbparsersHPP
#define DbparsersHPP

#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 <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Db.hpp>	// Pascal unit
#include <Dbcommon.hpp>	// Pascal unit
#include <Dbconsts.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit
#include <Fmtbcd.hpp>	// Pascal unit

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

namespace Dbparsers
{
//-- type declarations -------------------------------------------------------
typedef System::TDateTime __fastcall (*TStrToDateFmt)(const AnsiString ADate, const AnsiString Fmt);

typedef bool __fastcall (*TMatchesMask)(const AnsiString S1, const AnsiString Mask);

class DELPHICLASS TExpressionParser;
class PASCALIMPLEMENTATION TExpressionParser : public Dbcommon::TExprParser 
{
	typedef Dbcommon::TExprParser inherited;
	
private:
	AnsiString FExpressionText;
	Db::TDataSet* FDataSet;
	TStrToDateFmt FStrToDateFmt;
	TMatchesMask FMatchesMask;
	Classes::TStringList* FFilteredFields;
	Db::TField* __fastcall FieldByName(const AnsiString FieldName);
	bool __fastcall VarResult(void);
	
public:
	__fastcall TExpressionParser(Db::TDataSet* DataSet, const AnsiString Text, Db::TFilterOptions Options, Dbcommon::TParserOptions ParserOptions, const AnsiString FieldName, Classes::TBits* DepFields, Byte * FieldMap, TStrToDateFmt aStrToDateFmt, TMatchesMask aMatchesMask);
	__fastcall virtual ~TExpressionParser(void);
	void __fastcall ResetFields(void);
	bool __fastcall BooleanResult(void);
	__property TStrToDateFmt StrToDateFmt = {read=FStrToDateFmt, write=FStrToDateFmt};
	__property TMatchesMask MatchesMask = {read=FMatchesMask, write=FMatchesMask};
	__property AnsiString ExpressionText = {read=FExpressionText};
};


//-- var, const, procedure ---------------------------------------------------

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

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