public string Convert(string input)
        {
            var numbers = input.Split(new []{"."},StringSplitOptions.RemoveEmptyEntries);

            var chunks = Chunk(numbers[0]);

            var seperators = new Seperators();
            var sb = new StringBuilder();

            sb.Prepend(seperators.Next());
            sb.Prepend(VerbaliseLast(chunks.Pop(), chunks.Count > 0));

            while (chunks.Count > 0)
            {
                var chunk = chunks.Pop();
                var next = seperators.Next();
                sb.Prepend(next);
                var verbalise = Verbalise(chunk);
                sb.Prepend(verbalise);
            }
            if (numbers.Length > 1)
            {
                sb.Append(" point");
                foreach (var digit in numbers[1])
                {
                    sb.AppendFormat(" {0}", verbalLookup[int.Parse(digit.ToString())]);
                }
            }
            return sb.ToString()
                     .Trim();
        }
    protected override string CalcNodeIndent(ITreeNode node)
    {
      var indent = new StringBuilder();
      foreach (ITokenNode token in node.GetFirstTokenIn().PrevTokens())
      {
        TokenNodeType tokenType = token.GetTokenType();
        if (tokenType == PsiTokenType.WHITE_SPACE)
        {
          indent.Prepend(token.GetText());
        }
        else if (tokenType != PsiTokenType.NEW_LINE)
        {
          indent.Prepend(new string(' ', token.GetTextLength()));
        }
        else
        {
          break;
        }
      }

      return indent.ToString();
    }
    protected override string CalcLineIndent(ITreeNode node)
    {
      string customIndent = GetCustomIndent(node, CustomIndentType.RelativeLineCalculation);
      if (customIndent != null)
      {
        return customIndent;
      }

      var indent = new StringBuilder();
      foreach (ITokenNode token in node.GetFirstTokenIn().PrevTokens())
      {
        TokenNodeType tokenType = token.GetTokenType();
        if (tokenType == PsiTokenType.WHITE_SPACE)
        {
          indent.Prepend(token.GetText());
        }
        else if (tokenType == PsiTokenType.NEW_LINE)
        {
          break;
        }
      }

      return indent.ToString();
    }