public CqlType CreateType(TypeParser parser) { string keyspace = parser.ReadNextIdentifier(); parser.SkipBlankAndComma(); string name = parser.ReadNextIdentifier().DecodeHex(); var fieldNames = new List<string>(); var fieldTypes = new List<CqlType>(); while(parser.SkipBlankAndComma()) { if(parser.Peek() == ')') return CreateTypeInternal(keyspace, name, fieldNames, fieldTypes, null); string fieldName = parser.ReadNextIdentifier().DecodeHex(); if(parser.ReadNextChar() != ':') throw new CqlException("Error parsing UserType arguments: ':' expected after fieldName."); CqlType type = parser.ReadCqlType(); fieldNames.Add(fieldName); fieldTypes.Add(type); } throw new CqlException("Error parsing UserType arguments: unexpected end of string."); }
public CqlType CreateType(TypeParser parser) { var types = new List<CqlType>(); parser.SkipBlank(); while(!parser.IsEOS() && parser.Peek() != ')') { types.Add(parser.ReadCqlType()); parser.SkipBlankAndComma(); } return CreateType(types); }