Esempio n. 1
0
        public Analyser(TypeStorage types, ILogger logger)
        {
            this.logger = logger;
            this.types  = types;

            builder = new TypesBuilder(types);
        }
Esempio n. 2
0
        public void ConvertValue(IBedValueReader reader, TypeStorage dsttype, IBedValueWriter writer)
        {
            var srctype = reader.GetFieldType();

            if (srctype == dsttype)
            {
                // no conversion needed
                writer.ReadFrom(reader);
                return;
            }
            if (srctype.IsNumber() && dsttype.IsNumber())
            {
                if (dsttype.IsInteger())
                {
                    writer.SetIntegerValue(dsttype, reader.GetIntegerValue());
                }
                else
                {
                    writer.SetRealValue(dsttype, reader.GetRealValue());
                }
                return;
            }
            if (srctype.IsDateRelated() && dsttype.IsDateRelated())
            {
                writer.SetDateTimeValue(dsttype, reader.GetDateTimeValue());
                return;
            }
            if (srctype == TypeStorage.Boolean && dsttype.IsNumber())
            {
                bool val = reader.GetBoolean();
                writer.SetIntegerValue(dsttype, val ? 1 : 0);
                return;
            }
            if (srctype.IsNumber() && dsttype == TypeStorage.Boolean)
            {
                long val = reader.GetIntegerValue();
                writer.SetBoolean(val != 0);
                return;
            }
            if (srctype == TypeStorage.String)
            {
                // parse
                m_parser.ParseValue(reader.GetString(), dsttype, writer);
                return;
            }
            if (dsttype == TypeStorage.String)
            {
                // format
                m_formatter.ReadFrom(reader);
                writer.SetString(m_formatter.GetText());
                return;
            }
            {
                // most generic case - format and than parse
                m_formatter.ReadFrom(reader);
                m_parser.ParseValue(m_formatter.GetText(), dsttype, writer);
                return;
            }
        }
Esempio n. 3
0
 public object ConvertValue(TypeStorage type, object value)
 {
     m_holder1.ReadFrom(value);
     var srctype = m_holder1.GetFieldType();
     if (srctype == type || srctype == TypeStorage.Null) return value;
     ConvertValue(m_holder1, type, m_holder2);
     return m_holder2.BoxTypedValue();
 }
Esempio n. 4
0
 public void SetUInt64(ulong value)
 {
     unchecked
     {
         m_intVal = (long)value;
         _type    = TypeStorage.UInt64;
     }
 }
Esempio n. 5
0
 public void ConvertValue(ICdlValueReader reader, TypeStorage dsttype, ICdlValueWriter writer)
 {
     var srctype = reader.GetFieldType();
     if (srctype == dsttype)
     {
         // no conversion needed
         writer.ReadFrom(reader);
         return;
     }
     if (srctype.IsNumber() && dsttype.IsNumber())
     {
         if (dsttype.IsInteger())
         {
             writer.SetIntegerValue(dsttype, reader.GetIntegerValue());
         }
         else
         {
             writer.SetRealValue(dsttype, reader.GetRealValue());
         }
         return;
     }
     if (srctype.IsDateRelated() && dsttype.IsDateRelated())
     {
         writer.SetDateTimeValue(dsttype, reader.GetDateTimeValue());
         return;
     }
     if (srctype == TypeStorage.Boolean && dsttype.IsNumber())
     {
         bool val = reader.GetBoolean();
         writer.SetIntegerValue(dsttype, val ? 1 : 0);
         return;
     }
     if (srctype.IsNumber() && dsttype == TypeStorage.Boolean)
     {
         long val = reader.GetIntegerValue();
         writer.SetBoolean(val != 0);
         return;
     }
     if (srctype == TypeStorage.String)
     {
         // parse
         m_parser.ParseValue(reader.GetString(), dsttype, writer);
         return;
     }
     if (dsttype == TypeStorage.String)
     {
         // format
         m_formatter.ReadFrom(reader);
         writer.SetString(m_formatter.GetText());
         return;
     }
     {
         // most generic case - format and than parse
         m_formatter.ReadFrom(reader);
         m_parser.ParseValue(m_formatter.GetText(), dsttype, writer);
         return;
     }
 }
Esempio n. 6
0
        public string Generate(CommonTree tree, TypeStorage types)
        {
            foreach (var item in passes)
            {
                item.Pass(tree);
            }

            return(codegen.Generate(tree, types, nameConvertor));
        }
Esempio n. 7
0
 private static void CompileFile(string path, string outPath, TypeStorage typeStorage,
                                 ILogger logger, ILogger treeLogger, CSNameConvertor nameConvertor)
 {
     using (var fileStream = new FileStream(path, FileMode.Open))
         using (var outStream = new StreamWriter(outPath))
         {
             CompileFile(fileStream, path, outStream, typeStorage, logger, treeLogger, nameConvertor);
         }
 }
