Mono.Addins.Description.AddinDescription.ParseString C# (CSharp) Method

ParseString() private method

private ParseString ( string input ) : string
input string
return string
        internal string ParseString(string input)
        {
            if (input == null || input.Length < 4 || variables == null || variables.Count == 0)
                return input;

            int i = input.IndexOf ("$(");
            if (i == -1)
                return input;

            StringBuilder result = new StringBuilder (input.Length);
            result.Append (input, 0, i);

            while (i < input.Length) {
                if (input [i] == '$') {
                    i++;

                    if (i >= input.Length || input[i] != '(') {
                        result.Append ('$');
                        continue;
                    }

                    i++;
                    int start = i;
                    while (i < input.Length && input [i] != ')')
                        i++;

                    string tag = input.Substring (start, i - start);

                    string tagValue;
                    if (variables.TryGetValue (tag, out tagValue))
                        result.Append (tagValue);
                    else {
                        result.Append ('$');
                        i = start - 1;
                    }
                } else {
                    result.Append (input [i]);
                }
                i++;
            }
            return result.ToString ();
        }

Usage Example

 string ParseString(string s)
 {
     if (desc != null)
     {
         return(desc.ParseString(s));
     }
     else
     {
         return(s);
     }
 }