Exemple #1
0
        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");
        }
Exemple #2
0
            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);
            }
Exemple #4
0
        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);
        }
Exemple #8
0
 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())));
     }
 }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        ////////////////////////////////////////////////////////////////////////////////
        // 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;
                }
            }
        }
Exemple #12
0
 private void AddName(string name, ContentLanguageSelection lang)
 {
     nameManager.Add(new LocalizedStringWithId(name, lang));
 }