diff --git a/src/SIL.Machine/Corpora/ScriptureRef.cs b/src/SIL.Machine/Corpora/ScriptureRef.cs index 73d23031..c92121a8 100644 --- a/src/SIL.Machine/Corpora/ScriptureRef.cs +++ b/src/SIL.Machine/Corpora/ScriptureRef.cs @@ -43,6 +43,25 @@ public static ScriptureRef Parse(string str, ScrVers versification = null) return new ScriptureRef(new VerseRef(vref, versification ?? ScrVers.English), path); } + public static bool TryParse(string str, out ScriptureRef scriptureRef) + { + return TryParse(str, null, out scriptureRef); + } + + public static bool TryParse(string str, ScrVers versification, out ScriptureRef scriptureRef) + { + try + { + scriptureRef = Parse(str, versification); + return true; + } + catch (VerseRefException) + { + scriptureRef = Empty; + return false; + } + } + public ScriptureRef(VerseRef verseRef = default, IEnumerable path = null) { VerseRef = verseRef;