windows-nt/Source/XPSP1/NT/ds/adsi/winnt/parse.hxx
2020-09-26 16:20:57 +08:00

81 lines
1.4 KiB
C++

#define MAX_TOKEN_LENGTH 257 // group names can be upto 256 chars, plus one byte for string terminator
#define MAX_KEYWORDS 16
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::GetNextToken(LPWSTR szToken, LPWSTR szDisplayToken, LPDWORD pdwToken);
HRESULT
CLexer::PushBackToken();
void
CLexer::SetAtDisabler(BOOL bFlag);
BOOL
CLexer::GetAtDisabler();
HRESULT
CLexer::SetBuffer(LPWSTR pszBuffer);
private:
LPWSTR _ptr;
LPWSTR _Buffer;
DWORD _dwLastTokenLength;
DWORD _dwLastToken;
DWORD _dwEndofString;
BOOL _bAtDisabled;
};
HRESULT
Object(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
GetDisplayName(
LPWSTR szName,
LPWSTR *ppszDisplayName
);