Esempio n. 8
0
        public SemanticAnalyser(TypeStorage types, ILogger logger)
        {
            this.types = types;


            passList.Add(new TypeCollector(types, logger));
            passList.Add(new TypeBuilder(types, logger));
            passList.Add(new OperatorPass(types, logger));
            passList.Add(new DefinitionAnalyser(types, logger));
        }
Esempio n. 9
0
 private void GetSimpleTypes(TypeStorage storage)
 {
     storage.AddType(Types.TypeInfo.Int);
     storage.AddType(Types.TypeInfo.Byte);
     storage.AddType(Types.TypeInfo.Char);
     storage.AddType(Types.TypeInfo.Double);
     storage.AddType(Types.TypeInfo.Bool);
     storage.AddType(Types.TypeInfo.Float);
     storage.AddType(Types.TypeInfo.String);
     storage.AddType(Types.TypeInfo.Void);
 }
Esempio n. 10
0
        public object ConvertValue(TypeStorage type, object value)
        {
            m_holder1.ReadFrom(value);
            var srctype = m_holder1.GetFieldType();

            if (srctype == type || srctype == TypeStorage.Null)
            {
                return(value);
            }
            ConvertValue(m_holder1, type, m_holder2);
            return(m_holder2.BoxTypedValue());
        }
Esempio n. 11
0
 public RecoveryPoint(Dictionary <string, TypeObject> resources, string preffix, TypeStorage ts, TypeRestPoint trp)
 {
     this.resources = new Dictionary <string, TypeObject>(resources);
     date           = TrimDate(DateTime.Now, TimeSpan.TicksPerSecond);
     name           = String.Format("{0}{1}", preffix, date.ToString("dd_MM_yyyy_HH_mm_ss"));
     typeStorage    = ts;
     typeRestPoint  = trp;
     if (!Directory.Exists(name))
     {
         Directory.CreateDirectory(name);
     }
 }
Esempio n. 12
0
        public static void SetIntegerValue(this IBedValueWriter writer, TypeStorage type, long value)
        {
            unchecked
            {
                switch (type)
                {
                case TypeStorage.Byte:
                    writer.SetByte((byte)value);
                    break;

                case TypeStorage.Int16:
                    writer.SetInt16((short)value);
                    break;

                case TypeStorage.Int32:
                    writer.SetInt32((int)value);
                    break;

                case TypeStorage.Int64:
                    writer.SetInt64((long)value);
                    break;

                case TypeStorage.SByte:
                    writer.SetSByte((sbyte)value);
                    break;

                case TypeStorage.UInt16:
                    writer.SetUInt16((ushort)value);
                    break;

                case TypeStorage.UInt32:
                    writer.SetUInt32((uint)value);
                    break;

                case TypeStorage.UInt64:
                    writer.SetUInt64((ulong)value);
                    break;

                case TypeStorage.Float:
                    writer.SetFloat((float)value);
                    break;

                case TypeStorage.Double:
                    writer.SetDouble((double)value);
                    break;

                case TypeStorage.Decimal:
                    writer.SetDecimal((decimal)value);
                    break;
                }
            }
        }
Esempio n. 13
0
        public bool CreateRestPoint(TypeRestPoint typeRestPoint, TypeStorage typeStorage)
        {
            var rp = new RecoveryPoint(files, string.Format("{0}\\myrp_", name), typeStorage, typeRestPoint);
            var p  = rest_points.Keys;

            if ((typeRestPoint == TypeRestPoint.Full && rp.AddFullRP()) ||
                (typeRestPoint == TypeRestPoint.Part && rp.AddPartRP(p.Count > 0 ? rest_points[p.Max()] : null)))
            {
                rest_points.Add(rp.date, rp);
                return(true);
            }
            return(false);
        }
Esempio n. 14
0
 private static void CompileAll(List <string> files, TypeStorage typeStorage,
                                ILogger logger, ILogger treeLogger, CSNameConvertor nameConvertor)
 {
     using (var fileWriter = new StreamWriter("out.il"))
     {
         foreach (var item in files)
         {
             using (var fileStream = new FileStream(item, FileMode.Open))
             {
                 CompileFile(fileStream, item, fileWriter, typeStorage, logger, treeLogger, nameConvertor);
             }
         }
     }
 }
