42 return ConsumeConsonantHeadIfValid() && ConsumeConsonantTailIfValid();
45 return ConsumeVowelIfValid();
58 tprintf(
"Invalid start of grapheme sequence:%c=0x%x\n",
72 bool ValidateJavanese::ConsumeViramaIfValid(IndicPair joiner,
bool post_matra) {
73 const unsigned num_codes =
codes_.size();
100 tprintf(
"Virama ZWJ ZWNJ in non-Sinhala: base=0x%x!\n",
126 tprintf(
"Invalid pre-virama joiner with no 2nd consonant!!\n");
144 bool ValidateJavanese::ConsumeConsonantHeadIfValid() {
145 const unsigned num_codes =
codes_.size();
150 int index =
output_.size() - 3;
156 bool have_nukta =
false;
163 index =
output_.size() - 2 - have_nukta;
183 output_.push_back(joiner.second);
186 tprintf(
"Skipping unnecessary joiner: 0x%x 0x%x 0x%x\n",
194 if (!ConsumeViramaIfValid(joiner,
false))
return false;
206 bool ValidateJavanese::ConsumeConsonantTailIfValid() {
241 bool ValidateJavanese::ConsumeVowelIfValid() {
260 int off = ch - static_cast<char32>(
script_);