📄 typeconverter.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' Public Class TypeConverter '0 = A Empty A '1 = B Object B '2 = C DBNull C '3 = D Boolean D '4 = E Char E '5 = F SByte F '6 = G Byte G '7 = H Int16(Short) H '8 = I UInt16(UShort) I '9 = J Int32 J '10= K UInt32 K '11= L Int64(Long) L '12= M UInt64(ULong) M '13= N Single N '14= O Double O '15= P Decimal P '16= Q DateTime Q '17= - 17 - '18= S String S Public Shared LikeResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBBBBBBBBBBBBBB-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "XBXDDDDDDDDDDDDDD-D" & _ "-------------------" & _ "XBXDDDDDDDDDDDDDD-D" Public Shared LikeOperandType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBBBBBBBBBBBBBB-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "XBXSSSSSSSSSSSSSS-S" & _ "-------------------" & _ "XBXSSSSSSSSSSSSSS-S" Public Shared ConcatResultType As String = LikeOperandType Public Shared ConcatOperandType As String = LikeOperandType Public Shared ModResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XBXHXHGHIJKLMNOPX-O" & _ "XBXHXHHHJJLLPNOPX-O" & _ "XBXJXJIJIJKLMNOPX-O" & _ "XBXJXJJJJJLLPNOPX-O" & _ "XBXLXLKLKLKLMNOPX-O" & _ "XBXLXLLLLLLLPNOPX-O" & _ "XBXPXPMPMPMPMNOPX-O" & _ "XBXNXNNNNNNNNNOPX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXPXPPPPPPPPPOPX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXOXOOOOOOOOOOOX-O" Public Shared IntDivResultTypes As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXHHJJJLLLLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXHXGHJJJLLLLLLX-L" & _ "XBXHXHHIIJKLMLLLX-L" & _ "XBXJXJIIJJLLLLLLX-L" & _ "XBXJXJIJIJKLMLLLX-L" & _ "XBXJXJJJJJLLLLLLX-L" & _ "XBXLXLKLKLKLMLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLMLMLMLMLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXLXLLLLLLLLLLLX-L" Public Shared RealDivResultTypes As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXOXOOOOOOOONOOX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXOXOOOOOOOONOOX-O" & _ "XBXNXNNNNNNNNNOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXOXOOOOOOOOOOOX-O" Public Shared AddResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBBBBBBBBBBBBBB-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XBXXSXXXXXXXXXXXX-S" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XBXHXHGHIJKLMNOPX-O" & _ "XBXHXHHHJJLLPNOPX-O" & _ "XBXJXJIJIJKLMNOPX-O" & _ "XBXJXJJJJJLLPNOPX-O" & _ "XBXLXLKLKLKLMNOPX-O" & _ "XBXLXLLLLLLLPNOPX-O" & _ "XBXPXPMPMPMPMNOPX-O" & _ "XBXNXNNNNNNNNNOPX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXPXPPPPPPPPPOPX-O" & _ "XBXXXXXXXXXXXXXXX-S" & _ "-------------------" & _ "XBXOSOOOOOOOOOOOS-S" Public Shared SubResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLPNOPX-O" & _ "XBXHXHGHIJKLMNOPX-O" & _ "XBXHXHHHJJLLPNOPX-O" & _ "XBXJXJIJIJKLMNOPX-O" & _ "XBXJXJJJJJLLPNOPX-O" & _ "XBXLXLKLKLKLMNOPX-O" & _ "XBXLXLLLLLLLPNOPX-O" & _ "XBXPXPMPMPMPMNOPX-O" & _ "XBXNXNNNNNNNNNOPX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXPXPPPPPPPPPOPX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXOXOOOOOOOOOOOX-O" Public Shared MultResultType As String = SubResultType Public Shared ShortcircuitResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XBXDXDDDDDDDDDDDX-D" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXDXDDDDDDDDDDDX-D" Public Shared LogicalOperatorResultType As String = "" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXDXFHHJJLLLLLLX-D" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFHHJJLLLLLLX-L" & _ "XBXHXHGHIJKLMLLLX-L" & _ "XBXHXHHHJJLLLLLLX-L" & _ "XBXJXJIJIJKLMLLLX-L" & _ "XBXJXJJJJJLLLLLLX-L" & _ "XBXLXLKLKLKLMLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLMLMLMLMLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XBXLXLLLLLLLLLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXDXLLLLLLLLLLLX-L" Public Shared BinaryOperandTypes As String = _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBBBBBBBBBBBBBB-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXDXFHHJJPLPNOPX-D" & _ "XBXXEXXXXXXXXXXXX-S" & _ "XBXFXFHHJJPLPNOPX-O" & _ "XBXHXHGHIJKLMNOPX-O" & _ "XBXHXHHHJJPLPNOPX-O" & _ "XBXIXJIJIJKLMNOPX-O" & _ "XBXJXJJJJJPLPNOPX-O" & _ "XBXPXPKPKPKLMNOPX-O" & _ "XBXLXLLLLLLLPNOPX-O" & _ "XBXPXPMPMPMPMNOPX-O" & _ "XBXNXNNNNNNNNNOPX-O" & _ "XBXOXOOOOOOOOOOPX-O" & _ "XBXPXPPPPPPPPPPPX-O" & _ "XBXXXXXXXXXXXXXXQ-Q" & _ "-------------------" & _ "XBXDSOOOOOOOOOOOQ-S" Public Shared ExponentResultTypes As String = _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXBXBBBBBBBBBBBX-B" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XBXOXOOOOOOOOOOOX-O" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXOXOOOOOOOOOOOX-O" Public Shared NotOperatorResultType As String = "XBXDXFGHIJKLMLLLX-L" Public Shared UnaryPlusResultType As String = "XBXFXFGHIJKLMNOPX-O" Public Shared UnaryMinusResultType As String = "XBXFXFHHJJLLPNOPX-O" Public Shared ShiftResultType2 As String = "XBXFXFGHIJKLMLLLX-L" Public Shared ShiftResultType As String = _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XBXFXFGHIJKLMLLLX-L" & _ "XXXXXXXXXXXXXXXXX-X" & _ "-------------------" & _ "XBXFXFGHIJKLMLLLX-L" ''' <summary> ''' X=? ''' I=Implicit ok ''' 0=Explicit ok ''' 1=30311 ''' 2=32007 ''' 3=30533 ''' 4=32006 ''' 5=30532 ''' 6=30533 ''' A=30311, only explicit ''' </summary> ''' <remarks></remarks> Public Shared ConversionResultType As String = _ "XXXXXXXXXXXXXXXXX-X" & _ "X0X00000000000000-0" & _ "XXXXXXXXXXXXXXXXX-X" & _ "XIXI1000000000001-0" & _ "XIX1I222222221111-0" & _ "XIX04I00000000001-0" & _ "XIX040I0000000001-0" & _ "XIX0400I000000001-0" & _ "XIX04000I00000001-0" & _ "XIX040000I0000001-0" & _ "XIX0400000I000001-0" & _ "XIX04000000I00001-0" & _ "XIX040000000I0001-0" & _ "XIX0100000000I001-0" & _ "XIX01000000000I05-0" & _ "XIX010000000000I1-0" & _ "XIX1111111111161I-0" & _ "-------------------" & _ "XIX00000000000000-I" Shared Function GetErrorNumberForBinaryOperation(ByVal op As KS, ByVal left As TypeCode, ByVal right As TypeCode) As Integer If op = KS.ShiftLeft OrElse op = KS.ShiftRight Then If left = TypeCode.Object AndAlso (right = TypeCode.DateTime OrElse right = TypeCode.Char) Then Return 0 If left <> TypeCode.DateTime AndAlso left <> TypeCode.Char Then If right = TypeCode.DateTime Then Return 30311 If right = TypeCode.Char Then Return 32006 End If ElseIf (op = KS.Add OrElse op = KS.Minus) AndAlso left = TypeCode.DateTime AndAlso right = TypeCode.DateTime Then Return 0 End If Dim resultType As TypeCode resultType = TypeConverter.GetBinaryResultType(op, left, right) If resultType = TypeCode.Empty Then Return 30452 Return 0 End Function Shared Function GetErrorNumberForConversion(ByVal tp1 As TypeCode, ByVal tp2 As TypeCode, ByVal Implicit As Boolean) As Integer Select Case GetConversionResultType(tp1, tp2) Case "X"c Throw New NotImplementedException Case "I"c Return 0 Case "0"c Return 0 Case "1"c Return 30311 Case "2"c Return 32007 Case "3"c Return 30533 Case "4"c Return 32006 Case "5"c Return 30532 Case "6"c Return 30533 Case Else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -