From f3949f9c721c3f0614658dd43233bbecd23be3b0 Mon Sep 17 00:00:00 2001 From: yxy Date: Thu, 3 Feb 2022 13:43:40 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91EmmeLua?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=B3=A8=E8=A7=A3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Source/Defs/TTypeTemplateCommonExtends.cs | 5 + .../TypeVisitors/EmmeLuaCommentTypeVisitor.cs | 124 ++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 src/Luban.Job.Common/Source/TypeVisitors/EmmeLuaCommentTypeVisitor.cs diff --git a/src/Luban.Job.Common/Source/Defs/TTypeTemplateCommonExtends.cs b/src/Luban.Job.Common/Source/Defs/TTypeTemplateCommonExtends.cs index 159f25b..f7ed09a 100644 --- a/src/Luban.Job.Common/Source/Defs/TTypeTemplateCommonExtends.cs +++ b/src/Luban.Job.Common/Source/Defs/TTypeTemplateCommonExtends.cs @@ -100,6 +100,11 @@ namespace Luban.Job.Common.Defs { return type.Apply(LuaCommentTypeVisitor.Ins); } + + public static string EmmeLuaCommentType(TType type) + { + return type.Apply(EmmeLuaCommentTypeVisitor.Ins); + } public static string LuaSerializeWhileNil(string bufName, string fieldName, TType type) { diff --git a/src/Luban.Job.Common/Source/TypeVisitors/EmmeLuaCommentTypeVisitor.cs b/src/Luban.Job.Common/Source/TypeVisitors/EmmeLuaCommentTypeVisitor.cs new file mode 100644 index 0000000..1b0a661 --- /dev/null +++ b/src/Luban.Job.Common/Source/TypeVisitors/EmmeLuaCommentTypeVisitor.cs @@ -0,0 +1,124 @@ +using Luban.Job.Common.Types; + +namespace Luban.Job.Common.TypeVisitors +{ + public class EmmeLuaCommentTypeVisitor : ITypeFuncVisitor + { + public static EmmeLuaCommentTypeVisitor Ins { get; } = new EmmeLuaCommentTypeVisitor(); + + public string Accept(TBool type) + { + return "boolean"; + } + + public string Accept(TByte type) + { + return "number"; + } + + public string Accept(TShort type) + { + return "number"; + } + + public string Accept(TFshort type) + { + return "number"; + } + + public string Accept(TInt type) + { + return "number"; + } + + public string Accept(TFint type) + { + return "number"; + } + + public string Accept(TLong type) + { + return "number"; + } + + public string Accept(TFlong type) + { + return "number"; + } + + public string Accept(TFloat type) + { + return "number"; + } + + public string Accept(TDouble type) + { + return "number"; + } + + public string Accept(TEnum type) + { + return type.DefineEnum.FullName; + } + + public string Accept(TString type) + { + return "string"; + } + + public string Accept(TBytes type) + { + return $"string"; + } + + public string Accept(TText type) + { + return "string"; + } + + public string Accept(TBean type) + { + return type.Bean.FullName; + } + + public string Accept(TArray type) + { + return $"{type.ElementType.Apply(this)}[]"; + } + + public string Accept(TList type) + { + return $"{type.ElementType.Apply(this)}[]"; + } + + public string Accept(TSet type) + { + return $"{type.ElementType.Apply(this)}[]"; + } + + public string Accept(TMap type) + { + return $"table<{type.KeyType.Apply(this)},{type.ValueType.Apply(this)}>"; + } + + public string Accept(TVector2 type) + { + return "vector2"; + } + + public string Accept(TVector3 type) + { + return "vector3"; + } + + public string Accept(TVector4 type) + { + return "vector4"; + } + + public string Accept(TDateTime type) + { + return "number"; + } + } +}