Esempio n. 15
0
        public static bool IsDateRelated(this TypeStorage type)
        {
            switch (type)
            {
            case TypeStorage.DateEx:
            case TypeStorage.DateTime:
            case TypeStorage.DateTimeEx:
            case TypeStorage.TimeEx:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 16
0
 public void ParseError(string text, TypeStorage type, ICdlValueWriter writer)
 {
     var error = new DataParseError(text, type);
     //if (m_settings.LogAllErrors) ProgressInfo.Error(error.Message);
     switch (m_settings.OnErrorMode)
     {
         case OnDataErrorMode.Propagate:
             throw error;
         case OnDataErrorMode.UseDefault:
             m_settings.WriteErrorDefault(type, writer);
             break;
         case OnDataErrorMode.UseNull:
             writer.SetNull();
             break;
     }
 }
Esempio n. 17
0
        public TypeStorage Load(List <Assembly> libs)
        {
            storage = new TypeStorage();
            GetSimpleTypes(storage);

            map.Add(GenericTypeEnum.Table, "List");
            map.Add(GenericTypeEnum.Dictionary, "Dictionary");

            classLoader   = new ClassLoader(storage, nameConvertor);
            packageLoader = new PackageLoader(storage, nameConvertor);
            genericLoader = new GenericLoader(storage, nameConvertor);

            LoadTypes(libs);

            return(storage);
        }
Esempio n. 18
0
		/// <summary>
		/// Loads the assembly definition into a project content.
		/// </summary>
		/// <returns>IProjectContent that represents the assembly</returns>
		public IProjectContent LoadAssembly(AssemblyDefinition assemblyDefinition)
		{
			if (assemblyDefinition == null)
				throw new ArgumentNullException("assemblyDefinition");
			ITypeResolveContext oldEarlyBindContext = this.EarlyBindContext;
			try {
				IList<IAttribute> assemblyAttributes = new List<IAttribute>();
				foreach (var attr in assemblyDefinition.CustomAttributes) {
					assemblyAttributes.Add(ReadAttribute(attr));
				}
				if (this.InterningProvider != null)
					assemblyAttributes = this.InterningProvider.InternList(assemblyAttributes);
				else
					assemblyAttributes = new ReadOnlyCollection<IAttribute>(assemblyAttributes);
				TypeStorage typeStorage = new TypeStorage();
				CecilProjectContent pc = new CecilProjectContent(typeStorage, assemblyDefinition.Name.FullName, assemblyAttributes, this.DocumentationProvider);
				
				this.EarlyBindContext = CompositeTypeResolveContext.Combine(pc, this.EarlyBindContext);
				List<CecilTypeDefinition> types = new List<CecilTypeDefinition>();
				foreach (ModuleDefinition module in assemblyDefinition.Modules) {
					foreach (TypeDefinition td in module.Types) {
						if (this.IncludeInternalMembers || (td.Attributes & TypeAttributes.VisibilityMask) == TypeAttributes.Public) {
							string name = td.FullName;
							if (name.Length == 0 || name[0] == '<')
								continue;
							if (name == "System.Void") {
								var c = new VoidTypeDefinition(pc);
								AddAttributes(td, c);
								typeStorage.UpdateType(c);
							} else {
								CecilTypeDefinition c = new CecilTypeDefinition(pc, td);
								types.Add(c);
								typeStorage.UpdateType(c);
							}
						}
					}
				}
				foreach (CecilTypeDefinition c in types) {
					c.Init(this);
				}
				return pc;
			} finally {
				this.EarlyBindContext = oldEarlyBindContext;
			}
		}
Esempio n. 19
0
        public string Generate(CommonTree tree, TypeStorage types, INameConvertor nameConvertor)
        {
            this.types  = types;
            typeBuilder = new TypesBuilder(types);

            builder = new ModuleBuilder(types.Libs, nameConvertor);

            var defs = tree.Children.Where(x => x is ClassDefNode || x is EntryPointNode);

            var context = new CodegenContext();

            foreach (dynamic item in defs)
            {
                Visit(item, context);
            }

            return(builder.Generate());
        }
Esempio n. 20
0
        public static bool IsInteger(this TypeStorage type)
        {
            switch (type)
            {
            case TypeStorage.Byte:
            case TypeStorage.Int16:
            case TypeStorage.Int32:
            case TypeStorage.Int64:
            case TypeStorage.SByte:
            case TypeStorage.UInt16:
            case TypeStorage.UInt32:
            case TypeStorage.UInt64:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 21
0
        public void ParseError(string text, TypeStorage type, ICdlValueWriter writer)
        {
            var error = new DataParseError(text, type);

            //if (m_settings.LogAllErrors) ProgressInfo.Error(error.Message);
            switch (m_settings.OnErrorMode)
            {
            case OnDataErrorMode.Propagate:
                throw error;

            case OnDataErrorMode.UseDefault:
                m_settings.WriteErrorDefault(type, writer);
                break;

            case OnDataErrorMode.UseNull:
                writer.SetNull();
                break;
            }
        }
Esempio n. 22
0
 public void WriteErrorDefault(TypeStorage type, ICdlValueWriter writer)
 {
     if (type.IsNumber())
     {
         writer.SetIntegerValue(type, m_defaultNumber);
     }
     else if (type.IsDateRelated())
     {
         writer.SetDateTimeValue(type, m_defaultDateTime);
     }
     else if (type == TypeStorage.Boolean)
     {
         writer.SetBoolean(m_defautlLogical);
     }
     else
     {
         writer.SetNull();
     }
 }
Esempio n. 23
0
        public static void SetDateTimeValue(this IBedValueWriter writer, TypeStorage type, DateTimeEx value)
        {
            switch (type)
            {
            case TypeStorage.DateEx:
                writer.SetDateEx(value.DatePart);
                break;

            case TypeStorage.TimeEx:
                writer.SetTimeEx(value.TimePart);
                break;

            case TypeStorage.DateTime:
                writer.SetDateTime(value.AsDateTime);
                break;

            case TypeStorage.DateTimeEx:
                writer.SetDateTimeEx(value);
                break;
            }
        }
Esempio n. 24
0
        public static bool IsNumber(this TypeStorage type)
        {
            switch (type)
            {
            case TypeStorage.Byte:
            case TypeStorage.Int16:
            case TypeStorage.Int32:
            case TypeStorage.Int64:
            case TypeStorage.SByte:
            case TypeStorage.UInt16:
            case TypeStorage.UInt32:
            case TypeStorage.UInt64:
            case TypeStorage.Float:
            case TypeStorage.Double:
            case TypeStorage.Decimal:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 25
0
 public void CallShowCurrentData()
 {
     try
     {
         m_loadingData = true;
         if (m_data != null)
         {
             Controls.ShowError(false);
             m_data.GetData(m_holder);
             m_targetType = m_data.GetTargetType();
             ShowCurrentData();
         }
         else
         {
             Controls.ShowError(true);
             ClearCurrentData();
         }
     }
     finally
     {
         m_loadingData = false;
     }
 }
Esempio n. 26
0
 public static void ReadValue(SQLiteDataReader reader, int index, TypeStorage type, ICdlValueWriter writer)
 {
     switch (type)
     {
         case TypeStorage.Boolean:
             writer.SetBoolean(reader.GetInt32(index) != 0);
             break;
         case TypeStorage.Byte:
             writer.SetByte((byte) reader.GetInt32(index));
             break;
         case TypeStorage.Int16:
             writer.SetInt16((short) reader.GetInt32(index));
             break;
         case TypeStorage.Int32:
             writer.SetInt32((int) reader.GetInt32(index));
             break;
         case TypeStorage.Int64:
             writer.SetInt64((long) reader.GetInt64(index));
             break;
         case TypeStorage.SByte:
             writer.SetSByte((sbyte) reader.GetInt32(index));
             break;
         case TypeStorage.UInt16:
             writer.SetUInt16((ushort) reader.GetInt32(index));
             break;
         case TypeStorage.UInt32:
             writer.SetUInt32((uint) reader.GetInt32(index));
             break;
         case TypeStorage.UInt64:
             writer.SetUInt64((ulong) reader.GetInt64(index));
             break;
         case TypeStorage.DateTime:
             writer.SetDateTime(DateTime.Parse(reader.GetString(index), CultureInfo.InvariantCulture));
             //writer.SetDateTime(DateTime.ParseExact(reader.GetString(index), "s", CultureInfo.InvariantCulture));
             break;
         case TypeStorage.DateTimeEx:
             writer.SetDateTimeEx(DateTimeEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.DateEx:
             writer.SetDateEx(DateEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.TimeEx:
             writer.SetTimeEx(TimeEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.Decimal:
             {
                 var dtype = reader.GetFieldType(index);
                 decimal value;
                 if (dtype == typeof (string))
                 {
                     value = Decimal.Parse(reader.GetString(index), CultureInfo.InvariantCulture);
                 }
                 else
                 {
                     value = (decimal) reader.GetDouble(index);
                 }
                 writer.SetDecimal(value);
             }
             break;
         case TypeStorage.Float:
             writer.SetFloat((float) reader.GetDouble(index));
             break;
         case TypeStorage.Double:
             writer.SetDouble((double) reader.GetDouble(index));
             break;
         case TypeStorage.String:
             writer.SetString(reader.GetString(index));
             break;
         case TypeStorage.Guid:
             writer.SetGuid(new Guid(reader.GetString(index)));
             break;
         case TypeStorage.ByteArray:
             writer.SetByteArray((byte[]) reader.GetValue(index));
             break;
         case TypeStorage.Null:
             writer.SetNull();
             break;
         default:
             throw new Exception("DBSH-00167 Unsupported field type:" + type.ToString());
     }
 }
Esempio n. 27
0
 public void SetDateEx(DateEx value)
 {
     m_dateTimeExVal.DatePart = value;
     _type = TypeStorage.DateEx;
 }
Esempio n. 28
0
        public static DbTypeBase GetDatAdminType(this TypeStorage type)
        {
            switch (type)
            {
            case TypeStorage.Boolean:
                return(new DbTypeLogical());

            case TypeStorage.Byte:
                return(new DbTypeInt {
                    Bytes = 1, Unsigned = true
                });

            case TypeStorage.SByte:
                return(new DbTypeInt {
                    Bytes = 1, Unsigned = false
                });

            case TypeStorage.ByteArray:
                return(new DbTypeBlob());

            case TypeStorage.DateEx:
                return(new DbTypeDatetime {
                    SubType = DbDatetimeSubType.Date
                });

            case TypeStorage.DateTime:
                return(new DbTypeDatetime());

            case TypeStorage.DateTimeEx:
                return(new DbTypeDatetime());

            case TypeStorage.Decimal:
                return(new DbTypeNumeric());

            case TypeStorage.Double:
                return(new DbTypeFloat {
                    Bytes = 8
                });

            case TypeStorage.Float:
                return(new DbTypeFloat {
                    Bytes = 4
                });

            case TypeStorage.Guid:
                return(new DbTypeString());

            case TypeStorage.Int16:
                return(new DbTypeInt {
                    Bytes = 2, Unsigned = false
                });

            case TypeStorage.Int32:
                return(new DbTypeInt {
                    Bytes = 4, Unsigned = false
                });

            case TypeStorage.Int64:
                return(new DbTypeInt {
                    Bytes = 8, Unsigned = false
                });

            case TypeStorage.UInt16:
                return(new DbTypeInt {
                    Bytes = 2, Unsigned = true
                });

            case TypeStorage.UInt32:
                return(new DbTypeInt {
                    Bytes = 4, Unsigned = true
                });

            case TypeStorage.UInt64:
                return(new DbTypeInt {
                    Bytes = 8, Unsigned = true
                });

            case TypeStorage.String:
                return(new DbTypeString());

            case TypeStorage.TimeEx:
                return(new DbTypeDatetime {
                    SubType = DbDatetimeSubType.Time
                });
                //case TypeStorage.Array:
                //    return new DbTypeArray();
            }
            return(new DbTypeString());
        }
Esempio n. 29
0
        public static void ReadValue(SQLiteDataReader reader, int index, TypeStorage type, ICdlValueWriter writer)
        {
            switch (type)
            {
            case TypeStorage.Boolean:
                writer.SetBoolean(reader.GetInt32(index) != 0);
                break;

            case TypeStorage.Byte:
                writer.SetByte((byte)reader.GetInt32(index));
                break;

            case TypeStorage.Int16:
                writer.SetInt16((short)reader.GetInt32(index));
                break;

            case TypeStorage.Int32:
                writer.SetInt32((int)reader.GetInt32(index));
                break;

            case TypeStorage.Int64:
                writer.SetInt64((long)reader.GetInt64(index));
                break;

            case TypeStorage.SByte:
                writer.SetSByte((sbyte)reader.GetInt32(index));
                break;

            case TypeStorage.UInt16:
                writer.SetUInt16((ushort)reader.GetInt32(index));
                break;

            case TypeStorage.UInt32:
                writer.SetUInt32((uint)reader.GetInt32(index));
                break;

            case TypeStorage.UInt64:
                writer.SetUInt64((ulong)reader.GetInt64(index));
                break;

            case TypeStorage.DateTime:
                writer.SetDateTime(DateTime.Parse(reader.GetString(index), CultureInfo.InvariantCulture));
                //writer.SetDateTime(DateTime.ParseExact(reader.GetString(index), "s", CultureInfo.InvariantCulture));
                break;

            case TypeStorage.DateTimeEx:
                writer.SetDateTimeEx(DateTimeEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.DateEx:
                writer.SetDateEx(DateEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.TimeEx:
                writer.SetTimeEx(TimeEx.ParseNormalized(reader.GetString(index)));
                break;

            case TypeStorage.Decimal:
            {
                var     dtype = reader.GetFieldType(index);
                decimal value;
                if (dtype == typeof(string))
                {
                    value = Decimal.Parse(reader.GetString(index), CultureInfo.InvariantCulture);
                }
                else
                {
                    value = (decimal)reader.GetDouble(index);
                }
                writer.SetDecimal(value);
            }
            break;

            case TypeStorage.Float:
                writer.SetFloat((float)reader.GetDouble(index));
                break;

            case TypeStorage.Double:
                writer.SetDouble((double)reader.GetDouble(index));
                break;

            case TypeStorage.String:
                writer.SetString(reader.GetString(index));
                break;

            case TypeStorage.Guid:
                writer.SetGuid(new Guid(reader.GetString(index)));
                break;

            case TypeStorage.ByteArray:
                writer.SetByteArray((byte[])reader.GetValue(index));
                break;

            case TypeStorage.Null:
                writer.SetNull();
                break;

            default:
                throw new Exception("DBSH-00167 Unsupported field type:" + type.ToString());
            }
        }
Esempio n. 30
0
 public DataParseError(string data, TypeStorage type)
     : base(Texts.Get("s_cannot_convert$text$type", "text", data, "type", type), null)
 {
 }
Esempio n. 31
0
 public void SetInt64(long value)
 {
     m_intVal = value;
     _type = TypeStorage.Int64;
 }
Esempio n. 32
0
 public void SetBoolean(bool value)
 {
     m_intVal = value ? 1 : 0;
     _type = TypeStorage.Boolean;
 }
Esempio n. 33
0
 public BuilderPropertyData(PropertyInfo propertyInfo, TypeStorage storage) : base(propertyInfo, storage, true)
 {
 }
Esempio n. 34
0
 public DataParseError(string data, TypeStorage type)
     : base(String.Format("Cannot convert \"{0}\" to type {1}", data, type), null)
 {
 }
Esempio n. 35
0
 public void SetSByte(sbyte value)
 {
     m_intVal = value;
     _type = TypeStorage.SByte;
 }
Esempio n. 36
0
        //public void SetArray(Array value)
        //{
        //    m_arrayVal = value;
        //    m_type = TypeStorage.Array;
        //}

        public void SetNull()
        {
            _type = TypeStorage.Null;
        }
Esempio n. 37
0
 public void SetString(string value)
 {
     m_stringVal = value;
     _type = TypeStorage.String;
 }
Esempio n. 38
0
 public void SetUInt64(ulong value)
 {
     unchecked
     {
         m_intVal = (long)value;
         _type = TypeStorage.UInt64;
     }
 }
Esempio n. 39
0
 public void SetUInt32(uint value)
 {
     m_intVal = value;
     _type = TypeStorage.UInt32;
 }
Esempio n. 40
0
 public void ParseValue(string text, TypeStorage type, ICdlValueWriter writer)
 {
     foreach (string nulltext in m_settings.GetNullValues())
     {
         if (text == nulltext)
         {
             writer.SetNull();
             return;
         }
     }
     NumberStyles floatStyle = NumberStyles.Float | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowExponent;
     NumberStyles intStyle = NumberStyles.Integer | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite;
     NumberStyles decStyle = NumberStyles.Number | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowExponent;
     switch (type)
     {
         case TypeStorage.Null:
             writer.SetNull();
             break;
         case TypeStorage.Boolean:
             {
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else
                 {
                     bool? val = m_settings.ParseBoolean(text);
                     if (val != null) writer.SetBoolean(val.Value);
                     else writer.SetNull();
                 }
             }
             break;
         case TypeStorage.Byte:
             {
                 byte val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Byte.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetByte(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Int16:
             {
                 short val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Int16.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetInt16(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Int32:
             {
                 int val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Int32.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetInt32(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Int64:
             {
                 long val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Int64.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetInt64(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.SByte:
             {
                 sbyte val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (SByte.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetSByte(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.UInt16:
             {
                 ushort val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (UInt16.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetUInt16(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.UInt32:
             {
                 uint val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (UInt32.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetUInt32(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.UInt64:
             {
                 ulong val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (UInt64.TryParse(text, intStyle, m_numberFormat, out val))
                 {
                     writer.SetUInt64(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Float:
             {
                 float val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Single.TryParse(text, floatStyle, m_numberFormat, out val))
                 {
                     writer.SetFloat(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Double:
             {
                 double val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Double.TryParse(text, floatStyle, m_numberFormat, out val))
                 {
                     writer.SetDouble(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.Decimal:
             {
                 decimal val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (Decimal.TryParse(text, decStyle, m_numberFormat, out val))
                 {
                     writer.SetDecimal(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.DateTime:
             {
                 DateTime val;
                 if (IsNullTextTest(text))
                 {
                     writer.SetNull();
                 }
                 else if (DateTime.TryParseExact(text, m_settings.DateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out val))
                 {
                     writer.SetDateTime(val);
                 }
                 else if (DateTime.TryParse(text, CultureInfo.InvariantCulture, DateTimeStyles.None, out val))
                 {
                     writer.SetDateTime(val);
                 }
                 else
                 {
                     ParseError(text, type, writer);
                 }
             }
             break;
         case TypeStorage.DateTimeEx:
             if (IsNullTextTest(text))
             {
                 writer.SetNull();
             }
             else
             {
                 try
                 {
                     writer.SetDateTimeEx(DateTimeEx.Parse(text, m_settings.DateTimeFormat, CultureInfo.InvariantCulture));
                 }
                 catch
                 {
                     writer.SetDateTimeEx(DateTimeEx.FromDateTime(DateTime.Parse(text, CultureInfo.InvariantCulture)));
                 }
             }
             break;
         case TypeStorage.DateEx:
             if (IsNullTextTest(text))
             {
                 writer.SetNull();
             }
             else
             {
                 try
                 {
                     writer.SetDateEx(DateTimeEx.Parse(text, m_settings.DateFormat, CultureInfo.InvariantCulture).DatePart);
                 }
                 catch
                 {
                     writer.SetDateEx(DateTimeEx.FromDateTime(DateTime.Parse(text, CultureInfo.InvariantCulture)).DatePart);
                 }
             }
             break;
         case TypeStorage.TimeEx:
             if (IsNullTextTest(text))
             {
                 writer.SetNull();
             }
             else
             {
                 try
                 {
                     writer.SetTimeEx(DateTimeEx.Parse(text, m_settings.TimeFormat, CultureInfo.InvariantCulture).TimePart);
                 }
                 catch
                 {
                     writer.SetTimeEx(DateTimeEx.FromDateTime(DateTime.Parse(text, CultureInfo.InvariantCulture)).TimePart);
                 }
             }
             break;
         case TypeStorage.ByteArray:
             if (IsNullTextTest(text))
             {
                 writer.SetNull();
             }
             else if (text.EndsWith("=")) 
             {
                 writer.SetByteArray(Convert.FromBase64String(text.Replace("=", "")));
             }
             else
             {
                 writer.SetNull();
             }
             break;
         case TypeStorage.Guid:
             if (IsNullTextTest(text))
             {
                 writer.SetNull();
             }
             else
             {
                 writer.SetGuid(new Guid(text));
             }
             break;
         case TypeStorage.String:
             writer.SetString(text);
             break;
         //case TypeStorage.Array:
         //    writer.SetArray(CdlArray.Parse(text));
         //    break;
     }
 }
Esempio n. 41
0
 public static void SetRealValue(this ICdlValueWriter writer, TypeStorage type, double value)
 {
     switch (type)
     {
         case TypeStorage.Byte:
             writer.SetByte((byte)value);
             break;
         case TypeStorage.Int16:
             writer.SetInt16((short)value);
             break;
         case TypeStorage.Int32:
             writer.SetInt32((int)value);
             break;
         case TypeStorage.Int64:
             writer.SetInt64((long)value);
             break;
         case TypeStorage.SByte:
             writer.SetSByte((sbyte)value);
             break;
         case TypeStorage.UInt16:
             writer.SetUInt16((ushort)value);
             break;
         case TypeStorage.UInt32:
             writer.SetUInt32((uint)value);
             break;
         case TypeStorage.UInt64:
             writer.SetUInt64((ulong)value);
             break;
         case TypeStorage.Float:
             writer.SetFloat((float)value);
             break;
         case TypeStorage.Double:
             writer.SetDouble((double)value);
             break;
         case TypeStorage.Decimal:
             writer.SetDecimal((decimal)value);
             break;
     }
 }
Esempio n. 42
0
        public static void ReadValue(this IBedValueWriter writer, BinaryReader stream)
        {
            TypeStorage storage = (TypeStorage)stream.ReadByte();

            switch (storage)
            {
            case TypeStorage.Null:
                writer.SetNull();
                break;

            case TypeStorage.Boolean:
                writer.SetBoolean(stream.ReadBoolean());
                break;

            case TypeStorage.Byte:
                writer.SetByte(stream.ReadByte());
                break;

            case TypeStorage.Int16:
                writer.SetInt16(stream.ReadInt16());
                break;

            case TypeStorage.Int32:
                writer.SetInt32(stream.ReadInt32());
                break;

            case TypeStorage.Int64:
                writer.SetInt64(stream.ReadInt64());
                break;

            case TypeStorage.SByte:
                writer.SetSByte(stream.ReadSByte());
                break;

            case TypeStorage.UInt16:
                writer.SetUInt16(stream.ReadUInt16());
                break;

            case TypeStorage.UInt32:
                writer.SetUInt32(stream.ReadUInt32());
                break;

            case TypeStorage.UInt64:
                writer.SetUInt64(stream.ReadUInt64());
                break;

            case TypeStorage.Float:
                writer.SetFloat(stream.ReadSingle());
                break;

            case TypeStorage.Double:
                writer.SetDouble(stream.ReadDouble());
                break;

            case TypeStorage.Decimal:
                writer.SetDecimal(stream.ReadDecimal());
                break;

            case TypeStorage.DateTime:
                writer.SetDateTime(DateTime.FromBinary(stream.ReadInt64()));
                break;

            case TypeStorage.DateTimeEx:
                writer.SetDateTimeEx(DateTimeEx.FromStream(stream));
                break;

            case TypeStorage.DateEx:
                writer.SetDateEx(DateEx.FromStream(stream));
                break;

            case TypeStorage.TimeEx:
                writer.SetTimeEx(TimeEx.FromStream(stream));
                break;

            case TypeStorage.ByteArray:
            {
                int len = stream.Read7BitEncodedInt();
                writer.SetByteArray(stream.ReadBytes(len));
            }
            break;

            case TypeStorage.Guid:
                writer.SetGuid(new Guid(stream.ReadBytes(16)));
                break;

            case TypeStorage.String:
                writer.SetString(stream.ReadString());
                break;
                //case TypeStorage.Array:
                //    writer.SetArray(BedArray.FromStream(stream, true));
                //    break;
            }
        }
Esempio n. 43
0
 public void SetFloat(float value)
 {
     m_floatVal = value;
     _type = TypeStorage.Float;
 }
Esempio n. 44
0
        public Context(TypeStorage types)
        {
            this.Types = types;

            NotImplementedTypes = new List <TypeInfo>();
        }
Esempio n. 45
0
 public void WriteErrorDefault(TypeStorage type, ICdlValueWriter writer)
 {
     if (type.IsNumber()) writer.SetIntegerValue(type, m_defaultNumber);
     else if (type.IsDateRelated()) writer.SetDateTimeValue(type, m_defaultDateTime);
     else if (type == TypeStorage.Boolean) writer.SetBoolean(m_defautlLogical);
     else writer.SetNull();
 }
Esempio n. 46
0
 public static void SetDateTimeValue(this ICdlValueWriter writer, TypeStorage type, DateTimeEx value)
 {
     switch (type)
     {
         case TypeStorage.DateEx:
             writer.SetDateEx(value.DatePart);
             break;
         case TypeStorage.TimeEx:
             writer.SetTimeEx(value.TimePart);
             break;
         case TypeStorage.DateTime:
             writer.SetDateTime(value.AsDateTime);
             break;
         case TypeStorage.DateTimeEx:
             writer.SetDateTimeEx(value);
             break;
     }
 }
Esempio n. 47
0
 public void SetDateTime(DateTime value)
 {
     m_dateTimeVal = value;
     _type = TypeStorage.DateTime;
 }
Esempio n. 48
0
 public void SetDecimal(decimal value)
 {
     m_decimalVal = value;
     _type = TypeStorage.Decimal;
 }
Esempio n. 49
0
 public void SetByte(byte value)
 {
     m_intVal = value;
     _type = TypeStorage.Byte;
 }
Esempio n. 50
0
        public static Type GetDotNetType(this TypeStorage type, bool allowDAExtensions)
        {
            switch (type)
            {
            case TypeStorage.Boolean:
                return(typeof(bool));

            case TypeStorage.Byte:
                return(typeof(byte));

            case TypeStorage.SByte:
                return(typeof(sbyte));

            case TypeStorage.ByteArray:
                return(typeof(byte[]));

            case TypeStorage.DateEx:
                return(allowDAExtensions ? typeof(DateEx) : typeof(DateTime));

            case TypeStorage.DateTime:
                return(typeof(DateTime));

            case TypeStorage.DateTimeEx:
                return(allowDAExtensions ? typeof(DateTimeEx) : typeof(DateTime));

            case TypeStorage.Decimal:
                return(typeof(decimal));

            case TypeStorage.Double:
                return(typeof(double));

            case TypeStorage.Float:
                return(typeof(float));

            case TypeStorage.Guid:
                return(typeof(Guid));

            case TypeStorage.Int16:
                return(typeof(short));

            case TypeStorage.Int32:
                return(typeof(int));

            case TypeStorage.Int64:
                return(typeof(long));

            case TypeStorage.UInt16:
                return(typeof(ushort));

            case TypeStorage.UInt32:
                return(typeof(uint));

            case TypeStorage.UInt64:
                return(typeof(ulong));

            case TypeStorage.String:
                return(typeof(string));

            case TypeStorage.TimeEx:
                return(allowDAExtensions ? typeof(TimeEx) : typeof(DateTime));

            case TypeStorage.Null:
                return(typeof(DBNull));
                //case TypeStorage.Array:
                //    throw new InternalError("DAE-00055 TypeTool.GetDotNetType: Type array has not .NET representation");
            }
            return(typeof(string));
        }
Esempio n. 51
0
 public void SetTimeEx(TimeEx value)
 {
     m_dateTimeExVal.TimePart = value;
     _type = TypeStorage.TimeEx;
 }
Esempio n. 52
0
 public DataParseError(string data, TypeStorage type)
     : base(String.Format("Cannot convert \"{0}\" to type {1}", data, type), null)
 {
 }
Esempio n. 53
0
 public void SetInt32(int value)
 {
     m_intVal = value;
     _type = TypeStorage.Int32;
 }
Esempio n. 54
0
			public CecilProjectContent(TypeStorage types, string assemblyName, IList<IAttribute> assemblyAttributes, IDocumentationProvider documentationProvider)
				: base(types)
			{
				Debug.Assert(assemblyName != null);
				Debug.Assert(assemblyAttributes != null);
				this.assemblyName = assemblyName;
				this.assemblyAttributes = assemblyAttributes;
				this.documentationProvider = documentationProvider;
			}
Esempio n. 55
0
 public void SetUInt16(ushort value)
 {
     m_intVal = value;
     _type = TypeStorage.UInt16;
 }
Esempio n. 56
0
 public void SetDouble(double value)
 {
     m_doubleVal = value;
     _type = TypeStorage.Double;
 }
Esempio n. 57
0
 public void SetGuid(Guid value)
 {
     m_guidVal = value;
     _type = TypeStorage.Guid;
 }
Esempio n. 58
0
 public OperatorPass(TypeStorage types, ILogger logger)
     : base(types, logger)
 {
 }
Esempio n. 59
0
 public void SetByteArray(byte[] value)
 {
     m_byteArrayVal = value;
     _type = TypeStorage.ByteArray;
 }