Merge pull request #7 from youngself/develop

【新增】生成EmmeLua文档类型接口
main
walon 2022-02-03 22:28:22 +08:00 committed by GitHub
commit 0122d97071
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 129 additions and 0 deletions

View File

@ -100,6 +100,11 @@ namespace Luban.Job.Common.Defs
{
return type.Apply(LuaCommentTypeVisitor.Ins);
}
public static string EmmyLuaCommentType(TType type)
{
return type.Apply(EmmyLuaCommentTypeVisitor.Ins);
}
public static string LuaSerializeWhileNil(string bufName, string fieldName, TType type)
{

View File

@ -0,0 +1,124 @@
using Luban.Job.Common.Types;
namespace Luban.Job.Common.TypeVisitors
{
public class EmmyLuaCommentTypeVisitor : ITypeFuncVisitor<string>
{
public static EmmyLuaCommentTypeVisitor Ins { get; } = new EmmyLuaCommentTypeVisitor();
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";
}
}
}