Source code of Windows XP (NT5)
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.

83 lines
1.5 KiB

  1. #define MAX_TOKEN_LENGTH 80
  2. #define MAX_KEYWORDS 13
  3. typedef struct _kwdlist {
  4. DWORD dwTokenId;
  5. LPWSTR Keyword;
  6. } KWDLIST, *PKWDLIST;
  7. class FAR CLexer
  8. {
  9. public:
  10. CLexer(LPWSTR szBuffer);
  11. ~CLexer();
  12. BOOL
  13. CLexer::IsKeyword(LPWSTR szToken, LPDWORD pdwToken);
  14. WCHAR
  15. CLexer::NextChar();
  16. void
  17. CLexer::PushbackChar();
  18. HRESULT
  19. CLexer::GetNextToken(LPWSTR szToken, LPDWORD pdwToken);
  20. HRESULT
  21. CLexer::GetNextToken(LPWSTR szToken, LPWSTR szDisplayToken, LPDWORD pdwToken);
  22. HRESULT
  23. CLexer::PushBackToken();
  24. void
  25. CLexer::SetAtDisabler(BOOL bFlag);
  26. BOOL
  27. CLexer::GetAtDisabler();
  28. private:
  29. LPWSTR _ptr;
  30. LPWSTR _Buffer;
  31. DWORD _dwLastTokenLength;
  32. DWORD _dwLastToken;
  33. DWORD _dwEndofString;
  34. BOOL _bAtDisabled;
  35. };
  36. HRESULT
  37. Object(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  38. HRESULT
  39. DsPathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  40. HRESULT
  41. PathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  42. HRESULT
  43. Component(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  44. HRESULT
  45. Type(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  46. HRESULT
  47. ProviderName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  48. HRESULT
  49. AddComponent(POBJECTINFO pObjectInfo, LPWSTR szToken, LPWSTR szDisplayToken);
  50. HRESULT
  51. AddProviderName(POBJECTINFO pObjectInfo, LPWSTR szToken);
  52. HRESULT
  53. SetType(POBJECTINFO pObjectInfo, DWORD dwToken);
  54. HRESULT
  55. GetDisplayName(
  56. LPWSTR szName,
  57. LPWSTR *ppszDisplayName
  58. );