private void DefineItem(CodeWriter writer) { if (Info?.Value == null) { return; } switch (Info.Value) { case double v: writer.NewLine(); if ((int)v == v) { writer.Write($"const int {Name}({v});"); } else if ((long)v == v) { writer.Write($"const int64_t {Name}({v});"); } else { writer.Write($"const double {Name}({v});"); } break; case bool v: writer.NewLine(); writer.Write($"const bool {Name}(" + (v ? "true" : "false") + ");"); break; case string v: writer.NewLine(); writer.Write($"inline e::system::string {Name}()"); using (writer.NewBlock()) { writer.NewLine(); writer.Write("return "); writer.WriteLiteral(v); writer.Write(";"); } break; case DateTime v: writer.NewLine(); writer.Write($"const e::system::datetime {Name}({v.ToOADate()}/*{v.ToString("yyyyMMddTHHmmss")}*/);"); break; case byte[] v: writer.NewLine(); writer.Write($"e::system::bin {Name}();"); break; default: throw new Exception(); } }