private void AddParameters(StringTemplateBuilder builder, string templateData)
        {
            var tokenIndex = 0;

            while (tokenIndex < templateData.Length)
            {
                var token     = templateData[tokenIndex];
                var parameter = ParseToken(token, templateData, ref tokenIndex);
                if (parameter != null)
                {
                    builder.AddParameter(parameter);
                }
            }
        }
        public IStringTemplate Parse(string templateData, StringTemplateParserOption options = StringTemplateParserOption.PreserveTemplate)
        {
            var builder = new StringTemplateBuilder();

            AddParameters(builder, templateData);

            if (options == StringTemplateParserOption.FixMalformedTemplate)
            {
                templateData = FixMalformedTemplate(templateData);
            }

            builder.SetFormat(templateData);
            return(builder.Build());
        }