public override void Write(StringBuilder sb)
 {
     TokenEnum.NEW.Write(sb, Writer.Padding.SUFFIX);
     sb.Append(_ttypeName);
     if (_dimensions == null || _dimensions.Length == 0)
     {
         TokenEnum.BRACKETOPEN.Write(sb);
         if (_param.Count > 0)
         {
             _param[0].Write(sb);
         }
         for (int j = 1; j < _param.Count; j++)
         {
             TokenEnum.COMMA.Write(sb);
             _param[j].Write(sb);
         }
         TokenEnum.BRACKETCLOSE.Write(sb);
     }
     else
     {
         for (int i = 0; i < _dimensions.Length; i++)
         {
             TokenEnum.SQBRACKETOPEN.Write(sb);
             if (_first_indices != null)
             {
                 if (i == 0)
                 {
                     _first_indices[0].Write(sb);
                 }
                 for (int j = 1; j < _dimensions[i]; j++)
                 {
                     TokenEnum.COMMA.Write(sb);
                     if (i == 0)
                     {
                         _first_indices[j].Write(sb);
                     }
                 }
             }
             else
             {
                 for (int j = 0; j < _dimensions[i] - 1; j++)
                 {
                     TokenEnum.COMMA.Write(sb);
                 }
             }
             TokenEnum.SQBRACKETCLOSE.Write(sb);
             if (_first_indices == null)
             {
                 _first_element.Write(sb);
             }
         }
     }
 }