Lines Matching refs:Start
495 static unsigned PluralNumber(const char *&Start, const char *End) { in PluralNumber() argument
498 while (Start != End && *Start >= '0' && *Start <= '9') { in PluralNumber()
500 Val += *Start - '0'; in PluralNumber()
501 ++Start; in PluralNumber()
507 static bool TestPluralRange(unsigned Val, const char *&Start, const char *End) { in TestPluralRange() argument
508 if (*Start != '[') { in TestPluralRange()
509 unsigned Ref = PluralNumber(Start, End); in TestPluralRange()
513 ++Start; in TestPluralRange()
514 unsigned Low = PluralNumber(Start, End); in TestPluralRange()
515 assert(*Start == ',' && "Bad plural expression syntax: expected ,"); in TestPluralRange()
516 ++Start; in TestPluralRange()
517 unsigned High = PluralNumber(Start, End); in TestPluralRange()
518 assert(*Start == ']' && "Bad plural expression syntax: expected )"); in TestPluralRange()
519 ++Start; in TestPluralRange()
524 static bool EvalPluralExpr(unsigned ValNo, const char *Start, const char *End) { in EvalPluralExpr() argument
526 if (*Start == ':') in EvalPluralExpr()
530 char C = *Start; in EvalPluralExpr()
533 ++Start; in EvalPluralExpr()
534 unsigned Arg = PluralNumber(Start, End); in EvalPluralExpr()
535 assert(*Start == '=' && "Bad plural expression syntax: expected ="); in EvalPluralExpr()
536 ++Start; in EvalPluralExpr()
538 if (TestPluralRange(ValMod, Start, End)) in EvalPluralExpr()
544 if (TestPluralRange(ValNo, Start, End)) in EvalPluralExpr()
549 Start = std::find(Start, End, ','); in EvalPluralExpr()
550 if (Start == End) in EvalPluralExpr()
552 ++Start; in EvalPluralExpr()