public string Render(DefEnum e)
        {
            var template = StringTemplateManager.Ins.GetTemplate("common/cs/enum");
            var result   = template.Render(e);

            return(result);
        }
        public override string Render(DefEnum e)
        {
            var template = StringTemplateManager.Ins.GetTemplate($"common/{CommonRenderTemplateDir}/enum");
            var result   = template.RenderCode(e);

            return(result);
        }
示例#3
0
        public string Render(DefEnum e)
        {
            // ue 不允许 UEnum 为这
            // ue 强制枚举underling type 为 uint8, 意味着不能超过255
            var template = t_enumRender ??= Template.Parse(@"
#pragma once
#include ""CoreMinimal.h""

#include ""{{ue_bp_header_file_name_without_suffix}}.generated.h""

UENUM(BlueprintType)
enum class {{ue_bp_full_name}} : uint8
{
    {{if !contains_value_equal0_item}}
    __DEFAULT__ = 0,
    {{end}}
    {{if contains_any_ue_enum_compatible_item}}
    {{- for item in items }}
    {{if item.int_value >= 256}}//{{end}} {{item.name}} = {{item.value}}     UMETA(DisplayName = ""{{item.alias_or_name}}""),
    {{-end}}
    {{else}}
    DUMMY UMETA(DisplayName = ""DUMMY""),
    {{end}}
};

");
            var result   = template.Render(e);

            return(result);
        }
示例#4
0
        public static string RenderJavaEnumClass(DefEnum e)
        {
            var template = t_javaEnumRender ??= Template.Parse(@"
package {{namespace_with_top_module}};

public enum {{name}}
{
    {{~ for item in items ~}}
    {{item.name}}({{item.value}}),
    {{~end~}}
    ;

    private final int value;

    public int getValue() {
        return value;
    }

    {{name}}(int value) {
        this.value = value;
    }

    public static {{name}} valueOf(int value) {
    {{~ for item in items ~}}
        if (value == {{item.value}}) return {{item.name}};
    {{~end~}}
        throw new IllegalArgumentException("""");
    }
}

");
            var result   = template.Render(e);

            return(result);
        }
示例#5
0
        private string Render(DefEnum e)
        {
            var template = StringTemplateManager.Ins.GetTemplate("common/typescript/enum");
            var result   = template.Render(e);

            return(result);
        }
        public override string Render(DefEnum e)
        {
            var template = t_enumRender ??= Template.Parse(@"
#pragma once
#include ""CoreMinimal.h""

namespace editor
{

{{cpp_namespace_begin}}

    enum class {{ue_fname}}
    {
        {{~for item in items ~}}
        {{item.name}} = {{item.value}},
        {{~end~}}
    };

    bool X6PROTOEDITOR_API {{ue_fname}}ToString({{ue_fname}} value, FString& s);
    bool X6PROTOEDITOR_API {{ue_fname}}FromString(const FString& s, {{ue_fname}}& x);

{{cpp_namespace_end}}

}
");
            var result   = template.Render(e);

            return(result);
        }
示例#7
0
        public override string Render(DefEnum e)
        {
            var template = t_tsEnumRender ??= Template.Parse(@"
class {{py_full_name}}(Enum):
    {{~ for item in items ~}}
    {{item.name}} = {{item.value}}
    {{~end~}}
    {{~if (items == empty)~}}
    pass
    {{~end~}}
");
            var result   = template.Render(e);

            return(result);
        }
示例#8
0
        public override string Render(DefEnum e)
        {
            var template = t_tsEnumRender ??= Template.Parse(@"
namespace {{namespace}} {
export enum {{name}} {
    {{- for item in items }}
    {{item.name}} = {{item.value}},
    {{-end}}
}
}

");
            var result   = template.Render(e);

            return(result);
        }
示例#9
0
        public static string RenderCppEnumClass(DefEnum e)
        {
            var template = t_cppEnumRender ??= Template.Parse(@"
{{cpp_namespace_begin}}

enum class {{name}}
{
    {{~ for item in items ~}}
    {{item.name}} = {{item.value}},
    {{~end~}}
};
{{cpp_namespace_end}}
");
            var result   = template.Render(e);

            return(result);
        }
示例#10
0
        public static string RenderTsEnumClass(DefEnum e)
        {
            var template = t_tsEnumRender ??= Template.Parse(@"
namespace {{namespace_with_top_module}}
{
    export enum {{name}}
    {
        {{- for item in items }}
        {{item.name}} = {{item.value}},
        {{-end}}
    }
}


");
            var result   = template.Render(e);

            return(result);
        }
示例#11
0
        public string Render(DefEnum e)
        {
            string package = "cfg";

            var template = t_enumRender ??= Template.Parse(@"
package {{package}}

const (
    {{- for item in x.items }}
    {{x.go_full_name}}_{{item.name}} = {{item.value}}
    {{-end}}
)

");
            var result   = template.RenderCode(e, new Dictionary <string, object>()
            {
                ["package"] = package
            });

            return(result);
        }
示例#12
0
        public static string RenderCsEnumClass(DefEnum e)
        {
            var template = t_enumRender ??= Template.Parse(@"
namespace {{namespace_with_top_module}}
{
    {{-if is_flags}}
    [System.Flags]
    {{-end}}
    public enum {{name}}
    {
        {{~ for item in items ~}}
        {{item.name}} = {{item.value}},
        {{~end~}}
    }
}


");
            var result   = template.Render(e);

            return(result);
        }
示例#13
0
        //, bool inProtectedTypesProxy)
        //public void IncAddEnum(DefEnum enm, IndentStringBuilder sb)
        //{
        //    IncAddEnum(enm, sb, false);
        //}
        public void IncAddEnum(DefEnum enm, IndentStringBuilder sb)
        {
            if (enm.Name[0] == '@')
                return;

            if (enm.HasAttribute<FlagsEnumAttribute>())
            {
                sb.AppendLine("[Flags]");
            }

            sb.AppendIndent("");
            if (!enm.IsNested)
                sb.Append("public ");
            else
                sb.Append(Producer.GetProtectionString(enm.ProtectionType) + ": ");

            //if (inProtectedTypesProxy)
                //sb.Append("enum " + enm.Name + "\n");
            //else
                sb.Append("enum class " + enm.CLRName + "\n");

            sb.AppendLine("{");
            sb.IncreaseIndent();
            for (int i=0; i < enm.CLREnumValues.Length; i++)
            {
                string value = enm.NativeEnumValues[i];
                sb.AppendIndent("");
                //if (inProtectedTypesProxy)
                //{
                //    value = enm.ParentFullNativeName + "::" + enm.CLREnumValues[i];
                //    sb.Append("PUBLIC_");
                //}

                sb.Append(enm.CLREnumValues[i] + " = " + value);
                if (i < enm.CLREnumValues.Length - 1)
                    sb.Append(",");
                sb.Append("\n");
            }
            sb.DecreaseIndent();
            sb.AppendLine("};\n");
        }
示例#14
0
 public static TEnum Create(bool isNullable, DefEnum defEnum, Dictionary <string, string> tags)
 {
     return(new TEnum(isNullable, DefUtil.MergeTags(defEnum.Tags, tags), defEnum));
 }
示例#15
0
 public override string Render(DefEnum c)
 {
     return(RenderUtil.RenderJavaEnumClass(c));
 }
示例#16
0
 public string Render(DefEnum e)
 {
     return("// enum");
 }
示例#17
0
 private TEnum(bool isNullable, Dictionary <string, string> tags, DefEnum defEnum) : base(isNullable, tags)
 {
     this.DefineEnum = defEnum;
 }
示例#18
0
 protected override string Render(DefEnum e)
 {
     throw new System.NotImplementedException();
 }
示例#19
0
 public abstract string Render(DefEnum c);
示例#20
0
 public TEnum(DefEnum defEnum, bool isNullable) : base(isNullable)
 {
     this.DefineEnum = defEnum;
 }
示例#21
0
 public string Render(DefEnum e)
 {
     return(RenderUtil.RenderCsEnumClass(e));
 }
示例#22
0
 protected abstract string Render(DefEnum e);