예제 #1
0
 NamespaceTypeName/*?*/ ParseNamespaceTypeName() {
   if (this.CurrentTypeNameTokenKind != TypeNameTokenKind.Identifier) {
     return null;
   }
   IName lastName = this.CurrentIdentifierInfo;
   NamespaceName/*?*/ currNsp = null;
   this.NextToken(false);
   while (this.CurrentTypeNameTokenKind == TypeNameTokenKind.Dot) {
     this.NextToken(false);
     if (this.CurrentTypeNameTokenKind != TypeNameTokenKind.Identifier) {
       return null;
     }
     currNsp = new NamespaceName(this.NameTable, currNsp, lastName);
     lastName = this.CurrentIdentifierInfo;
     this.NextToken(false);
   }
   return new NamespaceTypeName(this.NameTable, currNsp, lastName);
 }
예제 #2
0
 internal NamespaceTypeName(INameTable nameTable, NamespaceName/*?*/ namespaceName, IName name) {
   this.NamespaceName = namespaceName;
   this.Name = name;
   string nameStr = null;
   TypeCache.SplitMangledTypeName(name.Value, out nameStr, out this.genericParameterCount);
   if (this.genericParameterCount > 0)
     this.unmanagledTypeName = nameTable.GetNameFor(nameStr);
   else
     this.unmanagledTypeName = name;
 }
예제 #3
0
 private NamespaceTypeName(INameTable nameTable, NamespaceName/*?*/ namespaceName, IName name, IName unmangledTypeName) {
   this.NamespaceName = namespaceName;
   this.Name = name;
   this.unmanagledTypeName = unmangledTypeName;
 }
예제 #4
0
 internal NamespaceName(INameTable nameTable, NamespaceName/*?*/ parentNamespaceName, IName name) {
   this.ParentNamespaceName = parentNamespaceName;
   this.Name = name;
   if (parentNamespaceName == null)
     this.FullyQualifiedName = name;
   else
     this.FullyQualifiedName = nameTable.GetNameFor(parentNamespaceName.FullyQualifiedName.Value + "." + name);
 }