示例#1
0
        // Add new nested types here
        // (A type is a base type if its csv identifier includes "<>")
        private IDataType GetNestedDataType(string typeInfo, string prefix, string nesting, string csvFieldName)
        {
            if (prefix == CSVConstant.ARRAY_TYPE)
            {
                IDataType arrayType;
                if (!TryGetSpecialArrayType(nesting, out arrayType))
                {
                    // use default ArrayDataType
                    IDataType baseType = GetDataType(nesting, csvFieldName);
                    arrayType = new ArrayDataType(baseType);
                }
                return(arrayType);
            }

            else if (prefix == CSVConstant.ENUM_TYPE)
            {
                return(new EnumDataType(typeInfo, nesting));
            }

            else if (prefix == CSVConstant.FLAG_TYPE)
            {
                return(new FlagDataType(typeInfo, nesting));
            }

            else if (prefix == CSVConstant.ACTION_TYPE)
            {
                return(new ActionDataType(prefix, nesting));
            }

            else if (prefix == CSVConstant.REF_TYPE)
            {
                return(new RefDataType(nesting, historyDataTypes));
            }

            else if (prefix == CSVConstant.STRUCT_TYPE)
            {
                return(new StructDataType(prefix, nesting));
            }

            throw new CSVParseException("Unknown data type in csv: " + prefix + "+" + nesting);
        }
示例#2
0
 public Vector3DataType()
 {
     arrayType = new ArrayDataType(new FloatDataType(), ';');
 }