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); } }
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); } }
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); } }