Leaked source code of windows server 2003
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.

162 lines
4.1 KiB

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Filename : Formats.h
  4. // Purpose : Global dictionaries
  5. //
  6. // Project : WordBreakers
  7. // Component: English word breaker
  8. //
  9. // Author : yairh
  10. //
  11. // Log:
  12. //
  13. // May 30 2000 yairh creation
  14. //
  15. ////////////////////////////////////////////////////////////////////////////////
  16. #ifndef _FORMATS_H_
  17. #define _FORMATS_H_
  18. #include "trie.h"
  19. #include "wbutils.h"
  20. ///////////////////////////////////////////////////////////////////////////////
  21. // Class CCliticsTerm
  22. ///////////////////////////////////////////////////////////////////////////////
  23. #define NON_MATCH_TRUNCATE 0
  24. #define HEAD_MATCH_TRUNCATE 1
  25. #define TAIL_MATCH_TRUNCATE 2
  26. struct CCliticsTerm
  27. {
  28. WCHAR* pwcs;
  29. ULONG ulLen;
  30. ULONG ulOp;
  31. };
  32. ///////////////////////////////////////////////////////////////////////////////
  33. // Class CClitics
  34. ///////////////////////////////////////////////////////////////////////////////
  35. class CClitics
  36. {
  37. public:
  38. CClitics();
  39. CTrie<CCliticsTerm, CWbToUpper> m_trieClitics;
  40. };
  41. ///////////////////////////////////////////////////////////////////////////////
  42. // Class CAbbTerm
  43. ///////////////////////////////////////////////////////////////////////////////
  44. struct CAbbTerm
  45. {
  46. WCHAR* pwcsAbb;
  47. ULONG ulAbbLen;
  48. WCHAR* pwcsCanonicalForm;
  49. ULONG ulCanLen;
  50. };
  51. ///////////////////////////////////////////////////////////////////////////////
  52. // Class CSpecialAbbreviation
  53. ///////////////////////////////////////////////////////////////////////////////
  54. class CSpecialAbbreviationSet
  55. {
  56. public:
  57. CSpecialAbbreviationSet(const CAbbTerm* pAbbTermList);
  58. CTrie<CAbbTerm, CWbToUpper> m_trieAbb;
  59. };
  60. ///////////////////////////////////////////////////////////////////////////////
  61. // Class CDateTerm
  62. ///////////////////////////////////////////////////////////////////////////////
  63. struct CDateTerm
  64. {
  65. WCHAR* pwcsFormat;
  66. BYTE bLen;
  67. BYTE bType;
  68. BYTE bD_M1Offset;
  69. BYTE bD_M1Len;
  70. BYTE bD_M2Offset;
  71. BYTE bD_M2Len;
  72. BYTE bYearOffset;
  73. BYTE bYearLen;
  74. };
  75. #define YYMMDD_TYPE 1
  76. ///////////////////////////////////////////////////////////////////////////////
  77. // Class CDateFormat
  78. ///////////////////////////////////////////////////////////////////////////////
  79. class CDateFormat
  80. {
  81. public:
  82. CDateFormat();
  83. CTrie<CDateTerm, CWbToUpper> m_trieDateFormat;
  84. };
  85. ///////////////////////////////////////////////////////////////////////////////
  86. // Class CTimeTerm
  87. ///////////////////////////////////////////////////////////////////////////////
  88. enum TimeFormat
  89. {
  90. None = 0,
  91. Am,
  92. Pm
  93. };
  94. struct CTimeTerm
  95. {
  96. WCHAR* pwcsFormat;
  97. BYTE bLen;
  98. BYTE bHourOffset;
  99. BYTE bHourLen;
  100. BYTE bMinOffset;
  101. BYTE bMinLen;
  102. BYTE bSecOffset;
  103. BYTE bSecLen;
  104. TimeFormat AmPm;
  105. };
  106. ///////////////////////////////////////////////////////////////////////////////
  107. // Class CTimeFormat
  108. ///////////////////////////////////////////////////////////////////////////////
  109. class CTimeFormat
  110. {
  111. public:
  112. CTimeFormat();
  113. CTrie<CTimeTerm, CWbToUpper> m_trieTimeFormat;
  114. };
  115. extern CAutoClassPointer<CClitics> g_pClitics;
  116. extern CAutoClassPointer<CSpecialAbbreviationSet> g_pEngAbbList;
  117. extern CAutoClassPointer<CSpecialAbbreviationSet> g_pFrnAbbList;
  118. extern CAutoClassPointer<CSpecialAbbreviationSet> g_pSpnAbbList;
  119. extern CAutoClassPointer<CSpecialAbbreviationSet> g_pItlAbbList;
  120. extern CAutoClassPointer<CDateFormat> g_pDateFormat;
  121. extern CAutoClassPointer<CTimeFormat> g_pTimeFormat;
  122. extern const CCliticsTerm g_aClitics[];
  123. extern const CCliticsTerm g_SClitics;
  124. extern const CCliticsTerm g_EmptyClitics;
  125. extern const CAbbTerm g_aEngAbbList[];
  126. extern const CAbbTerm g_aFrenchAbbList[];
  127. extern const CAbbTerm g_aSpanishAbbList[];
  128. extern const CAbbTerm g_aItalianAbbList[];
  129. extern const CDateTerm g_aDateFormatList[];
  130. extern const CTimeTerm s_aTimeFormatList[];
  131. #define MAX_DATE_FORMAT_LEN 10
  132. #define MAX_TIME_FORMAT_LEN 12
  133. #endif // _FORMATS_H_