Exemple #1
0
        public void FillTranslatorTaggedUnionTo(Dictionary <String, TypeDef> VersionedNameToType, TaggedUnionDef tu, List <String> l, String NamespaceName)
        {
            var            Name   = tu.FullName();
            TaggedUnionDef tuHead = null;

            if (VersionedNameToType.ContainsKey(Name))
            {
                var tHead = VersionedNameToType[Name];
                if (tHead.OnTaggedUnion)
                {
                    tuHead = tHead.TaggedUnion;
                }
            }
            var VersionedSimpleName = tu.GetTypeSpec().SimpleName(NamespaceName);
            var TypeString          = GetTypeString(Nonversioned(tu.GetTypeSpec()), NamespaceName);
            var VersionedTypeString = GetTypeString(tu.GetTypeSpec(), NamespaceName);

            if (tuHead == null)
            {
                FillTranslatorTaggedUnionTo(VersionedSimpleName, TypeString, VersionedTypeString, tu.Alternatives, new List <VariableDef> {
                }, l, true, NamespaceName);
            }
            else
            {
                FillTranslatorTaggedUnionTo(VersionedSimpleName, TypeString, VersionedTypeString, tu.Alternatives, tuHead.Alternatives, l, false, NamespaceName);
            }
        }
Exemple #2
0
 public IEnumerable <String> BinaryTranslator_TaggedUnion(TaggedUnionDef tu, String NamespaceName)
 {
     foreach (var _Line in Combine(Begin(), BinaryTranslator_TaggedUnion(tu.GetTypeSpec().SimpleName(NamespaceName), GetTypeString(tu.GetTypeSpec(), NamespaceName), GetSuffixedTypeName(tu.Name, tu.Version, "Tag", NamespaceName), GetSuffixedTypeString(tu.Name, tu.Version, "Tag", NamespaceName), tu.Alternatives, NamespaceName)))
     {
         yield return(_Line);
     }
 }
Exemple #3
0
 public IEnumerable <String> JsonTranslator_TaggedUnion(TaggedUnionDef tu, String NamespaceName)
 {
     foreach (var _Line in Combine(Begin(), JsonTranslator_TaggedUnion(tu.GetTypeSpec().SimpleName(NamespaceName), GetTypeString(tu.GetTypeSpec(), NamespaceName), tu.Alternatives, NamespaceName)))
     {
         yield return(_Line);
     }
 }