Lines Matching refs:Start
403 static unsigned PluralNumber(const char *&Start, const char *End) { in PluralNumber() argument
406 while (Start != End && *Start >= '0' && *Start <= '9') { in PluralNumber()
408 Val += *Start - '0'; in PluralNumber()
409 ++Start; in PluralNumber()
415 static bool TestPluralRange(unsigned Val, const char *&Start, const char *End) { in TestPluralRange() argument
416 if (*Start != '[') { in TestPluralRange()
417 unsigned Ref = PluralNumber(Start, End); in TestPluralRange()
421 ++Start; in TestPluralRange()
422 unsigned Low = PluralNumber(Start, End); in TestPluralRange()
423 assert(*Start == ',' && "Bad plural expression syntax: expected ,"); in TestPluralRange()
424 ++Start; in TestPluralRange()
425 unsigned High = PluralNumber(Start, End); in TestPluralRange()
426 assert(*Start == ']' && "Bad plural expression syntax: expected )"); in TestPluralRange()
427 ++Start; in TestPluralRange()
432 static bool EvalPluralExpr(unsigned ValNo, const char *Start, const char *End) { in EvalPluralExpr() argument
434 if (*Start == ':') in EvalPluralExpr()
438 char C = *Start; in EvalPluralExpr()
441 ++Start; in EvalPluralExpr()
442 unsigned Arg = PluralNumber(Start, End); in EvalPluralExpr()
443 assert(*Start == '=' && "Bad plural expression syntax: expected ="); in EvalPluralExpr()
444 ++Start; in EvalPluralExpr()
446 if (TestPluralRange(ValMod, Start, End)) in EvalPluralExpr()
452 if (TestPluralRange(ValNo, Start, End)) in EvalPluralExpr()
457 Start = std::find(Start, End, ','); in EvalPluralExpr()
458 if (Start == End) in EvalPluralExpr()
460 ++Start; in EvalPluralExpr()