1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
10 #include "mozilla/Attributes.h"
58 friend class IrishCasing
;
62 : mState(kState_Start
)
66 MOZ_IMPLICIT
State(const IrishStates
& aState
)
73 mState
= kState_Start
;
76 operator IrishStates() const
82 explicit State(uint8_t aState
)
83 : mState(IrishStates(aState
))
87 uint8_t GetClass(uint32_t aCh
);
93 kMarkPositionFlag
= 0x80,
99 static const uint8_t sUppercaseStateTable
[kNumClasses
][kNumStates
];
100 static const uint8_t sLcClasses
[26];
101 static const uint8_t sUcClasses
[26];
103 static uint32_t UpperCase(uint32_t aCh
, State
& aState
,
104 bool& aMarkPos
, uint8_t& aAction
);
106 static bool IsUpperVowel(uint32_t aCh
)
108 return GetClass(aCh
) == kClass_Vowel
;
112 static uint8_t GetClass(uint32_t aCh
);
115 } // namespace mozilla