PARSE.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

Parse.h

Abstract:

Author:

Environment:

User mode

Revision History :

--*/
#ifndef _PARSE_H_
#define _PARSE_H_

#define MAX_TOKEN_LENGTH 80
#define MAX_KEYWORDS 14

typedef struct _kwdlist {
DWORD dwTokenId;
LPWSTR Keyword;
} KWDLIST, *PKWDLIST;

class FAR CLexer
{
public:
CLexer(LPWSTR szBuffer);
~CLexer();

BOOL
CLexer::IsKeyword(LPWSTR szToken, LPDWORD pdwToken);

WCHAR
CLexer::NextChar();

void
CLexer::PushbackChar();

HRESULT
CLexer::GetNextToken(LPWSTR szToken, LPDWORD pdwToken);

HRESULT
CLexer::PushBackToken();

private:

LPWSTR _ptr;
LPWSTR _Buffer;
DWORD _dwLastTokenLength;
DWORD _dwLastToken;
DWORD _dwEndofString;

};

HRESULT
ADsObject(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
SampleDSObject(CLexer * pTokenizer, POBJECTINFO pObjectInfo);


HRESULT
DsPathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);


HRESULT
PathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
Component(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
Type(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
ProviderName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
AddRootRDN(POBJECTINFO pObjectInfo, LPWSTR szToken);

HRESULT
SetType(POBJECTINFO pObjectInfo, DWORD dwToken);

HRESULT
SchemaPathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

HRESULT
SchemaComponent(CLexer * pTokenizer, POBJECTINFO pObjectInfo);

#endif