⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 importsclauses.vb

📁 大名鼎鼎的mono是.NET平台的跨平台(支持linux
💻 VB
字号:
' ' Visual Basic.Net Compiler' Copyright (C) 2004 - 2007 Rolf Bjarne Kvinge, RKvinge@novell.com' ' This library is free software; you can redistribute it and/or' modify it under the terms of the GNU Lesser General Public' License as published by the Free Software Foundation; either' version 2.1 of the License, or (at your option) any later version.' ' This library is distributed in the hope that it will be useful,' but WITHOUT ANY WARRANTY; without even the implied warranty of' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU' Lesser General Public License for more details.' ' You should have received a copy of the GNU Lesser General Public' License along with this library; if not, write to the Free Software' Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA' ''' <summary>''' ImportsClauses  ::= ImportsClause  | ImportsClauses  ","  ImportsClause''' </summary>''' <remarks></remarks>Public Class ImportsClauses    Inherits NamedBaseList(Of ImportsClause)    Function GetNamespaces(ByVal FromWhere As BaseObject, ByVal Name As String) As Generic.List(Of [Namespace])        Dim result As New Generic.List(Of [Namespace])        For Each imp As ImportsClause In Me            If imp.IsNamespaceClause AndAlso imp.AsNamespaceClause.IsNamespaceImport Then                Dim ns As [Namespace]                ns = FromWhere.Compiler.TypeManager.Namespaces.Item(imp.AsNamespaceClause.NamespaceImported, Name)                If ns IsNot Nothing Then                    result.Add(ns)                End If            End If        Next        Return result    End Function    ''' <summary>    ''' Looks up all the modules imported by all the imports clauses.    ''' </summary>    ''' <param name="FromWhere"></param>    ''' <returns></returns>    ''' <remarks></remarks>    Function GetModules(ByVal FromWhere As BaseObject) As TypeList        Dim result As New TypeList        For Each imp As ImportsClause In Me            If imp.IsNamespaceClause Then                Dim ns As ImportsNamespaceClause = imp.AsNamespaceClause                If ns.IsTypeImport Then                    'A type cannot contain a module, nothing to do here.                ElseIf ns.IsNamespaceImport Then                    result.AddRange(FromWhere.Compiler.TypeManager.GetModulesByNamespace(ns.NamespaceImported.ToString).TypesAsArray)                Else                    Continue For 'This import was not resolved correctly, don't use it.                End If            End If        Next        Return result    End Function    Sub New(ByVal Parent As ParsedObject)        MyBase.New(Parent)    End Sub    ''' <summary>    ''' Returns true if a clause with the same imported namespace or alias exists.    ''' </summary>    ''' <param name="Clause"></param>    ''' <returns></returns>    ''' <remarks></remarks>    Function Exists(ByVal Clause As ImportsClause) As Boolean        For Each cl As ImportsClause In Me            If cl.IsNamespaceClause Then                If Clause.IsNamespaceClause Then                    If NameResolution.CompareName(cl.AsNamespaceClause.Name, Clause.AsNamespaceClause.Name) Then                        Return True                    End If                End If            ElseIf cl.IsAliasClause Then                If Clause.IsAliasClause Then                    If NameResolution.CompareName(cl.AsAliasClause.Name, Clause.AsAliasClause.Name) Then                        Return True                    End If                End If            Else                Throw New InternalException(Me)            End If        Next        Return False    End FunctionEnd Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -