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

📄 token.vb

📁 大名鼎鼎的mono是.NET平台的跨平台(支持linux
💻 VB
📖 第 1 页 / 共 2 页
字号:
' ' 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' Public Class Token    Private m_Location As Span 'Long    Private m_TokenType As TokenType 'Byte    Private m_TokenData1 As Byte    Private m_TokenObject As Object    Shared Function IsSomething(ByVal Token As Token) As Boolean        Return Token IsNot Nothing AndAlso Token.IsSomething    End Function    Function IsSomething() As Boolean        Return m_TokenType <> TokenType.None    End Function    ReadOnly Property Name() As String        Get            Return Identifier        End Get    End Property    ReadOnly Property HasTypeCharacter() As Boolean        Get            Return IsIdentifier() AndAlso TypeCharacter <> TypeCharacters.Characters.None        End Get    End Property    Property TypeCharacter() As TypeCharacters.Characters        Get            Return CType(m_TokenData1, TypeCharacters.Characters)        End Get        Set(ByVal value As TypeCharacters.Characters)            m_TokenData1 = CType(value, LiteralTypeCharacters_Characters)        End Set    End Property    Public Overrides Function ToString() As String        If Me.IsIdentifier Then            Return Me.Identifier        Else            Return "<Token>"        End If    End Function    Shared Function CreateIdentifierToken(ByVal Location As Span, ByVal Identifier As String, ByVal TypeCharacter As TypeCharacters.Characters, ByVal Escaped As Boolean) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Identifier        result.m_TokenObject = Identifier        result.m_TokenData1 = CType(TypeCharacter, LiteralTypeCharacters_Characters)        Return result    End Function    Shared Function CreateIdentifierToken(ByVal CopyFrom As Token, ByVal Name As String) As Token        Dim result As New Token(CopyFrom.Location)        result.m_TokenType = TokenType.Identifier        result.m_TokenObject = Name        result.m_TokenData1 = CopyFrom.m_TokenData1        Return result    End Function    Shared Function CreateEndOfCodeToken() As Token        Dim result As New Token(Span.CommandLineSpan)        result.m_TokenType = TokenType.EndOfCode        Return result    End Function    Shared Function CreateEndOfLineToken(ByVal Location As Span) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.EndOfLine        Return result    End Function    Shared Function CreateEndOfFileToken(ByVal Location As Span) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.EndOfFile        Return result    End Function    Shared Function CreateKeywordToken(ByVal Location As Span, ByVal Keyword As KS) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Keyword        result.m_TokenData1 = Keyword        Return result    End Function    Shared Function CreateDateToken(ByVal Location As Span, ByVal Value As Date) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.DateLiteral        result.m_TokenObject = Value        Return result    End Function    Shared Function CreateCharToken(ByVal Location As Span, ByVal Value As Char) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.CharLiteral        result.m_TokenObject = Value        Return result    End Function    Shared Function CreateDecimalToken(ByVal Location As Span, ByVal Value As Decimal, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.DecimalLiteral        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        Return result    End Function    Shared Function CreateSingleToken(ByVal Location As Span, ByVal Value As Single, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.SingleLiteral        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        Return result    End Function    Shared Function CreateDoubleToken(ByVal Location As Span, ByVal Value As Double, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.DoubleLiteral        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        Return result    End Function    Shared Function CreateInt16Token(ByVal Location As Span, ByVal Value As Short, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Int16Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateInt32Token(ByVal Location As Span, ByVal Value As Integer, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Int32Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateInt64Token(ByVal Location As Span, ByVal Value As Long, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Int64Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateUInt16Token(ByVal Location As Span, ByVal Value As UShort, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.UInt16Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateUInt32Token(ByVal Location As Span, ByVal Value As UInteger, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.UInt32Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateUInt64Token(ByVal Location As Span, ByVal Value As ULong, ByVal base As IntegerBase, ByVal TypeCharacter As LiteralTypeCharacters_Characters) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.UInt64Literal        result.m_TokenObject = Value        result.m_TokenData1 = TypeCharacter        'result.m_TokenData2 = base        Return result    End Function    Shared Function CreateStringLiteral(ByVal Location As Span, ByVal Value As String) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.StringLiteral        result.m_TokenObject = Value        Return result    End Function    Shared Function CreateSymbolToken(ByVal Location As Span, ByVal Symbol As KS) As Token        Dim result As New Token(Location)        result.m_TokenType = TokenType.Symbol        result.m_TokenData1 = Symbol        Return result    End Function    ReadOnly Property Location() As Span        Get            Return m_Location        End Get    End Property    Sub New(ByVal Span As Span)        m_Location = Span    End Sub    Function IdentiferOrKeywordIdentifier() As String        If IsKeyword() Then            Return Identifier        ElseIf IsIdentifier() Then            Return Identifier        Else            Throw New InternalException()        End If    End Function    Function IsSpecial() As Boolean        Return IsKeyword() OrElse IsSymbol()    End Function    ReadOnly Property AsSpecial() As KS        Get            If IsKeyword() Then                Return Keyword            ElseIf IsSymbol() Then                Return Symbol            Else                Throw New InternalException()            End If        End Get    End Property    Function IsKeyword() As Boolean        Return m_TokenType = TokenType.Keyword    End Function

⌨️ 快捷键说明

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