/// <summary> /// Initials roman symbols. /// </summary> /// <param name="input">The input text.</param> /// <param name="romanSymbolDefinition">The roman symbols</param> private void Initial(string input, Dictionary <string, RomanSymbol> romanSymbolDefinition) { romanSymbols.Clear(); string[] words = input.Split(' '); for (int i = 0; i < words.Length; i++) { if (!romanSymbolDefinition.Keys.Contains(words[i])) { throw new Exception(TranslatorConstant.InvalidSymbol); } romanSymbols.Add(RomanSymbolUtility.GetRomanSymbol(romanSymbolDefinition[words[i]].Symbol)); } }
/// <summary> /// Parses the Roman symbol definition /// </summary> /// <param name="input">input</param> /// <returns>The result of whether it is success</returns> public override bool Parse(string input) { string[] words = input.Split(new[] { TranslatorConstant.Is }, StringSplitOptions.RemoveEmptyEntries); if (words.Count() != 2) { return(false); } if (words[0].Trim().Contains(TranslatorConstant.Blank)) { return(false); } if (words[1].Length != 1) { return(false); } RomanSymbol romanSymbol = RomanSymbolUtility.GetRomanSymbol(words[1]); string key = words[0].Trim(); Context.IrregularSymbolsDefinition[key] = romanSymbol ?? throw new Exception(TranslatorConstant.InvalidRomanSymbol); return(true); }