public void UpdateSortNames_OnlyPrimaryName() { nameManager.Add(new LocalizedStringWithId("VocaliodP", ContentLanguageSelection.English)); nameManager.Add(new LocalizedStringWithId("ぼーかりおどP", ContentLanguageSelection.Japanese)); nameManager.UpdateSortNames(); Assert.AreEqual("VocaliodP", nameManager.SortNames[ContentLanguageSelection.English], "Primary English name"); Assert.AreEqual("ぼーかりおどP", nameManager.SortNames[ContentLanguageSelection.Japanese], "Primary Japanese name"); Assert.AreEqual("VocaliodP", nameManager.SortNames[ContentLanguageSelection.Romaji], "Primary Romaji name"); }
public void UseEnglishIfDefaultLanguage() { var nameManager = new NameManager <LocalizedStringWithId>(); nameManager.SortNames.DefaultLanguage = ContentLanguageSelection.English; nameManager.Add(new LocalizedStringWithId("Japanese name", ContentLanguageSelection.Japanese)); nameManager.Add(new LocalizedStringWithId("Romaji name", ContentLanguageSelection.Romaji)); nameManager.Add(new LocalizedStringWithId("English name", ContentLanguageSelection.English)); nameManager.UpdateSortNames(); var result = UrlFriendlyNameFactory.GetUrlFriendlyName(nameManager); result.Should().Be("english-name"); }
public void PreferRomajiForJapanese() { var nameManager = new NameManager <LocalizedStringWithId>(); nameManager.SortNames.DefaultLanguage = ContentLanguageSelection.Japanese; nameManager.Add(new LocalizedStringWithId("Japanese name", ContentLanguageSelection.Japanese)); nameManager.Add(new LocalizedStringWithId("Romaji name", ContentLanguageSelection.Romaji)); nameManager.Add(new LocalizedStringWithId("English name", ContentLanguageSelection.English)); nameManager.UpdateSortNames(); var result = UrlFriendlyNameFactory.GetUrlFriendlyName(nameManager); Assert.AreEqual("romaji-name", result); }
public BSYMMGR() { this.tableGlobal = new SYMTBL(); _symFactory = new SymFactory(this.tableGlobal); this.tableTypeArrays = new Dictionary <TypeArrayKey, TypeArray>(); _rootNS = _symFactory.CreateNamespace(NameManager.Lookup(""), null); //////////////////////////////////////////////////////////////////////////////// // Build the data structures needed to make FPreLoad fast. Make sure the // namespaces are created. Compute and sort hashes of the NamespaceSymbol * value and type // name (sans arity indicator). for (int i = 0; i < (int)PredefinedType.PT_COUNT; ++i) { NamespaceSymbol ns = GetRootNS(); string name = PredefinedTypeFacts.GetName((PredefinedType)i); int start = 0; while (start < name.Length) { int iDot = name.IndexOf('.', start); if (iDot == -1) { break; } string sub = (iDot > start) ? name.Substring(start, iDot - start) : name.Substring(start); Name nm = NameManager.Add(sub); ns = LookupGlobalSymCore(nm, ns, symbmask_t.MASK_NamespaceSymbol) as NamespaceSymbol ?? _symFactory.CreateNamespace(nm, ns); start += sub.Length + 1; } } }
public LocalizedStringWithId CreateName(string val, ContentLanguageSelection language) { var name = new LocalizedStringWithId(val, language); nameManager.Add(name); return(name); }
public override void Add(IPackage pck) { if (!this.Packages.Keys.Contains(pck.Name)) { var pckinfo = pck.PackageInfo; pckinfo.FID = this.NameManager.NextFID(); pckinfo.FileName = string.Format("{0}{1}{2}", InputDic, Project.Name, pckinfo.FileExtension); pckinfo.WorkDirectory = this.WorkDirectory; pck.FileName = pckinfo.FileName; pck.Owner = this; pck.Clear(); pck.Initialize(); pck.New(); Packages.Add(pck.Name, pck); NameManager.Add(pckinfo); MFOutputPackage mfout = this.Select(MFOutputPackage.PackageName) as MFOutputPackage; (pck as IMFPackage).CompositeOutput(mfout); if (this.Owner != null) { Owner.OnPackageAdded(pck); } else { this.OnPackageAdded(pck); } } }
private LocalizedStringWithId AddName(string name, ContentLanguageSelection lang = ContentLanguageSelection.English) { var str = new LocalizedStringWithId(name, lang) { Id = id++ }; nameManager.Add(str); return(str); }
public Name GetNameFromPtrs(object u1, object u2) { // Note: this won't produce the same names as the native logic if (u2 != null) { return(NameManager.Add(string.Format(CultureInfo.InvariantCulture, "{0:X}-{1:X}", u1.GetHashCode(), u2.GetHashCode()))); } else { return(NameManager.Add(string.Format(CultureInfo.InvariantCulture, "{0:X}", u1.GetHashCode()))); } }
public ArrayType GetArray(CType elementType, int args, bool isSZArray) { Name name; Debug.Assert(args > 0 && args < 32767); Debug.Assert(args == 1 || !isSZArray); switch (args) { case 1: if (isSZArray) { goto case 2; } else { goto default; } case 2: name = NameManager.GetPredefinedName(PredefinedName.PN_ARRAY0 + args); break; default: name = NameManager.Add("[X" + args + 1); break; } // See if we already have an array type of this element type and rank. ArrayType pArray = _typeTable.LookupArray(name, elementType); if (pArray == null) { // No existing array symbol. Create a new one. pArray = _typeFactory.CreateArray(name, elementType, args, isSZArray); pArray.InitFromParent(); _typeTable.InsertArray(name, elementType, pArray); } else { Debug.Assert(pArray.HasErrors() == elementType.HasErrors()); } Debug.Assert(pArray.rank == args); Debug.Assert(pArray.GetElementType() == elementType); return(pArray); }
public BSYMMGR(NameManager nameMgr, TypeManager typeManager) { this.m_nameTable = nameMgr; this.tableGlobal = new SYMTBL(); _symFactory = new SymFactory(this.tableGlobal, this.m_nameTable); _miscSymFactory = new MiscSymFactory(this.tableGlobal); this.ssetAssembly = new List <AidContainer>(); _infileUnres = new InputFile(); _infileUnres.isSource = false; _infileUnres.SetAssemblyID(KAID.kaidUnresolved); this.ssetAssembly.Add(new AidContainer(_infileUnres)); this.bsetGlobalAssemblies = new HashSet <KAID>(); this.bsetGlobalAssemblies.Add(KAID.kaidThisAssembly); this.tableTypeArrays = new Dictionary <TypeArrayKey, TypeArray>(); _rootNS = _symFactory.CreateNamespace(m_nameTable.Add(""), null); GetNsAid(_rootNS, KAID.kaidGlobal); }
//////////////////////////////////////////////////////////////////////////////// // Build the data structures needed to make FPreLoad fast. Make sure the // namespaces are created. Compute and sort hashes of the NamespaceSymbol * value and type // name (sans arity indicator). private void InitPreLoad() { for (int i = 0; i < (int)PredefinedType.PT_COUNT; ++i) { NamespaceSymbol ns = GetRootNS(); string name = PredefinedTypeFacts.GetName((PredefinedType)i); int start = 0; while (start < name.Length) { int iDot = name.IndexOf('.', start); if (iDot == -1) { break; } string sub = (iDot > start) ? name.Substring(start, iDot - start) : name.Substring(start); Name nm = NameManager.Add(sub); ns = LookupGlobalSymCore(nm, ns, symbmask_t.MASK_NamespaceSymbol) as NamespaceSymbol ?? _symFactory.CreateNamespace(nm, ns); start += sub.Length + 1; } } }
private void AddName(string name, ContentLanguageSelection lang) { nameManager.Add(new LocalizedStringWithId(name, lang)); }