📄 modminorparsing.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 + -