예제 #1
0
        public AbcNamespaceSet DefineNamespaceSet(params AbcNamespace[] list)
        {
            string key = AbcNamespaceSet.KeyOf(list);
            var    nss = NamespaceSets[key];

            if (nss != null)
            {
                return(nss);
            }
            nss = new AbcNamespaceSet(list, key);
            NamespaceSets.Add(nss);
            return(nss);
        }
예제 #2
0
        public AbcMultiname DefineMultiname(AbcConstKind kind, AbcNamespaceSet nss)
        {
            string key = AbcMultiname.KeyOf(kind, nss);
            var    mn  = Multinames[key];

            if (mn != null)
            {
                return(mn);
            }
            mn = new AbcMultiname(kind, nss)
            {
                Key = key
            };
            Multinames.Add(mn);
            return(mn);
        }
예제 #3
0
 public AbcMultiname(AbcConstKind kind, AbcNamespaceSet nss)
 {
     Kind         = kind;
     NamespaceSet = nss;
 }
예제 #4
0
 public AbcMultiname(AbcConstKind kind, AbcNamespaceSet nss, AbcConst <string> name)
 {
     Kind         = kind;
     NamespaceSet = nss;
     Name         = name;
 }
예제 #5
0
 public static string KeyOf(AbcConstKind kind, AbcNamespaceSet nss)
 {
     return(nss.Key + (int)kind);
 }
예제 #6
0
 public static string KeyOf(AbcConstKind kind, AbcNamespaceSet nss, AbcConst <string> name)
 {
     return("{" + nss.Key + "}." + name.Value + (int)kind);
 }
예제 #7
0
 /// <summary>
 /// Imports <see cref="AbcNamespaceSet"/> constant.
 /// </summary>
 /// <param name="set">constant to import.</param>
 /// <returns></returns>
 public AbcNamespaceSet ImportConst(AbcNamespaceSet set)
 {
     return(NamespaceSets.Import(set));
 }
예제 #8
0
        public AbcMultiname DefineMultiname(AbcConstKind kind, AbcNamespaceSet nss, string name)
        {
            var c = DefineString(name);

            return(DefineMultiname(kind, nss, c));
        }