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

📄 modminorparsing.vb

📁 visual basic课程设计案例精编
💻 VB
字号:
Module modMinorParsing
    Public Function PostToken() As Object
        On Error GoTo ErrorHandler
        Dim Factorial As Double
        Dim i As Short
        If OutputString = "+" Or OutputString = "-" Or OutputString = "*" Or OutputString = "/" Or OutputString = "EOS" Or OutputString = ")" Or OutputString = "=" Or OutputString = "," Then
            PostToken = Value
            '处理在数值后的特殊符号!、^等
        Else
            Select Case OutputString
                Case "!" '阶乘
                    If (CDbl(Value) <> CInt(Value)) Or Value < 0 Then
                        TrapErrors(0)
                        Exit Function
                    End If
                    Factorial = 1
                    For i = Value To 1 Step -1
                        Factorial = Factorial * i  '阶乘计算
                    Next i
                    ExtractToken() '在往后读取一个符号

                    If OutputString = "+" Or OutputString = "-" Or OutputString = "*" Or OutputString = "/" Or OutputString = "EOS" Or OutputString = ")" Or OutputString = "=" Then
                        PostToken = Factorial '如果是低于该级的运算如加,乘,则返回阶乘值
                        ExtractToken()
                    Else                        ' 处理阶乘后的符号
                        Select Case OutputString
                            Case "!"
                                TrapErrors(0) '是!,则错误
                                Exit Function
                            Case "^" '指数,幂
                                ExtractToken()
                                PostToken = Factorial ^ GetF() '幂运算
                            Case Else '
                                PostToken = Factorial * GetF()
                        End Select
                    End If
                Case "^" '幂
                    ExtractToken()
                    PostToken = Value ^ GetF() '幂运算,下一级运算处理后面的值
                Case "(" '左括号
                    PostToken = Value * GetF() '下一级运算处理后面的值
                Case Else
                    PostToken = Value * GetF() '其他的后面跟随符号相乘,并将表达式交给下一级处理
            End Select
        End If
        Exit Function
ErrorHandler:
        TrapErrors(Err.Number)
    End Function
End Module

⌨️ 快捷键说明

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