protected override string BuildIntergalacticWordsListAndGetOutputToReturn(string queryInputWordsAfterIsButBeforeQuestionMark)
        {
            var queryInputWordsListAfterIsButBeforeQuestionMark = queryInputWordsAfterIsButBeforeQuestionMark.Split(new string[] { " " }, StringSplitOptions.None).Where(x => !String.IsNullOrEmpty(x.Trim())).ToList();

            ContractUtility.Requires <ArgumentException>(queryInputWordsListAfterIsButBeforeQuestionMark.Count > 0, "Words count before \"is\" in the input query must be > 0");
            var queryInputWordsListAfterIsButBeforeQuestionMarkTerminalListExpression = new TerminalListExpression <string>(queryInputWordsListAfterIsButBeforeQuestionMark);
            var normalInputSemanticLanguageExpression = new NormalInputSemanticLanguageExpression(numberFormatCalculator, symbolValues);

            return(queryInputWordsAfterIsButBeforeQuestionMark + " is " + normalInputSemanticLanguageExpression.Interpret(queryInputWordsListAfterIsButBeforeQuestionMarkTerminalListExpression));
        }
        public void Store(List <string> inputTexts)
        {
            var creditsInputs = inputTexts.Where(x => x.Contains("Credits")).ToList();
            var normalInputs  = inputTexts.Except(creditsInputs).ToList();

            ContractUtility.Requires <ArgumentException>(normalInputs.Count > 0, "There must be some valid input");
            var normalInputSemanticLanguageExpression = new NormalInputSemanticLanguageExpression(numberFormatCalculator, symbolValues);

            Store(normalInputSemanticLanguageExpression, normalInputs);
            var creditsInputSemanticLanguageExpression = new CreditslInputSemanticLanguageExpression(numberFormatCalculator, symbolValues);

            Store(creditsInputSemanticLanguageExpression, creditsInputs);
        }