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); } } } }