Exemplo n.º 1
0
        /// <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));
            }
        }
Exemplo n.º 2
0
        /// <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);
        }