mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.4 KiB
80 lines
1.4 KiB
#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
|
|
);
|
|
|
|
|
|
|