verseRefFromStr function

VerseRef verseRefFromStr(
  1. String ref, {
  2. BibleLanguageEnum? language,
})

Parse a string into a VerseRef.

Implementation

VerseRef verseRefFromStr(String ref, {BibleLanguageEnum? language}) {
  _ensureReferenceIsNotEmpty(ref);
  final normalizedLanguage = _bookLookup.normalizeLanguage(language);

  final match = _verseRefPattern.firstMatch(ref);
  if (match == null) {
    throw ParseVerseRefError(
        code: 'pattern_mismatch',
        details: 'reference "$ref" does not match expected format');
  }

  final chapter = _parseReferenceNumber(
    match.group(2)!,
    component: 'chapter',
    maximum: maxReferenceChapterNumber,
  );
  final verse = _parseVerseToken(
    match.group(3)!,
    component: 'verse',
  );
  final book = _bookLookup.parseBookName(match.group(1)!, normalizedLanguage);

  return VerseRef.checked(
      book: book,
      chapter: chapter,
      verse: verse.verse,
      subdivision: verse.subdivision);
}