private TypeId ToTypeId(int arity) { if (m_CurrentName == null) { throw new InvalidOperationException("Cannot create type id when no name segment was added."); } if (arity == 0) { return(new SimpleTypeId(m_NamespaceBuilder.ToNamespaceId(), m_CurrentName)); } else { return(new GenericTypeId(m_NamespaceBuilder.ToNamespaceId(), m_CurrentName, arity)); } }
private NamespaceId ParseNamespaceId() { var namespaceBuilder = new NamespaceIdBuilder(); // there needs to be at least one name namespaceBuilder.AddNameSegment(MatchToken(MemberIdTokenKind.Name)); // as long as there are more dots, consume more name segments while (TestAndMatchToken(MemberIdTokenKind.Dot)) { namespaceBuilder.AddNameSegment(MatchToken(MemberIdTokenKind.Name)); } // all tokens should be parsed now MatchToken(MemberIdTokenKind.Eof); return(namespaceBuilder.ToNamespaceId()); }