Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
return
function()
--upvalues _ENV*
return
end
function()
--upvalues _ENV*
return
end
define Proc%1
L0 (entry)
RET {L1}
L1 (exit)
return 1
function()
--upvalues _ENV*
return
1
end
function()
--upvalues _ENV*
return
1
end
define Proc%1
L0 (entry)
RET {1 Kint(0)} {L1}
L1 (exit)
return 42, 4.2, true, 'hello'
function()
--upvalues _ENV*
return
42
,
4.2000000000000002
,
true
,
'hello'
end
function()
--upvalues _ENV*
return
42
,
4.2000000000000002
,
true
,
'hello'
end
define Proc%1
L0 (entry)
RET {42 Kint(0), 4.2E0 Kflt(0), true, 'hello' Ks(0)} {L1}
L1 (exit)
return a
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'a' Ks(0)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 1+2
function()
--upvalues _ENV*
return
--[binary expr start] any
1
+
2
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
1
+
2
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {1 Kint(0), 2 Kint(1)} {Tint(0)}
RET {Tint(0)} {L1}
L1 (exit)
return 2^3-5*4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
2
^
3
--[binary expr end]
-
--[binary expr start] any
5
*
4
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
--[binary expr start] number
2
^
3
--[binary expr end]
-
--[binary expr start] integer
5
*
4
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {2 Kint(0), 3 Kint(1)} {Tflt(0)}
MULii {5 Kint(2), 4 Kint(3)} {Tint(0)}
SUBfi {Tflt(0), Tint(0)} {Tflt(1)}
RET {Tflt(1)} {L1}
L1 (exit)
return 1+1
function()
--upvalues _ENV*
return
--[binary expr start] any
1
+
1
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
1
+
1
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {1 Kint(0), 1 Kint(0)} {Tint(0)}
RET {Tint(0)} {L1}
L1 (exit)
return 1+1+1
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
1
+
1
--[binary expr end]
+
1
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
--[binary expr start] integer
1
+
1
--[binary expr end]
+
1
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {1 Kint(0), 1 Kint(0)} {Tint(0)}
ADDii {Tint(0), 1 Kint(0)} {Tint(1)}
RET {Tint(1)} {L1}
L1 (exit)
return 2-3/5*4
function()
--upvalues _ENV*
return
--[binary expr start] any
2
-
--[binary expr start] any
--[binary expr start] any
3
/
5
--[binary expr end]
*
4
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
2
-
--[binary expr start] number
--[binary expr start] number
3
/
5
--[binary expr end]
*
4
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
DIVii {3 Kint(1), 5 Kint(2)} {Tflt(0)}
MULfi {Tflt(0), 4 Kint(3)} {Tflt(1)}
SUBif {2 Kint(0), Tflt(1)} {Tflt(0)}
RET {Tflt(0)} {L1}
L1 (exit)
return 4.2//5
function()
--upvalues _ENV*
return
--[binary expr start] any
4.2000000000000002
//
5
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
4.2000000000000002
//
5
--[binary expr end]
end
define Proc%1
L0 (entry)
IDIV {4.2E0 Kflt(0), 5 Kint(0)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 0.0
function()
--upvalues _ENV*
return
0.0000000000000000
end
function()
--upvalues _ENV*
return
0.0000000000000000
end
define Proc%1
L0 (entry)
RET {0E0 Kflt(0)} {L1}
L1 (exit)
return 0
function()
--upvalues _ENV*
return
0
end
function()
--upvalues _ENV*
return
0
end
define Proc%1
L0 (entry)
RET {0 Kint(0)} {L1}
L1 (exit)
return -0//1
function()
--upvalues _ENV*
return
--[binary expr start] any
--[unary expr start] any
-
0
--[unary expr end]
//
1
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
--[unary expr start] integer
-
0
--[unary expr end]
//
1
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {0 Kint(0)} {Tint(0)}
IDIV {Tint(0), 1 Kint(1)} {Tint(1)}
RET {Tint(1)} {L1}
L1 (exit)
return 3^-1
function()
--upvalues _ENV*
return
--[binary expr start] any
3
^
--[unary expr start] any
-
1
--[unary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
3
^
--[unary expr start] integer
-
1
--[unary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {1 Kint(1)} {Tint(0)}
POW {3 Kint(0), Tint(0)} {Tflt(0)}
RET {Tflt(0)} {L1}
L1 (exit)
return (1 + 1)^(50 + 50)
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
+
1
--[binary expr end]
--[primary end]
--[suffixed expr end]
^
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
50
+
50
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
1
+
1
--[binary expr end]
--[primary end]
--[suffixed expr end]
^
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
50
+
50
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {1 Kint(0), 1 Kint(0)} {Tint(0)}
ADDii {50 Kint(1), 50 Kint(1)} {Tint(1)}
POW {Tint(0), Tint(1)} {Tflt(0)}
RET {Tflt(0)} {L1}
L1 (exit)
return (-2)^(31 - 2)
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
-
2
--[unary expr end]
--[primary end]
--[suffixed expr end]
^
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
31
-
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
--[suffixed expr start] integer
--[primary start] integer
--[unary expr start] integer
-
2
--[unary expr end]
--[primary end]
--[suffixed expr end]
^
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
31
-
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {2 Kint(0)} {Tint(0)}
SUBii {31 Kint(1), 2 Kint(0)} {Tint(1)}
POW {Tint(0), Tint(1)} {Tflt(0)}
RET {Tflt(0)} {L1}
L1 (exit)
return (-3^0 + 5) // 3.0
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[unary expr start] any
-
--[binary expr start] any
3
^
0
--[binary expr end]
--[unary expr end]
+
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
3.0000000000000000
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[unary expr start] number
-
--[binary expr start] number
3
^
0
--[binary expr end]
--[unary expr end]
+
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
3.0000000000000000
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {3 Kint(0), 0 Kint(1)} {Tflt(0)}
UNMf {Tflt(0)} {Tflt(1)}
ADDfi {Tflt(1), 5 Kint(2)} {Tflt(2)}
IDIV {Tflt(2), 3E0 Kflt(0)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 0xF0.0 | 0xCC.0 ~ 0xAA & 0xFD
function()
--upvalues _ENV*
return
--[binary expr start] any
240.0000000000000000
|
--[binary expr start] any
204.0000000000000000
~
--[binary expr start] any
170
&
253
--[binary expr end]
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
240.0000000000000000
|
--[binary expr start] integer
204.0000000000000000
~
--[binary expr start] integer
170
&
253
--[binary expr end]
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
BANDii {170 Kint(0), 253 Kint(1)} {Tint(0)}
BXOR {2.04E2 Kflt(1), Tint(0)} {Tint(1)}
BOR {2.4E2 Kflt(0), Tint(1)} {Tint(0)}
RET {Tint(0)} {L1}
L1 (exit)
return ~(~0xFF0 | 0xFF0)
function()
--upvalues _ENV*
return
--[unary expr start] any
~
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[unary expr start] any
~
4080
--[unary expr end]
|
4080
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] any
~
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[unary expr start] any
~
4080
--[unary expr end]
|
4080
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
define Proc%1
L0 (entry)
BNOT {4080 Kint(0)} {T(0)}
BOR {T(0), 4080 Kint(0)} {T(1)}
BNOT {T(1)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return ~~-100024.0
function()
--upvalues _ENV*
return
--[unary expr start] any
~
--[unary expr start] any
~
--[unary expr start] any
-
100024.0000000000000000
--[unary expr end]
--[unary expr end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] any
~
--[unary expr start] any
~
--[unary expr start] number
-
100024.0000000000000000
--[unary expr end]
--[unary expr end]
--[unary expr end]
end
define Proc%1
L0 (entry)
UNMf {1.00024E5 Kflt(0)} {Tflt(0)}
BNOT {Tflt(0)} {T(0)}
BNOT {T(0)} {T(1)}
RET {T(1)} {L1}
L1 (exit)
return ((100 << 6) << -4) >> 2
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
100
<<
6
--[binary expr end]
--[primary end]
--[suffixed expr end]
<<
--[unary expr start] any
-
4
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
>>
2
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] integer
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
100
<<
6
--[binary expr end]
--[primary end]
--[suffixed expr end]
<<
--[unary expr start] integer
-
4
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
>>
2
--[binary expr end]
end
define Proc%1
L0 (entry)
SHLii {100 Kint(0), 6 Kint(1)} {Tint(0)}
UNMi {4 Kint(2)} {Tint(1)}
SHLii {Tint(0), Tint(1)} {Tint(2)}
SHRii {Tint(2), 2 Kint(3)} {Tint(1)}
RET {Tint(1)} {L1}
L1 (exit)
return 2^3^2 == 2^(3^2)
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
2
^
--[binary expr start] any
3
^
2
--[binary expr end]
--[binary expr end]
==
--[binary expr start] any
2
^
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
3
^
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] number
2
^
--[binary expr start] number
3
^
2
--[binary expr end]
--[binary expr end]
==
--[binary expr start] number
2
^
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
3
^
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {3 Kint(1), 2 Kint(0)} {Tflt(0)}
POW {2 Kint(0), Tflt(0)} {Tflt(1)}
POW {3 Kint(1), 2 Kint(0)} {Tflt(0)}
POW {2 Kint(0), Tflt(0)} {Tflt(2)}
EQff {Tflt(1), Tflt(2)} {Tbool(0)}
RET {Tbool(0)} {L1}
L1 (exit)
return 2^3*4 == (2^3)*4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
2
^
3
--[binary expr end]
*
4
--[binary expr end]
==
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
2
^
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
*
4
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] number
--[binary expr start] number
2
^
3
--[binary expr end]
*
4
--[binary expr end]
==
--[binary expr start] number
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
2
^
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
*
4
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {2 Kint(0), 3 Kint(1)} {Tflt(0)}
MULfi {Tflt(0), 4 Kint(2)} {Tflt(1)}
POW {2 Kint(0), 3 Kint(1)} {Tflt(0)}
MULfi {Tflt(0), 4 Kint(2)} {Tflt(2)}
EQff {Tflt(1), Tflt(2)} {Tbool(0)}
RET {Tbool(0)} {L1}
L1 (exit)
return 2.0^-2 == 1/4 and -2^- -2 == - - -4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
2.0000000000000000
^
--[unary expr start] any
-
2
--[unary expr end]
--[binary expr end]
==
--[binary expr start] any
1
/
4
--[binary expr end]
--[binary expr end]
and
--[binary expr start] any
--[unary expr start] any
-
--[binary expr start] any
2
^
--[unary expr start] any
-
--[unary expr start] any
-
2
--[unary expr end]
--[unary expr end]
--[binary expr end]
--[unary expr end]
==
--[unary expr start] any
-
--[unary expr start] any
-
--[unary expr start] any
-
4
--[unary expr end]
--[unary expr end]
--[unary expr end]
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] boolean
--[binary expr start] number
2.0000000000000000
^
--[unary expr start] integer
-
2
--[unary expr end]
--[binary expr end]
==
--[binary expr start] number
1
/
4
--[binary expr end]
--[binary expr end]
and
--[binary expr start] boolean
--[unary expr start] number
-
--[binary expr start] number
2
^
--[unary expr start] integer
-
--[unary expr start] integer
-
2
--[unary expr end]
--[unary expr end]
--[binary expr end]
--[unary expr end]
==
--[unary expr start] integer
-
--[unary expr start] integer
-
--[unary expr start] integer
-
4
--[unary expr end]
--[unary expr end]
--[unary expr end]
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {2 Kint(0)} {Tint(0)}
POW {2E0 Kflt(0), Tint(0)} {Tflt(0)}
DIVii {1 Kint(1), 4 Kint(2)} {Tflt(1)}
EQff {Tflt(0), Tflt(1)} {Tbool(0)}
MOV {Tbool(0)} {T(0)}
CBR {T(0)} {L2, L3}
L1 (exit)
L2
UNMi {2 Kint(0)} {Tint(0)}
UNMi {Tint(0)} {Tint(1)}
POW {2 Kint(0), Tint(1)} {Tflt(1)}
UNMf {Tflt(1)} {Tflt(0)}
UNMi {4 Kint(2)} {Tint(1)}
UNMi {Tint(1)} {Tint(2)}
UNMi {Tint(2)} {Tint(3)}
EQ {Tflt(0), Tint(3)} {Tbool(4)}
MOV {Tbool(4)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return not nil and 2 and not(2>3 or 3<2)
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
not
nil
--[unary expr end]
and
2
--[binary expr end]
and
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] any
2
>
3
--[binary expr end]
or
--[binary expr start] any
3
<
2
--[binary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
not
nil
--[unary expr end]
and
2
--[binary expr end]
and
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] boolean
2
>
3
--[binary expr end]
or
--[binary expr start] boolean
3
<
2
--[binary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
NOT {nil} {T(2)}
MOV {T(2)} {T(1)}
CBR {T(1)} {L4, L5}
L1 (exit)
L2
LIii {3 Kint(1), 2 Kint(0)} {Tbool(0)}
MOV {Tbool(0)} {T(1)}
CBR {T(1)} {L7, L6}
L3
RET {T(0)} {L1}
L4
MOV {2 Kint(0)} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
L6
LIii {3 Kint(1), 2 Kint(0)} {Tbool(0)}
MOV {Tbool(0)} {T(1)}
BR {L7}
L7
NOT {T(1)} {T(2)}
MOV {T(2)} {T(0)}
BR {L3}
return -3-1-5 == 0+0-9
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
3
--[unary expr end]
-
1
--[binary expr end]
-
5
--[binary expr end]
==
--[binary expr start] any
--[binary expr start] any
0
+
0
--[binary expr end]
-
9
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] integer
--[binary expr start] integer
--[unary expr start] integer
-
3
--[unary expr end]
-
1
--[binary expr end]
-
5
--[binary expr end]
==
--[binary expr start] integer
--[binary expr start] integer
0
+
0
--[binary expr end]
-
9
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {3 Kint(0)} {Tint(0)}
SUBii {Tint(0), 1 Kint(1)} {Tint(1)}
SUBii {Tint(1), 5 Kint(2)} {Tint(0)}
ADDii {0 Kint(3), 0 Kint(3)} {Tint(1)}
SUBii {Tint(1), 9 Kint(4)} {Tint(2)}
EQii {Tint(0), Tint(2)} {Tbool(1)}
RET {Tbool(1)} {L1}
L1 (exit)
return -2^2 == -4 and (-2)^2 == 4 and 2*2-3-1 == 0
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
--[binary expr start] any
2
^
2
--[binary expr end]
--[unary expr end]
==
--[unary expr start] any
-
4
--[unary expr end]
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
-
2
--[unary expr end]
--[primary end]
--[suffixed expr end]
^
2
--[binary expr end]
==
4
--[binary expr end]
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
2
*
2
--[binary expr end]
-
3
--[binary expr end]
-
1
--[binary expr end]
==
0
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] boolean
--[unary expr start] number
-
--[binary expr start] number
2
^
2
--[binary expr end]
--[unary expr end]
==
--[unary expr start] integer
-
4
--[unary expr end]
--[binary expr end]
and
--[binary expr start] boolean
--[binary expr start] number
--[suffixed expr start] integer
--[primary start] integer
--[unary expr start] integer
-
2
--[unary expr end]
--[primary end]
--[suffixed expr end]
^
2
--[binary expr end]
==
4
--[binary expr end]
--[binary expr end]
and
--[binary expr start] boolean
--[binary expr start] integer
--[binary expr start] integer
--[binary expr start] integer
2
*
2
--[binary expr end]
-
3
--[binary expr end]
-
1
--[binary expr end]
==
0
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {2 Kint(0), 2 Kint(0)} {Tflt(0)}
UNMf {Tflt(0)} {Tflt(1)}
UNMi {4 Kint(1)} {Tint(0)}
EQ {Tflt(1), Tint(0)} {Tbool(1)}
MOV {Tbool(1)} {T(1)}
CBR {T(1)} {L4, L5}
L1 (exit)
L2
MULii {2 Kint(0), 2 Kint(0)} {Tint(1)}
SUBii {Tint(1), 3 Kint(2)} {Tint(0)}
SUBii {Tint(0), 1 Kint(3)} {Tint(1)}
EQii {Tint(1), 0 Kint(4)} {Tbool(0)}
MOV {Tbool(0)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
L4
UNMi {2 Kint(0)} {Tint(1)}
POW {Tint(1), 2 Kint(0)} {Tflt(1)}
EQ {Tflt(1), 4 Kint(1)} {Tbool(1)}
MOV {Tbool(1)} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
function()
--upvalues _ENV*
end
function()
--upvalues _ENV*
end
define Proc%1
L0 (entry)
RET {L1}
L1 (exit)
return 2*1+3/3 == 3 and 1+2 .. 3*1 == '33'
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
2
*
1
--[binary expr end]
+
--[binary expr start] any
3
/
3
--[binary expr end]
--[binary expr end]
==
3
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
1
+
2
--[binary expr end]
..
--[binary expr start] any
3
*
1
--[binary expr end]
--[binary expr end]
==
'33'
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] boolean
--[binary expr start] number
--[binary expr start] integer
2
*
1
--[binary expr end]
+
--[binary expr start] number
3
/
3
--[binary expr end]
--[binary expr end]
==
3
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[binary expr start] integer
1
+
2
--[binary expr end]
..
--[binary expr start] integer
3
*
1
--[binary expr end]
--[binary expr end]
==
'33'
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
MULii {2 Kint(0), 1 Kint(1)} {Tint(0)}
DIVii {3 Kint(2), 3 Kint(2)} {Tflt(0)}
ADDfi {Tflt(0), Tint(0)} {Tflt(1)}
EQ {Tflt(1), 3 Kint(2)} {Tbool(0)}
MOV {Tbool(0)} {T(0)}
CBR {T(0)} {L2, L3}
L1 (exit)
L2
ADDii {1 Kint(1), 2 Kint(0)} {Tint(0)}
MULii {3 Kint(2), 1 Kint(1)} {Tint(1)}
CONCAT {Tint(0), Tint(1)} {T(1)}
EQ {T(1), '33' Ks(0)} {T(2)}
MOV {T(2)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return not(2+1 > 3*1) and 'a'..'b' > 'a'
function()
--upvalues _ENV*
return
--[binary expr start] any
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] any
2
+
1
--[binary expr end]
>
--[binary expr start] any
3
*
1
--[binary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
and
--[binary expr start] any
--[binary expr start] any
'a'
..
'b'
--[binary expr end]
>
'a'
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[unary expr start] any
not
--[suffixed expr start] boolean
--[primary start] boolean
--[binary expr start] boolean
--[binary expr start] integer
2
+
1
--[binary expr end]
>
--[binary expr start] integer
3
*
1
--[binary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
and
--[binary expr start] any
--[binary expr start] any
'a'
..
'b'
--[binary expr end]
>
'a'
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {2 Kint(0), 1 Kint(1)} {Tint(0)}
MULii {3 Kint(2), 1 Kint(1)} {Tint(1)}
LIii {Tint(1), Tint(0)} {Tbool(2)}
NOT {Tbool(2)} {T(1)}
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
L1 (exit)
L2
CONCAT {'a' Ks(0), 'b' Ks(1)} {T(1)}
LT {'a' Ks(0), T(1)} {T(2)}
MOV {T(2)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return '7' .. 3 << 1 == 146
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
'7'
..
3
--[binary expr end]
<<
1
--[binary expr end]
==
146
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
'7'
..
3
--[binary expr end]
<<
1
--[binary expr end]
==
146
--[binary expr end]
end
define Proc%1
L0 (entry)
CONCAT {'7' Ks(0), 3 Kint(0)} {T(0)}
SHL {T(0), 1 Kint(1)} {T(1)}
EQ {T(1), 146 Kint(2)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 10 >> 1 .. '9' == 0
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
10
>>
--[binary expr start] any
1
..
'9'
--[binary expr end]
--[binary expr end]
==
0
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
10
>>
--[binary expr start] any
1
..
'9'
--[binary expr end]
--[binary expr end]
==
0
--[binary expr end]
end
define Proc%1
L0 (entry)
CONCAT {1 Kint(1), '9' Ks(0)} {T(0)}
SHR {10 Kint(0), T(0)} {T(1)}
EQ {T(1), 0 Kint(2)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 10 | 1 .. '9' == 27
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
10
|
--[binary expr start] any
1
..
'9'
--[binary expr end]
--[binary expr end]
==
27
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
10
|
--[binary expr start] any
1
..
'9'
--[binary expr end]
--[binary expr end]
==
27
--[binary expr end]
end
define Proc%1
L0 (entry)
CONCAT {1 Kint(1), '9' Ks(0)} {T(0)}
BOR {10 Kint(0), T(0)} {T(1)}
EQ {T(1), 27 Kint(2)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return 0xF0 | 0xCC ~ 0xAA & 0xFD == 0xF4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
240
|
--[binary expr start] any
204
~
--[binary expr start] any
170
&
253
--[binary expr end]
--[binary expr end]
--[binary expr end]
==
244
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] integer
240
|
--[binary expr start] integer
204
~
--[binary expr start] integer
170
&
253
--[binary expr end]
--[binary expr end]
--[binary expr end]
==
244
--[binary expr end]
end
define Proc%1
L0 (entry)
BANDii {170 Kint(2), 253 Kint(3)} {Tint(0)}
BXORii {204 Kint(1), Tint(0)} {Tint(1)}
BORii {240 Kint(0), Tint(1)} {Tint(0)}
EQii {Tint(0), 244 Kint(4)} {Tbool(1)}
RET {Tbool(1)} {L1}
L1 (exit)
return 0xFD & 0xAA ~ 0xCC | 0xF0 == 0xF4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
253
&
170
--[binary expr end]
~
204
--[binary expr end]
|
240
--[binary expr end]
==
244
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] integer
--[binary expr start] integer
--[binary expr start] integer
253
&
170
--[binary expr end]
~
204
--[binary expr end]
|
240
--[binary expr end]
==
244
--[binary expr end]
end
define Proc%1
L0 (entry)
BANDii {253 Kint(0), 170 Kint(1)} {Tint(0)}
BXORii {Tint(0), 204 Kint(2)} {Tint(1)}
BORii {Tint(1), 240 Kint(3)} {Tint(0)}
EQii {Tint(0), 244 Kint(4)} {Tbool(1)}
RET {Tbool(1)} {L1}
L1 (exit)
return 0xF0 & 0x0F + 1 == 0x10
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
240
&
--[binary expr start] any
15
+
1
--[binary expr end]
--[binary expr end]
==
16
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] boolean
--[binary expr start] integer
240
&
--[binary expr start] integer
15
+
1
--[binary expr end]
--[binary expr end]
==
16
--[binary expr end]
end
define Proc%1
L0 (entry)
ADDii {15 Kint(1), 1 Kint(2)} {Tint(0)}
BANDii {240 Kint(0), Tint(0)} {Tint(1)}
EQii {Tint(1), 16 Kint(3)} {Tbool(0)}
RET {Tbool(0)} {L1}
L1 (exit)
return 3^4//2^3//5 == 2
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
3
^
4
--[binary expr end]
//
--[binary expr start] any
2
^
3
--[binary expr end]
--[binary expr end]
//
5
--[binary expr end]
==
2
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[binary expr start] number
3
^
4
--[binary expr end]
//
--[binary expr start] number
2
^
3
--[binary expr end]
--[binary expr end]
//
5
--[binary expr end]
==
2
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {3 Kint(0), 4 Kint(1)} {Tflt(0)}
POW {2 Kint(2), 3 Kint(0)} {Tflt(1)}
IDIV {Tflt(0), Tflt(1)} {T(0)}
IDIV {T(0), 5 Kint(3)} {T(1)}
EQ {T(1), 2 Kint(2)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return not ((true or false) and nil)
function()
--upvalues _ENV*
return
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
true
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
nil
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
true
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
nil
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
define Proc%1
L0 (entry)
MOV {true} {T(1)}
CBR {T(1)} {L5, L4}
L1 (exit)
L2
MOV {nil} {T(0)}
BR {L3}
L3
NOT {T(0)} {T(1)}
RET {T(1)} {L1}
L4
MOV {false} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
return true or false and nil
function()
--upvalues _ENV*
return
--[binary expr start] any
true
or
--[binary expr start] any
false
and
nil
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
true
or
--[binary expr start] any
false
and
nil
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {true} {T(0)}
CBR {T(0)} {L3, L2}
L1 (exit)
L2
MOV {false} {T(1)}
CBR {T(1)} {L4, L5}
L3
RET {T(0)} {L1}
L4
MOV {nil} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
BR {L3}
return (((1 or false) and true) or false) == true
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
true
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
true
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {T(2)}
CBR {T(2)} {L7, L6}
L1 (exit)
L2
MOV {false} {T(0)}
BR {L3}
L3
EQ {T(0), true} {T(1)}
RET {T(1)} {L1}
L4
MOV {true} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L3, L2}
L6
MOV {false} {T(2)}
BR {L7}
L7
MOV {T(2)} {T(1)}
CBR {T(1)} {L4, L5}
return (((nil and true) or false) and true) == false
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
nil
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
false
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
nil
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
false
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
true
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
false
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {nil} {T(2)}
CBR {T(2)} {L6, L7}
L1 (exit)
L2
MOV {true} {T(0)}
BR {L3}
L3
EQ {T(0), false} {T(1)}
RET {T(1)} {L1}
L4
MOV {false} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
L6
MOV {true} {T(2)}
BR {L7}
L7
MOV {T(2)} {T(1)}
CBR {T(1)} {L5, L4}
return -(1 or 2) == -1 and (1 and 2)+(-1.25 or -4) == 0.75
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
or
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
==
--[unary expr start] any
-
1
--[unary expr end]
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
and
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[unary expr start] any
-
1.2500000000000000
--[unary expr end]
or
--[unary expr start] any
-
4
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
==
0.7500000000000000
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
or
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
==
--[unary expr start] integer
-
1
--[unary expr end]
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
1
and
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[unary expr start] number
-
1.2500000000000000
--[unary expr end]
or
--[unary expr start] integer
-
4
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
==
0.7500000000000000
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {T(1)}
CBR {T(1)} {L5, L4}
L1 (exit)
L2
MOV {1 Kint(0)} {T(3)}
CBR {T(3)} {L6, L7}
L3
RET {T(0)} {L1}
L4
MOV {2 Kint(1)} {T(1)}
BR {L5}
L5
UNM {T(1)} {T(2)}
UNMi {1 Kint(0)} {Tint(0)}
EQ {T(2), Tint(0)} {T(3)}
MOV {T(3)} {T(0)}
CBR {T(0)} {L2, L3}
L6
MOV {2 Kint(1)} {T(3)}
BR {L7}
L7
UNMf {1.25E0 Kflt(0)} {Tflt(0)}
MOV {Tflt(0)} {T(2)}
CBR {T(2)} {L9, L8}
L8
UNMi {4 Kint(2)} {Tint(0)}
MOV {Tint(0)} {T(2)}
BR {L9}
L9
ADD {T(3), T(2)} {T(4)}
EQ {T(4), 7.5E-1 Kflt(1)} {T(2)}
MOV {T(2)} {T(0)}
BR {L3}
return (b or a)+1 == 2 and (10 or a)+1 == 11
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
or
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
==
2
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
10
or
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
==
11
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
or
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
==
2
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
10
or
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
==
11
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'b' Ks(0)} {T(2)}
MOV {T(2)} {T(1)}
CBR {T(1)} {L5, L4}
L1 (exit)
L2
MOV {10 Kint(2)} {T(1)}
CBR {T(1)} {L7, L6}
L3
RET {T(0)} {L1}
L4
LOADGLOBAL {Upval(_ENV), 'a' Ks(1)} {T(2)}
MOV {T(2)} {T(1)}
BR {L5}
L5
ADD {T(1), 1 Kint(0)} {T(2)}
EQ {T(2), 2 Kint(1)} {T(1)}
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
L6
LOADGLOBAL {Upval(_ENV), 'a' Ks(1)} {T(2)}
MOV {T(2)} {T(1)}
BR {L7}
L7
ADD {T(1), 1 Kint(0)} {T(2)}
EQ {T(2), 11 Kint(3)} {T(1)}
MOV {T(1)} {T(0)}
BR {L3}
return ((2<3) or 1) == true and (2<3 and 4) == 4
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
2
<
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
1
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
true
--[binary expr end]
and
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] any
2
<
3
--[binary expr end]
and
4
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
4
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] boolean
--[primary start] boolean
--[binary expr start] boolean
2
<
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
or
1
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
true
--[binary expr end]
and
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] boolean
2
<
3
--[binary expr end]
and
4
--[binary expr end]
--[primary end]
--[suffixed expr end]
==
4
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
LIii {2 Kint(0), 3 Kint(1)} {Tbool(0)}
MOV {Tbool(0)} {T(1)}
CBR {T(1)} {L5, L4}
L1 (exit)
L2
LIii {2 Kint(0), 3 Kint(1)} {Tbool(0)}
MOV {Tbool(0)} {T(2)}
CBR {T(2)} {L6, L7}
L3
RET {T(0)} {L1}
L4
MOV {1 Kint(2)} {T(1)}
BR {L5}
L5
EQ {T(1), true} {T(2)}
MOV {T(2)} {T(0)}
CBR {T(0)} {L2, L3}
L6
MOV {4 Kint(3)} {T(2)}
BR {L7}
L7
EQ {T(2), 4 Kint(3)} {T(1)}
MOV {T(1)} {T(0)}
BR {L3}
return (x>y) and x or y == 2
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
>
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
or
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
==
2
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
>
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
and
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
or
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
==
2
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(2)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(3)}
LT {T(3), T(2)} {T(4)}
MOV {T(4)} {T(1)}
CBR {T(1)} {L4, L5}
L1 (exit)
L2
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(1)}
EQ {T(1), 2 Kint(0)} {T(4)}
MOV {T(4)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
L4
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(4)}
MOV {T(4)} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L3, L2}
function x() for i = 1, 10 do; print(i); end end
function()
--upvalues _ENV*
x --global symbol any
=
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol any
=
1
,
10
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
end
function()
--upvalues _ENV*
x --global symbol any
=
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol integer
=
1
,
10
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'x' Ks(0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
MOV {1 Kint(0)} {Tint(1)}
MOV {10 Kint(1)} {Tint(2)}
MOV {1 Kint(0)} {Tint(3)}
SUBii {Tint(1), Tint(3)} {Tint(1)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(1), Tint(3)} {Tint(1)}
BR {L3}
L3
LIii {Tint(2), Tint(1)} {Tbool(4)}
CBR {Tbool(4)} {L5, L4}
L4
MOV {Tint(1)} {Tint(0)}
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), Tint(0)} {T(1..), 1 Kint(0)}
BR {L2}
L5
RET {L1}
function x() local a=1; function y() return function() return a end end; end
function()
--upvalues _ENV*
x --global symbol any
=
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
1
y --global symbol any
=
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
end
end
function()
--upvalues _ENV*
x --global symbol any
=
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
1
y --global symbol any
=
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'x' Ks(0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
MOV {1 Kint(0)} {local(a, 0)}
CLOSURE {Proc%3} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'y' Ks(0)}
CLOSE {local(a, 0)}
RET {L1}
L1 (exit)
define Proc%3
L0 (entry)
CLOSURE {Proc%4} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%4
L0 (entry)
RET {Upval(0, Proc%2, a)} {L1}
L1 (exit)
return @integer 1
function()
--upvalues _ENV*
return
--[unary expr start] any
@integer
1
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] integer
@integer
1
--[unary expr end]
end
define Proc%1
L0 (entry)
RET {1 Kint(0)} {L1}
L1 (exit)
return @string 'hello'
function()
--upvalues _ENV*
return
--[unary expr start] any
@string
'hello'
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] string
@string
'hello'
--[unary expr end]
end
define Proc%1
L0 (entry)
RET {'hello' Ks(0)} {L1}
L1 (exit)
return @table {}
function()
--upvalues _ENV*
return
--[unary expr start] any
@table
{ --[table constructor start] table
} --[table constructor end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] table
@table
{ --[table constructor start] table
} --[table constructor end]
--[unary expr end]
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
RET {T(0)} {L1}
L1 (exit)
return @integer[] {}
function()
--upvalues _ENV*
return
--[unary expr start] any
@integer[]
{ --[table constructor start] table
} --[table constructor end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] integer[]
@integer[]
{ --[table constructor start] integer[]
} --[table constructor end]
--[unary expr end]
end
define Proc%1
L0 (entry)
NEWIARRAY {T(0)}
RET {T(0)} {L1}
L1 (exit)
return @number[] {}
function()
--upvalues _ENV*
return
--[unary expr start] any
@number[]
{ --[table constructor start] table
} --[table constructor end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] number[]
@number[]
{ --[table constructor start] number[]
} --[table constructor end]
--[unary expr end]
end
define Proc%1
L0 (entry)
NEWFARRAY {T(0)}
RET {T(0)} {L1}
L1 (exit)
return @closure function() end
function()
--upvalues _ENV*
return
--[unary expr start] any
@closure
function()
end
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] closure
@closure
function()
end
--[unary expr end]
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
RET {L1}
L1 (exit)
return @number 54.4
function()
--upvalues _ENV*
return
--[unary expr start] any
@number
54.3999999999999986
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] number
@number
54.3999999999999986
--[unary expr end]
end
define Proc%1
L0 (entry)
RET {5.44E1 Kflt(0)} {L1}
L1 (exit)
return @User.Type a
function()
--upvalues _ENV*
return
--[unary expr start] any
@<usertype>
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] User.Type
@<usertype>
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[unary expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'a' Ks(0)} {T(0)}
TOTYPE {'User.Type' Ks(1)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return {1,2,3}
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] integer
--[value start]
1
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
2
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
3
--[value end]
--[indexed assign end]
} --[table constructor end]
end
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] integer
--[value start]
1
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
2
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
3
--[value end]
--[indexed assign end]
} --[table constructor end]
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
TPUTik {1 Kint(0)} {T(0), 1 Kint(0)}
TPUTik {2 Kint(1)} {T(0), 2 Kint(1)}
TPUTik {3 Kint(2)} {T(0), 3 Kint(2)}
RET {T(0)} {L1}
L1 (exit)
return {[1] = a}
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[index start]
--[Y index start] any
[
1
]
--[Y index end]
--[index end]
--[value start]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
end
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[index start]
--[Y index start] any
[
1
]
--[Y index end]
--[index end]
--[value start]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
LOADGLOBAL {Upval(_ENV), 'a' Ks(0)} {T(1)}
TPUTik {T(1)} {T(0), 1 Kint(0)}
RET {T(0)} {L1}
L1 (exit)
return {a = b}
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[index start]
--[field selector start] any
.
'a'
--[field selector end]
--[index end]
--[value start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
end
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[index start]
--[field selector start] any
.
'a'
--[field selector end]
--[index end]
--[value start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
LOADGLOBAL {Upval(_ENV), 'b' Ks(1)} {T(1)}
TPUTsk {T(1)} {T(0), 'a' Ks(0)}
RET {T(0)} {L1}
L1 (exit)
return @integer[] { 5, 4}
function()
--upvalues _ENV*
return
--[unary expr start] any
@integer[]
{ --[table constructor start] table
--[indexed assign start] integer
--[value start]
5
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
4
--[value end]
--[indexed assign end]
} --[table constructor end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] integer[]
@integer[]
{ --[table constructor start] integer[]
--[indexed assign start] integer
--[value start]
5
--[value end]
--[indexed assign end]
,
--[indexed assign start] integer
--[value start]
4
--[value end]
--[indexed assign end]
} --[table constructor end]
--[unary expr end]
end
define Proc%1
L0 (entry)
NEWIARRAY {T(0)}
IAPUTiv {5 Kint(1)} {T(0), 1 Kint(0)}
IAPUTiv {4 Kint(3)} {T(0), 2 Kint(2)}
RET {T(0)} {L1}
L1 (exit)
return @number[] { 4.0, 5.4}
function()
--upvalues _ENV*
return
--[unary expr start] any
@number[]
{ --[table constructor start] table
--[indexed assign start] number
--[value start]
4.0000000000000000
--[value end]
--[indexed assign end]
,
--[indexed assign start] number
--[value start]
5.4000000000000004
--[value end]
--[indexed assign end]
} --[table constructor end]
--[unary expr end]
end
function()
--upvalues _ENV*
return
--[unary expr start] number[]
@number[]
{ --[table constructor start] number[]
--[indexed assign start] number
--[value start]
4.0000000000000000
--[value end]
--[indexed assign end]
,
--[indexed assign start] number
--[value start]
5.4000000000000004
--[value end]
--[indexed assign end]
} --[table constructor end]
--[unary expr end]
end
define Proc%1
L0 (entry)
NEWFARRAY {T(0)}
FAPUTfv {4E0 Kflt(0)} {T(0), 1 Kint(0)}
FAPUTfv {5.4E0 Kflt(1)} {T(0), 2 Kint(1)}
RET {T(0)} {L1}
L1 (exit)
if 1 == 1 then return true else return false end
function()
--upvalues _ENV*
if
--[binary expr start] any
1
==
1
--[binary expr end]
then
return
true
else
return
false
end
end
function()
--upvalues _ENV*
if
--[binary expr start] boolean
1
==
1
--[binary expr end]
then
return
true
else
return
false
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
EQii {1 Kint(0), 1 Kint(0)} {Tbool(0)}
CBR {Tbool(0)} {L3, L4}
L3
RET {true} {L1}
L4
RET {false} {L1}
L5
RET {L1}
if 1 ~= 1 then return 0 elseif 1 < 2 then return 1 elseif 1 < 2 then return 2 else return 5 end
function()
--upvalues _ENV*
if
--[binary expr start] any
1
~=
1
--[binary expr end]
then
return
0
elseif
--[binary expr start] any
1
<
2
--[binary expr end]
then
return
1
elseif
--[binary expr start] any
1
<
2
--[binary expr end]
then
return
2
else
return
5
end
end
function()
--upvalues _ENV*
if
--[binary expr start] boolean
1
~=
1
--[binary expr end]
then
return
0
elseif
--[binary expr start] boolean
1
<
2
--[binary expr end]
then
return
1
elseif
--[binary expr start] boolean
1
<
2
--[binary expr end]
then
return
2
else
return
5
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
EQii {1 Kint(0), 1 Kint(0)} {Tbool(0)}
NOT {Tbool(0)} {Tbool(1)}
CBR {Tbool(1)} {L5, L3}
L3
LIii {1 Kint(0), 2 Kint(1)} {Tbool(0)}
CBR {Tbool(0)} {L6, L4}
L4
LIii {1 Kint(0), 2 Kint(1)} {Tbool(2)}
CBR {Tbool(2)} {L7, L8}
L5
RET {0 Kint(2)} {L1}
L6
RET {1 Kint(0)} {L1}
L7
RET {2 Kint(1)} {L1}
L8
RET {5 Kint(3)} {L1}
L9
RET {L1}
if 1 == 1 then return 'hi' end
function()
--upvalues _ENV*
if
--[binary expr start] any
1
==
1
--[binary expr end]
then
return
'hi'
end
end
function()
--upvalues _ENV*
if
--[binary expr start] boolean
1
==
1
--[binary expr end]
then
return
'hi'
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
EQii {1 Kint(0), 1 Kint(0)} {Tbool(0)}
CBR {Tbool(0)} {L3, L4}
L3
RET {'hi' Ks(0)} {L1}
L4
RET {L1}
if 5 + 5 == 10 then return 'got it' else if 6 < 7 then return 4 end end
function()
--upvalues _ENV*
if
--[binary expr start] any
--[binary expr start] any
5
+
5
--[binary expr end]
==
10
--[binary expr end]
then
return
'got it'
else
if
--[binary expr start] any
6
<
7
--[binary expr end]
then
return
4
end
end
end
function()
--upvalues _ENV*
if
--[binary expr start] boolean
--[binary expr start] integer
5
+
5
--[binary expr end]
==
10
--[binary expr end]
then
return
'got it'
else
if
--[binary expr start] boolean
6
<
7
--[binary expr end]
then
return
4
end
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
ADDii {5 Kint(0), 5 Kint(0)} {Tint(0)}
EQii {Tint(0), 10 Kint(1)} {Tbool(1)}
CBR {Tbool(1)} {L3, L4}
L3
RET {'got it' Ks(0)} {L1}
L4
BR {L6}
L5
RET {L1}
L6
LIii {6 Kint(2), 7 Kint(3)} {Tbool(0)}
CBR {Tbool(0)} {L7, L8}
L7
RET {4 Kint(4)} {L1}
L8
BR {L5}
if 5 + 5 == 10 then return 'got it' elseif 6 < 7 then return 4 end
function()
--upvalues _ENV*
if
--[binary expr start] any
--[binary expr start] any
5
+
5
--[binary expr end]
==
10
--[binary expr end]
then
return
'got it'
elseif
--[binary expr start] any
6
<
7
--[binary expr end]
then
return
4
end
end
function()
--upvalues _ENV*
if
--[binary expr start] boolean
--[binary expr start] integer
5
+
5
--[binary expr end]
==
10
--[binary expr end]
then
return
'got it'
elseif
--[binary expr start] boolean
6
<
7
--[binary expr end]
then
return
4
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
ADDii {5 Kint(0), 5 Kint(0)} {Tint(0)}
EQii {Tint(0), 10 Kint(1)} {Tbool(1)}
CBR {Tbool(1)} {L4, L3}
L3
LIii {6 Kint(2), 7 Kint(3)} {Tbool(0)}
CBR {Tbool(0)} {L5, L6}
L4
RET {'got it' Ks(0)} {L1}
L5
RET {4 Kint(4)} {L1}
L6
RET {L1}
return 1 and 2
function()
--upvalues _ENV*
return
--[binary expr start] any
1
and
2
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
1
and
2
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {T(0)}
CBR {T(0)} {L2, L3}
L1 (exit)
L2
MOV {2 Kint(1)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return 3 and 4 and 5
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
3
and
4
--[binary expr end]
and
5
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
3
and
4
--[binary expr end]
and
5
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {3 Kint(0)} {T(1)}
CBR {T(1)} {L4, L5}
L1 (exit)
L2
MOV {5 Kint(2)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
L4
MOV {4 Kint(1)} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L2, L3}
return 1 or 2
function()
--upvalues _ENV*
return
--[binary expr start] any
1
or
2
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
1
or
2
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {T(0)}
CBR {T(0)} {L3, L2}
L1 (exit)
L2
MOV {2 Kint(1)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return 3 or 4 or 5
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
3
or
4
--[binary expr end]
or
5
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
3
or
4
--[binary expr end]
or
5
--[binary expr end]
end
define Proc%1
L0 (entry)
MOV {3 Kint(0)} {T(1)}
CBR {T(1)} {L5, L4}
L1 (exit)
L2
MOV {5 Kint(2)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
L4
MOV {4 Kint(1)} {T(1)}
BR {L5}
L5
MOV {T(1)} {T(0)}
CBR {T(0)} {L3, L2}
return x[1]
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
RET {T(1)} {L1}
L1 (exit)
return x()
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1..), -1 Kint(0)}
RET {T(1..)} {L1}
L1 (exit)
return x[1]()
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
MOV {T(1)} {T(2)}
CALL {T(2)} {T(2..), -1 Kint(1)}
RET {T(2..)} {L1}
L1 (exit)
return x[1]:name()
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
: name (
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
: name (
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
MOV {T(1)} {T(2)}
GETsk {T(2), 'name' Ks(1)} {T(3)}
CALL {T(3), T(2)} {T(3..), -1 Kint(1)}
RET {T(3..)} {L1}
L1 (exit)
return x[1]:name(1,2)
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
: name (
1
,
2
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
: name (
1
,
2
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
MOV {T(1)} {T(2)}
GETsk {T(2), 'name' Ks(1)} {T(3)}
CALL {T(3), T(2), 1 Kint(0), 2 Kint(1)} {T(3..), -1 Kint(2)}
RET {T(3..)} {L1}
L1 (exit)
return x(), y()
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1), 1 Kint(0)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
CALL {T(3)} {T(3..), -1 Kint(1)}
RET {T(1), T(3..)} {L1}
L1 (exit)
return y(x())
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'y' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
LOADGLOBAL {Upval(_ENV), 'x' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
CALL {T(3)} {T(3..), -1 Kint(0)}
CALL {T(1), T(3..)} {T(1..), -1 Kint(0)}
RET {T(1..)} {L1}
L1 (exit)
x = 1
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'x' Ks(0)}
RET {L1}
L1 (exit)
x = 1, 2
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
2
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
2
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'x' Ks(0)}
RET {L1}
L1 (exit)
x[1] = 1
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
PUTik {1 Kint(0)} {T(0), 1 Kint(0)}
RET {L1}
L1 (exit)
x[1] = b
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
LOADGLOBAL {Upval(_ENV), 'b' Ks(1)} {T(2)}
PUTik {T(2)} {T(0), 1 Kint(0)}
RET {L1}
L1 (exit)
x[1][1] = b
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
LOADGLOBAL {Upval(_ENV), 'b' Ks(1)} {T(3)}
PUTik {T(3)} {T(1), 1 Kint(0)}
RET {L1}
L1 (exit)
x()
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1..), 1 Kint(0)}
RET {L1}
L1 (exit)
x()[1]
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1), 1 Kint(0)}
GETik {T(1), 1 Kint(0)} {T(2)}
RET {L1}
L1 (exit)
x()[1](a,b)
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1), 1 Kint(0)}
GETik {T(1), 1 Kint(0)} {T(2)}
MOV {T(2)} {T(3)}
LOADGLOBAL {Upval(_ENV), 'a' Ks(1)} {T(4)}
LOADGLOBAL {Upval(_ENV), 'b' Ks(2)} {T(5)}
CALL {T(3), T(4), T(5)} {T(3..), 1 Kint(0)}
RET {L1}
L1 (exit)
x,y = 1,2
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
2
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
2
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'x' Ks(0)}
STOREGLOBAL {2 Kint(1)} {Upval(_ENV), 'y' Ks(1)}
RET {L1}
L1 (exit)
x,y = f()
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'f' Ks(2)} {T(2)}
MOV {T(2)} {T(3)}
CALL {T(3)} {T(3..), 2 Kint(0)}
STOREGLOBAL {T(3[3..])} {Upval(_ENV), 'x' Ks(0)}
STOREGLOBAL {T(4[3..])} {Upval(_ENV), 'y' Ks(1)}
RET {L1}
L1 (exit)
x[1],y[1],c,d = 1,z()
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
c --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
d --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
c --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
d --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(2)}
LOADGLOBAL {Upval(_ENV), 'z' Ks(4)} {T(6)}
MOV {T(6)} {T(7)}
CALL {T(7)} {T(7..), 3 Kint(1)}
PUTik {1 Kint(0)} {T(0), 1 Kint(0)}
PUTik {T(7[7..])} {T(2), 1 Kint(0)}
STOREGLOBAL {T(8[7..])} {Upval(_ENV), 'c' Ks(2)}
STOREGLOBAL {T(9[7..])} {Upval(_ENV), 'd' Ks(3)}
RET {L1}
L1 (exit)
x[1][2],y[1],c,d = 1,z()
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
2
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
c --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
d --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
2
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
c --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
d --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETik {T(0), 1 Kint(0)} {T(1)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(3)}
LOADGLOBAL {Upval(_ENV), 'z' Ks(4)} {T(7)}
MOV {T(7)} {T(8)}
CALL {T(8)} {T(8..), 3 Kint(2)}
PUTik {1 Kint(0)} {T(1), 2 Kint(1)}
PUTik {T(8[8..])} {T(3), 1 Kint(0)}
STOREGLOBAL {T(9[8..])} {Upval(_ENV), 'c' Ks(2)}
STOREGLOBAL {T(10[8..])} {Upval(_ENV), 'd' Ks(3)}
RET {L1}
L1 (exit)
x,y = y,x
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(2)}
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(3)}
STOREGLOBAL {T(2)} {Upval(_ENV), 'x' Ks(0)}
STOREGLOBAL {T(3)} {Upval(_ENV), 'y' Ks(1)}
RET {L1}
L1 (exit)
x,y,z = z,y,x
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'z' Ks(2)} {T(3)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(4)}
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(5)}
STOREGLOBAL {T(3)} {Upval(_ENV), 'x' Ks(0)}
STOREGLOBAL {T(4)} {Upval(_ENV), 'y' Ks(1)}
STOREGLOBAL {T(5)} {Upval(_ENV), 'z' Ks(2)}
RET {L1}
L1 (exit)
i = 3; i, a[i] = i+1, 20
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
3
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
,
20
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
3
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
i --global symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
,
20
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
STOREGLOBAL {3 Kint(0)} {Upval(_ENV), 'i' Ks(0)}
LOADGLOBAL {Upval(_ENV), 'a' Ks(1)} {T(1)}
LOADGLOBAL {Upval(_ENV), 'i' Ks(0)} {T(2)}
LOADGLOBAL {Upval(_ENV), 'i' Ks(0)} {T(4)}
ADD {T(4), 1 Kint(1)} {T(5)}
STOREGLOBAL {T(5)} {Upval(_ENV), 'i' Ks(0)}
PUT {20 Kint(2)} {T(1), T(2)}
RET {L1}
L1 (exit)
x(y(a[10],5,z()))[1] = 9
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
10
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
5
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
9
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
10
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
,
5
,
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
9
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
LOADGLOBAL {Upval(_ENV), 'a' Ks(2)} {T(4)}
GETik {T(4), 10 Kint(0)} {T(5)}
LOADGLOBAL {Upval(_ENV), 'z' Ks(3)} {T(6)}
MOV {T(6)} {T(7)}
CALL {T(7)} {T(7..), -1 Kint(2)}
CALL {T(3), T(5), 5 Kint(1), T(7..)} {T(3..), -1 Kint(2)}
CALL {T(1), T(3..)} {T(1), 1 Kint(3)}
PUTik {9 Kint(4)} {T(1), 1 Kint(3)}
RET {L1}
L1 (exit)
local i = 0
function()
--upvalues _ENV*
--[local symbols] i
local
--[symbols]
i --local symbol any
--[expressions]
0
end
function()
--upvalues _ENV*
--[local symbols] i
local
--[symbols]
i --local symbol any
--[expressions]
0
end
define Proc%1
L0 (entry)
MOV {0 Kint(0)} {local(i, 0)}
RET {L1}
L1 (exit)
local i, j = 1, 2
function()
--upvalues _ENV*
--[local symbols] i, j
local
--[symbols]
i --local symbol any
,
j --local symbol any
--[expressions]
1
,
2
end
function()
--upvalues _ENV*
--[local symbols] i, j
local
--[symbols]
i --local symbol any
,
j --local symbol any
--[expressions]
1
,
2
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {local(i, 0)}
MOV {2 Kint(1)} {local(j, 1)}
RET {L1}
L1 (exit)
local a = a
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'a' Ks(0)} {T(0)}
MOV {T(0)} {local(a, 0)}
RET {L1}
L1 (exit)
local a = b
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
b --global symbol any
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'b' Ks(0)} {T(0)}
MOV {T(0)} {local(a, 0)}
RET {L1}
L1 (exit)
local a, b = x, y
function()
--upvalues _ENV*
--[local symbols] a, b
local
--[symbols]
a --local symbol any
,
b --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] a, b
local
--[symbols]
a --local symbol any
,
b --local symbol any
--[expressions]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
LOADGLOBAL {Upval(_ENV), 'y' Ks(1)} {T(1)}
MOV {T(0)} {local(a, 0)}
MOV {T(1)} {local(b, 1)}
RET {L1}
L1 (exit)
local a: integer return a+3
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol integer
return
--[binary expr start] any
--[suffixed expr start] integer
--[primary start] integer
a --local symbol integer
--[primary end]
--[suffixed expr end]
+
3
--[binary expr end]
end
function()
--upvalues _ENV*
--[local symbols] a
local
--[symbols]
a --local symbol integer
return
--[binary expr start] integer
--[suffixed expr start] integer
--[primary start] integer
a --local symbol integer
--[primary end]
--[suffixed expr end]
+
3
--[binary expr end]
end
define Proc%1
L0 (entry)
INIT {Tint(0)}
ADDii {Tint(0), 3 Kint(0)} {Tint(1)}
RET {Tint(1)} {L1}
L1 (exit)
local i: integer; return t[i/5]
function()
--upvalues _ENV*
--[local symbols] i
local
--[symbols]
i --local symbol integer
return
--[suffixed expr start] any
--[primary start] any
t --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[binary expr start] any
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
/
5
--[binary expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] i
local
--[symbols]
i --local symbol integer
return
--[suffixed expr start] any
--[primary start] any
t --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[binary expr start] number
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
/
5
--[binary expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
INIT {Tint(0)}
LOADGLOBAL {Upval(_ENV), 't' Ks(0)} {T(0)}
DIVii {Tint(0), 5 Kint(0)} {Tflt(0)}
GET {T(0), Tflt(0)} {T(1)}
RET {T(1)} {L1}
L1 (exit)
local t: integer[]; return t[0]
function()
--upvalues _ENV*
--[local symbols] t
local
--[symbols]
t --local symbol integer[]
return
--[suffixed expr start] any
--[primary start] integer[]
t --local symbol integer[]
--[primary end]
--[suffix list start]
--[Y index start] any
[
0
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] t
local
--[symbols]
t --local symbol integer[]
return
--[suffixed expr start] integer
--[primary start] integer[]
t --local symbol integer[]
--[primary end]
--[suffix list start]
--[Y index start] integer
[
0
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
NEWIARRAY {local(t, 0)}
IAGETik {local(t, 0), 0 Kint(0)} {Tint(0)}
RET {Tint(0)} {L1}
L1 (exit)
return f()[1]
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'f' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1), 1 Kint(0)}
GETik {T(1), 1 Kint(0)} {T(2)}
RET {T(2)} {L1}
L1 (exit)
return x.y[1]
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'y'
--[field selector end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'y'
--[field selector end]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'x' Ks(0)} {T(0)}
GETsk {T(0), 'y' Ks(1)} {T(1)}
GETik {T(1), 1 Kint(0)} {T(2)}
RET {T(2)} {L1}
L1 (exit)
local t: integer[] if (t[1] == 5) then return true end return false
function()
--upvalues _ENV*
--[local symbols] t
local
--[symbols]
t --local symbol integer[]
if
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] integer[]
t --local symbol integer[]
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
==
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
then
return
true
end
return
false
end
function()
--upvalues _ENV*
--[local symbols] t
local
--[symbols]
t --local symbol integer[]
if
--[suffixed expr start] boolean
--[primary start] boolean
--[binary expr start] boolean
--[suffixed expr start] integer
--[primary start] integer[]
t --local symbol integer[]
--[primary end]
--[suffix list start]
--[Y index start] integer
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
==
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
then
return
true
end
return
false
end
define Proc%1
L0 (entry)
NEWIARRAY {local(t, 0)}
BR {L2}
L1 (exit)
L2
IAGETik {local(t, 0), 1 Kint(0)} {Tint(0)}
EQii {Tint(0), 5 Kint(1)} {Tbool(1)}
CBR {Tbool(1)} {L3, L4}
L3
RET {true} {L1}
L4
RET {false} {L1}
local t: table local len: integer = #t return len
function()
--upvalues _ENV*
--[local symbols] t, len
local
--[symbols]
t --local symbol table
local
--[symbols]
len --local symbol integer
--[expressions]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
t --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
return
--[suffixed expr start] integer
--[primary start] integer
len --local symbol integer
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
--[local symbols] t, len
local
--[symbols]
t --local symbol table
local
--[symbols]
len --local symbol integer
--[expressions]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
t --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
return
--[suffixed expr start] integer
--[primary start] integer
len --local symbol integer
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
NEWTABLE {local(t, 0)}
LEN {local(t, 0)} {T(0)}
TOINT {T(0)}
MOVi {T(0)} {Tint(0)}
RET {Tint(0)} {L1}
L1 (exit)
return function(t: table, i: integer) i = #t end
function()
--upvalues _ENV*
return
function(
t --local symbol table
,
i --local symbol integer
)
--[local symbols] t, i
--[expression statement start]
--[var list start]
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
t --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
return
function(
t --local symbol table
,
i --local symbol integer
)
--[local symbols] t, i
--[expression statement start]
--[var list start]
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
t --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
TOTABLE {local(t, 0)}
TOINT {local(i, 1)}
LEN {local(t, 0)} {T(0)}
TOINT {T(0)}
MOVi {T(0)} {local(i, 1)}
RET {L1}
L1 (exit)
::L1:: a = 1; goto L1; return
function()
--upvalues _ENV*
--[local symbols] L1:
::L1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
goto L1
return
end
function()
--upvalues _ENV*
--[local symbols] L1:
::L1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
goto L1
return
end
define Proc%1
L0 (entry)
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'a' Ks(0)}
BR {L0}
L1 (exit)
L2
RET {L1}
::l1:: do goto l1; x = 1; ::l1:: z = 2 end y = 1; goto l1
function()
--upvalues _ENV*
--[local symbols] l1:
::l1::
do
--[local symbols] l1:
goto l1
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
::l1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
2
--[expression list end]
--[expression statement end]
end
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
goto l1
end
function()
--upvalues _ENV*
--[local symbols] l1:
::l1::
do
--[local symbols] l1:
goto l1
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
::l1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
z --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
2
--[expression list end]
--[expression statement end]
end
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
y --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
goto l1
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
STOREGLOBAL {2 Kint(1)} {Upval(_ENV), 'z' Ks(1)}
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'y' Ks(2)}
BR {L0}
L3
STOREGLOBAL {1 Kint(0)} {Upval(_ENV), 'x' Ks(0)}
BR {L2}
L4
RET {L1}
goto l1; do ::l1:: end
function()
--upvalues _ENV*
goto l1
do
--[local symbols] l1:
::l1::
end
end
function()
--upvalues _ENV*
goto l1
do
--[local symbols] l1:
::l1::
end
end
return function()
local a = 1
local function y()
return function()
return a
end
end
local a = 5
local function z()
return function()
return a
end
end
return y, z
end
function()
--upvalues _ENV*
return
function()
--[local symbols] a, y, a, z
local
--[symbols]
a --local symbol any
--[expressions]
1
local
--[symbols]
y --local symbol closure
--[expressions]
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
local
--[symbols]
a --local symbol any
--[expressions]
5
local
--[symbols]
z --local symbol closure
--[expressions]
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
return
--[suffixed expr start] closure
--[primary start] closure
y --local symbol closure
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] closure
--[primary start] closure
z --local symbol closure
--[primary end]
--[suffixed expr end]
end
end
function()
--upvalues _ENV*
return
function()
--[local symbols] a, y, a, z
local
--[symbols]
a --local symbol any
--[expressions]
1
local
--[symbols]
y --local symbol closure
--[expressions]
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
local
--[symbols]
a --local symbol any
--[expressions]
5
local
--[symbols]
z --local symbol closure
--[expressions]
function()
--upvalues a
return
function()
--upvalues a
return
--[suffixed expr start] any
--[primary start] any
a --upvalue any
--[primary end]
--[suffixed expr end]
end
end
return
--[suffixed expr start] closure
--[primary start] closure
y --local symbol closure
--[primary end]
--[suffixed expr end]
,
--[suffixed expr start] closure
--[primary start] closure
z --local symbol closure
--[primary end]
--[suffixed expr end]
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
MOV {1 Kint(0)} {local(a, 0)}
CLOSURE {Proc%3} {T(0)}
MOV {T(0)} {local(y, 1)}
MOV {5 Kint(1)} {local(a, 2)}
CLOSURE {Proc%5} {T(0)}
MOV {T(0)} {local(z, 3)}
RET {local(y, 1), local(z, 3)} {L1}
L1 (exit)
define Proc%3
L0 (entry)
CLOSURE {Proc%4} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%4
L0 (entry)
RET {Upval(0, Proc%2, a)} {L1}
L1 (exit)
define Proc%5
L0 (entry)
CLOSURE {Proc%6} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%6
L0 (entry)
RET {Upval(0, Proc%2, a)} {L1}
L1 (exit)
return function (a, b, c, d, e)
if a == b then goto l1
elseif a == c then goto l2
elseif a == d then goto l2
else if a == e then goto l3
else goto l3
end
end
::l1:: ::l2:: ::l3:: ::l4::
end
function()
--upvalues _ENV*
return
function(
a --local symbol any
,
b --local symbol any
,
c --local symbol any
,
d --local symbol any
,
e --local symbol any
)
--[local symbols] a, b, c, d, e, l1:, l2:, l3:, l4:
if
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
b --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l1
elseif
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
c --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l2
elseif
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
d --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l2
else
if
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
e --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l3
else
goto l3
end
end
::l1::
::l2::
::l3::
::l4::
end
end
function()
--upvalues _ENV*
return
function(
a --local symbol any
,
b --local symbol any
,
c --local symbol any
,
d --local symbol any
,
e --local symbol any
)
--[local symbols] a, b, c, d, e, l1:, l2:, l3:, l4:
if
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
b --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l1
elseif
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
c --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l2
elseif
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
d --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l2
else
if
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
==
--[suffixed expr start] any
--[primary start] any
e --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
then
goto l3
else
goto l3
end
end
::l1::
::l2::
::l3::
::l4::
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
BR {L2}
L1 (exit)
L2
EQ {local(a, 0), local(b, 1)} {T(0)}
CBR {T(0)} {L5, L3}
L3
EQ {local(a, 0), local(c, 2)} {T(1)}
CBR {T(1)} {L6, L4}
L4
EQ {local(a, 0), local(d, 3)} {T(2)}
CBR {T(2)} {L7, L8}
L5
BR {L10}
L6
BR {L12}
L7
BR {L12}
L8
BR {L15}
L9
BR {L10}
L10
BR {L12}
L11
BR {L9}
L12
BR {L19}
L13
BR {L9}
L14
BR {L9}
L15
EQ {local(a, 0), local(e, 4)} {T(3)}
CBR {T(3)} {L16, L17}
L16
BR {L19}
L17
BR {L19}
L18
BR {L9}
L19
RET {L1}
L20
BR {L18}
L21
BR {L18}
return function (a) while a < 10 do a = a + 1 end end
function()
--upvalues _ENV*
return
function(
a --local symbol any
)
--[local symbols] a
while
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
<
10
--[binary expr end]
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
end
end
end
function()
--upvalues _ENV*
return
function(
a --local symbol any
)
--[local symbols] a
while
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
<
10
--[binary expr end]
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
end
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
BR {L2}
L1 (exit)
L2
LT {local(a, 0), 10 Kint(0)} {T(0)}
CBR {T(0)} {L3, L4}
L3
ADD {local(a, 0), 1 Kint(1)} {T(0)}
MOV {T(0)} {local(a, 0)}
BR {L2}
L4
RET {L1}
return function (a) ::L2:: if not(a < 10) then goto L1 end; a = a + 1;
goto L2; ::L1:: end
function()
--upvalues _ENV*
return
function(
a --local symbol any
)
--[local symbols] a, L2:, L1:
::L2::
if
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
<
10
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
then
goto L1
end
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
goto L2
::L1::
end
end
function()
--upvalues _ENV*
return
function(
a --local symbol any
)
--[local symbols] a, L2:, L1:
::L2::
if
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
<
10
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
then
goto L1
end
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
a --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
goto L2
::L1::
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
BR {L2}
L1 (exit)
L2
LT {local(a, 0), 10 Kint(0)} {T(0)}
NOT {T(0)} {T(1)}
CBR {T(1)} {L3, L4}
L3
BR {L5}
L4
ADD {local(a, 0), 1 Kint(1)} {T(2)}
MOV {T(2)} {local(a, 0)}
BR {L0}
L5
RET {L1}
L6
BR {L4}
L7
BR {L5}
return function ()
(function () end){f()}
end
function()
--upvalues _ENV*
return
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] closure
--[primary start] closure
function()
end
--[primary end]
--[suffix list start]
--[function call start] any
(
{ --[table constructor start] table
--[indexed assign start] any
--[value start]
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
return
function()
--upvalues _ENV*
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] closure
function()
end
--[primary end]
--[suffix list start]
--[function call start] any
(
{ --[table constructor start] table
--[indexed assign start] any
--[value start]
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
CLOSURE {Proc%3} {T(0)}
MOV {T(0)} {T(1)}
NEWTABLE {T(2)}
LOADGLOBAL {Upval(_ENV), 'f' Ks(0)} {T(3)}
MOV {T(3)} {T(4)}
CALL {T(4)} {T(4..), -1 Kint(1)}
TPUTik {T(4..)} {T(2), 1 Kint(0)}
CALL {T(1), T(2)} {T(1..), 1 Kint(0)}
RET {L1}
L1 (exit)
define Proc%3
L0 (entry)
RET {L1}
L1 (exit)
return function ()
local sum
for j = 1,500 do
sum = 0.0
for k = 1,10000 do
sum = sum + 1.0/(k*k)
end
end
return sum
end
function()
--upvalues _ENV*
return
function()
--[local symbols] sum
local
--[symbols]
sum --local symbol any
for
--[local symbols] j
j --local symbol any
=
1
,
500
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
0.0000000000000000
--[expression list end]
--[expression statement end]
for
--[local symbols] k
k --local symbol any
=
1
,
10000
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
+
--[binary expr start] any
1.0000000000000000
/
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
k --local symbol any
--[primary end]
--[suffixed expr end]
*
--[suffixed expr start] any
--[primary start] any
k --local symbol any
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
--[expression list end]
--[expression statement end]
end
end
return
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
end
end
function()
--upvalues _ENV*
return
function()
--[local symbols] sum
local
--[symbols]
sum --local symbol any
for
--[local symbols] j
j --local symbol integer
=
1
,
500
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
0.0000000000000000
--[expression list end]
--[expression statement end]
for
--[local symbols] k
k --local symbol integer
=
1
,
10000
do
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
+
--[binary expr start] number
1.0000000000000000
/
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
--[suffixed expr start] integer
--[primary start] integer
k --local symbol integer
--[primary end]
--[suffixed expr end]
*
--[suffixed expr start] integer
--[primary start] integer
k --local symbol integer
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
--[expression list end]
--[expression statement end]
end
end
return
--[suffixed expr start] any
--[primary start] any
sum --local symbol any
--[primary end]
--[suffixed expr end]
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
INIT {local(sum, 0)}
MOV {1 Kint(0)} {Tint(1)}
MOV {500 Kint(1)} {Tint(2)}
MOV {1 Kint(0)} {Tint(3)}
SUBii {Tint(1), Tint(3)} {Tint(1)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(1), Tint(3)} {Tint(1)}
BR {L3}
L3
LIii {Tint(2), Tint(1)} {Tbool(4)}
CBR {Tbool(4)} {L5, L4}
L4
MOV {Tint(1)} {Tint(0)}
MOV {0E0 Kflt(0)} {local(sum, 0)}
MOV {1 Kint(0)} {Tint(6)}
MOV {10000 Kint(2)} {Tint(7)}
MOV {1 Kint(0)} {Tint(8)}
SUBii {Tint(6), Tint(8)} {Tint(6)}
BR {L6}
L5
RET {local(sum, 0)} {L1}
L6
ADDii {Tint(6), Tint(8)} {Tint(6)}
BR {L7}
L7
LIii {Tint(7), Tint(6)} {Tbool(9)}
CBR {Tbool(9)} {L9, L8}
L8
MOV {Tint(6)} {Tint(5)}
MULii {Tint(5), Tint(5)} {Tint(10)}
DIVfi {1E0 Kflt(1), Tint(10)} {Tflt(0)}
ADD {local(sum, 0), Tflt(0)} {T(0)}
MOV {T(0)} {local(sum, 0)}
BR {L6}
L9
BR {L2}
function matmul(a: table, b: table)
assert(@integer(#a[1]) == #b);
local m: integer, n: integer, p: integer, x: table = #a, #a[1], #b[1], {};
local c: table = matrix.T(b); -- transpose for efficiency
for i = 1, m do
local xi: number[] = table.numarray(p, 0.0)
x[i] = xi
for j = 1, p do
local sum: number, ai: number[], cj: number[] = 0.0, @number[](a[i]), @number[](c[j]);
-- for luajit, caching c[j] or not makes no difference; lua is not so clever
for k = 1, n do sum = sum + ai[k] * cj[k] end
xi[j] = sum;
end
end
return x
end
return matmul
function()
--upvalues _ENV*
matmul --global symbol any
=
function(
a --local symbol table
,
b --local symbol table
)
--upvalues _ENV*
--[local symbols] a, b, m, n, p, x, c
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
assert --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[binary expr start] any
--[unary expr start] any
@integer
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
==
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
b --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
local
--[symbols]
m --local symbol integer
,
n --local symbol integer
,
p --local symbol integer
,
x --local symbol table
--[expressions]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
a --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
b --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
,
{ --[table constructor start] table
} --[table constructor end]
local
--[symbols]
c --local symbol table
--[expressions]
--[suffixed expr start] any
--[primary start] any
matrix --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'T'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] table
--[primary start] table
b --local symbol table
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
for
--[local symbols] i
i --local symbol any
=
1
,
--[suffixed expr start] integer
--[primary start] integer
m --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[local symbols] xi
local
--[symbols]
xi --local symbol number[]
--[expressions]
--[suffixed expr start] any
--[primary start] any
table --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'numarray'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] integer
--[primary start] integer
p --local symbol integer
--[primary end]
--[suffixed expr end]
,
0.0000000000000000
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] table
x --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] number[]
--[primary start] number[]
xi --local symbol number[]
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
for
--[local symbols] j
j --local symbol any
=
1
,
--[suffixed expr start] integer
--[primary start] integer
p --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[local symbols] sum, ai, cj
local
--[symbols]
sum --local symbol number
,
ai --local symbol number[]
,
cj --local symbol number[]
--[expressions]
0.0000000000000000
,
--[unary expr start] any
@number[]
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] any
@number[]
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] table
c --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
j --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
for
--[local symbols] k
k --local symbol any
=
1
,
--[suffixed expr start] integer
--[primary start] integer
n --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[expression statement start]
--[var list start]
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
+
--[binary expr start] any
--[suffixed expr start] any
--[primary start] number[]
ai --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
k --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
*
--[suffixed expr start] any
--[primary start] number[]
cj --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
k --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
--[expression list end]
--[expression statement end]
end
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] number[]
xi --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
j --local symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
return
--[suffixed expr start] table
--[primary start] table
x --local symbol table
--[primary end]
--[suffixed expr end]
end
return
--[suffixed expr start] any
--[primary start] any
matmul --global symbol any
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
matmul --global symbol any
=
function(
a --local symbol table
,
b --local symbol table
)
--upvalues _ENV*
--[local symbols] a, b, m, n, p, x, c
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
assert --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[binary expr start] any
--[unary expr start] integer
@integer
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
==
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
b --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
local
--[symbols]
m --local symbol integer
,
n --local symbol integer
,
p --local symbol integer
,
x --local symbol table
--[expressions]
--[unary expr start] any
#
--[suffixed expr start] table
--[primary start] table
a --local symbol table
--[primary end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] table
b --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[unary expr end]
,
{ --[table constructor start] table
} --[table constructor end]
local
--[symbols]
c --local symbol table
--[expressions]
--[suffixed expr start] any
--[primary start] any
matrix --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'T'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] table
--[primary start] table
b --local symbol table
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
for
--[local symbols] i
i --local symbol integer
=
1
,
--[suffixed expr start] integer
--[primary start] integer
m --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[local symbols] xi
local
--[symbols]
xi --local symbol number[]
--[expressions]
--[suffixed expr start] any
--[primary start] any
table --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'numarray'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] integer
--[primary start] integer
p --local symbol integer
--[primary end]
--[suffixed expr end]
,
0.0000000000000000
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] table
x --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] number[]
--[primary start] number[]
xi --local symbol number[]
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
for
--[local symbols] j
j --local symbol integer
=
1
,
--[suffixed expr start] integer
--[primary start] integer
p --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[local symbols] sum, ai, cj
local
--[symbols]
sum --local symbol number
,
ai --local symbol number[]
,
cj --local symbol number[]
--[expressions]
0.0000000000000000
,
--[unary expr start] number[]
@number[]
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] table
a --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
,
--[unary expr start] number[]
@number[]
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] table
c --local symbol table
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[suffixed expr start] integer
--[primary start] integer
j --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
for
--[local symbols] k
k --local symbol integer
=
1
,
--[suffixed expr start] integer
--[primary start] integer
n --local symbol integer
--[primary end]
--[suffixed expr end]
do
--[expression statement start]
--[var list start]
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] number
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
+
--[binary expr start] number
--[suffixed expr start] number
--[primary start] number[]
ai --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] number
[
--[suffixed expr start] integer
--[primary start] integer
k --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
*
--[suffixed expr start] number
--[primary start] number[]
cj --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] number
[
--[suffixed expr start] integer
--[primary start] integer
k --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
--[expression list end]
--[expression statement end]
end
--[expression statement start]
--[var list start]
--[suffixed expr start] number
--[primary start] number[]
xi --local symbol number[]
--[primary end]
--[suffix list start]
--[Y index start] number
[
--[suffixed expr start] integer
--[primary start] integer
j --local symbol integer
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] number
--[primary start] number
sum --local symbol number
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
return
--[suffixed expr start] table
--[primary start] table
x --local symbol table
--[primary end]
--[suffixed expr end]
end
return
--[suffixed expr start] any
--[primary start] any
matmul --global symbol any
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'matmul' Ks(0)}
LOADGLOBAL {Upval(_ENV), 'matmul' Ks(0)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
TOTABLE {local(a, 0)}
TOTABLE {local(b, 1)}
LOADGLOBAL {Upval(_ENV), 'assert' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
TGETik {local(a, 0), 1 Kint(0)} {T(2)}
LEN {T(2)} {T(3)}
TOINT {T(3)}
MOV {T(3)} {Tint(3)}
LEN {local(b, 1)} {T(4)}
EQ {Tint(3), T(4)} {T(5)}
CALL {T(1), T(5)} {T(1..), 1 Kint(0)}
LEN {local(a, 0)} {T(5)}
TGETik {local(a, 0), 1 Kint(0)} {T(4)}
LEN {T(4)} {T(6)}
TGETik {local(b, 1), 1 Kint(0)} {T(7)}
LEN {T(7)} {T(8)}
NEWTABLE {T(9)}
TOINT {T(5)}
MOVi {T(5)} {Tint(0)}
TOINT {T(6)}
MOVi {T(6)} {Tint(1)}
TOINT {T(8)}
MOVi {T(8)} {Tint(2)}
MOV {T(9)} {local(x, 2)}
LOADGLOBAL {Upval(_ENV), 'matrix' Ks(1)} {T(9)}
GETsk {T(9), 'T' Ks(2)} {T(8)}
MOV {T(8)} {T(6)}
CALL {T(6), local(b, 1)} {T(6..), 1 Kint(0)}
TOTABLE {T(6[6..])}
MOV {T(6[6..])} {local(c, 3)}
MOV {1 Kint(0)} {Tint(4)}
MOV {Tint(0)} {Tint(5)}
MOV {1 Kint(0)} {Tint(6)}
SUBii {Tint(4), Tint(6)} {Tint(4)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(4), Tint(6)} {Tint(4)}
BR {L3}
L3
LIii {Tint(5), Tint(4)} {Tbool(7)}
CBR {Tbool(7)} {L5, L4}
L4
MOV {Tint(4)} {Tint(3)}
LOADGLOBAL {Upval(_ENV), 'table' Ks(3)} {T(5)}
GETsk {T(5), 'numarray' Ks(4)} {T(10)}
MOV {T(10)} {T(11)}
CALL {T(11), Tint(2), 0E0 Kflt(0)} {T(11..), 1 Kint(0)}
TOFARRAY {T(11[11..])}
MOV {T(11[11..])} {local(xi, 4)}
MOV {local(xi, 4)} {T(13)}
TPUTik {T(13)} {local(x, 2), Tint(3)}
MOV {1 Kint(0)} {Tint(9)}
MOV {Tint(2)} {Tint(10)}
MOV {1 Kint(0)} {Tint(11)}
SUBii {Tint(9), Tint(11)} {Tint(9)}
BR {L6}
L5
RET {local(x, 2)} {L1}
L6
ADDii {Tint(9), Tint(11)} {Tint(9)}
BR {L7}
L7
LIii {Tint(10), Tint(9)} {Tbool(12)}
CBR {Tbool(12)} {L9, L8}
L8
MOV {Tint(9)} {Tint(8)}
TGETik {local(a, 0), Tint(3)} {T(13)}
TOFARRAY {T(13)}
TGETik {local(c, 3), Tint(8)} {T(12)}
TOFARRAY {T(12)}
MOVf {0E0 Kflt(0)} {Tflt(0)}
MOV {T(13)} {local(ai, 5)}
MOV {T(12)} {local(cj, 6)}
MOV {1 Kint(0)} {Tint(14)}
MOV {Tint(1)} {Tint(15)}
MOV {1 Kint(0)} {Tint(16)}
SUBii {Tint(14), Tint(16)} {Tint(14)}
BR {L10}
L9
BR {L2}
L10
ADDii {Tint(14), Tint(16)} {Tint(14)}
BR {L11}
L11
LIii {Tint(15), Tint(14)} {Tbool(17)}
CBR {Tbool(17)} {L13, L12}
L12
MOV {Tint(14)} {Tint(13)}
FAGETik {local(ai, 5), Tint(13)} {Tflt(1)}
FAGETik {local(cj, 6), Tint(13)} {Tflt(2)}
MULff {Tflt(1), Tflt(2)} {Tflt(3)}
ADDff {Tflt(0), Tflt(3)} {Tflt(2)}
MOVf {Tflt(2)} {Tflt(0)}
BR {L10}
L13
FAPUTfv {Tflt(0)} {local(xi, 4), Tint(8)}
BR {L6}
return -3+4*5//2^3^2//9+4%10/3 == (-3)+(((4*5)//(2^(3^2)))//9)+((4%10)/3)
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
3
--[unary expr end]
+
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
4
*
5
--[binary expr end]
//
--[binary expr start] any
2
^
--[binary expr start] any
3
^
2
--[binary expr end]
--[binary expr end]
--[binary expr end]
//
9
--[binary expr end]
--[binary expr end]
+
--[binary expr start] any
--[binary expr start] any
4
%
10
--[binary expr end]
/
3
--[binary expr end]
--[binary expr end]
==
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
-
3
--[unary expr end]
--[primary end]
--[suffixed expr end]
+
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
4
*
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
2
^
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
3
^
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
9
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
+
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
4
%
10
--[binary expr end]
--[primary end]
--[suffixed expr end]
/
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] integer
-
3
--[unary expr end]
+
--[binary expr start] any
--[binary expr start] any
--[binary expr start] integer
4
*
5
--[binary expr end]
//
--[binary expr start] number
2
^
--[binary expr start] number
3
^
2
--[binary expr end]
--[binary expr end]
--[binary expr end]
//
9
--[binary expr end]
--[binary expr end]
+
--[binary expr start] number
--[binary expr start] integer
4
%
10
--[binary expr end]
/
3
--[binary expr end]
--[binary expr end]
==
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] integer
--[primary start] integer
--[unary expr start] integer
-
3
--[unary expr end]
--[primary end]
--[suffixed expr end]
+
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
4
*
5
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
2
^
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
3
^
2
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
//
9
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
+
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[suffixed expr start] integer
--[primary start] integer
--[binary expr start] integer
4
%
10
--[binary expr end]
--[primary end]
--[suffixed expr end]
/
3
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {3 Kint(0)} {Tint(0)}
MULii {4 Kint(1), 5 Kint(2)} {Tint(1)}
POW {3 Kint(0), 2 Kint(3)} {Tflt(0)}
POW {2 Kint(3), Tflt(0)} {Tflt(1)}
IDIV {Tint(1), Tflt(1)} {T(0)}
IDIV {T(0), 9 Kint(4)} {T(1)}
ADD {Tint(0), T(1)} {T(0)}
MOD {4 Kint(1), 10 Kint(5)} {Tint(0)}
DIVii {Tint(0), 3 Kint(0)} {Tflt(1)}
ADD {T(0), Tflt(1)} {T(1)}
UNMi {3 Kint(0)} {Tint(0)}
MULii {4 Kint(1), 5 Kint(2)} {Tint(1)}
POW {3 Kint(0), 2 Kint(3)} {Tflt(1)}
POW {2 Kint(3), Tflt(1)} {Tflt(0)}
IDIV {Tint(1), Tflt(0)} {T(0)}
IDIV {T(0), 9 Kint(4)} {T(2)}
ADD {Tint(0), T(2)} {T(0)}
MOD {4 Kint(1), 10 Kint(5)} {Tint(0)}
DIVii {Tint(0), 3 Kint(0)} {Tflt(0)}
ADD {T(0), Tflt(0)} {T(2)}
EQ {T(1), T(2)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
return -3%5 == 2 and -3+5 == 2
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
3
--[unary expr end]
%
5
--[binary expr end]
==
2
--[binary expr end]
and
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
3
--[unary expr end]
+
5
--[binary expr end]
==
2
--[binary expr end]
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] boolean
--[binary expr start] integer
--[unary expr start] integer
-
3
--[unary expr end]
%
5
--[binary expr end]
==
2
--[binary expr end]
and
--[binary expr start] boolean
--[binary expr start] integer
--[unary expr start] integer
-
3
--[unary expr end]
+
5
--[binary expr end]
==
2
--[binary expr end]
--[binary expr end]
end
define Proc%1
L0 (entry)
UNMi {3 Kint(0)} {Tint(0)}
MOD {Tint(0), 5 Kint(1)} {Tint(1)}
EQii {Tint(1), 2 Kint(2)} {Tbool(0)}
MOV {Tbool(0)} {T(0)}
CBR {T(0)} {L2, L3}
L1 (exit)
L2
UNMi {3 Kint(0)} {Tint(0)}
ADDii {Tint(0), 5 Kint(1)} {Tint(1)}
EQii {Tint(1), 2 Kint(2)} {Tbool(0)}
MOV {Tbool(0)} {T(0)}
BR {L3}
L3
RET {T(0)} {L1}
return -((2.0^8 + -(-1)) % 8)/2 * 4 - 3
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] any
2.0000000000000000
^
8
--[binary expr end]
+
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
-
1
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
%
8
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
/
2
--[binary expr end]
*
4
--[binary expr end]
-
3
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] number
--[binary expr start] number
--[binary expr start] number
--[unary expr start] number
-
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[binary expr start] number
2.0000000000000000
^
8
--[binary expr end]
+
--[unary expr start] integer
-
--[suffixed expr start] integer
--[primary start] integer
--[unary expr start] integer
-
1
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
%
8
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
/
2
--[binary expr end]
*
4
--[binary expr end]
-
3
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {2E0 Kflt(0), 8 Kint(0)} {Tflt(0)}
UNMi {1 Kint(1)} {Tint(0)}
UNMi {Tint(0)} {Tint(1)}
ADDfi {Tflt(0), Tint(1)} {Tflt(1)}
MOD {Tflt(1), 8 Kint(0)} {Tflt(0)}
UNMf {Tflt(0)} {Tflt(1)}
DIVfi {Tflt(1), 2 Kint(2)} {Tflt(2)}
MULfi {Tflt(2), 4 Kint(3)} {Tflt(1)}
SUBfi {Tflt(1), 3 Kint(4)} {Tflt(2)}
RET {Tflt(2)} {L1}
L1 (exit)
return -((2^8 + -(-1)) % 8)//2 * 4 - 3
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
--[binary expr start] any
--[binary expr start] any
2
^
8
--[binary expr end]
+
--[unary expr start] any
-
--[suffixed expr start] any
--[primary start] any
--[unary expr start] any
-
1
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
%
8
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
//
2
--[binary expr end]
*
4
--[binary expr end]
-
3
--[binary expr end]
end
function()
--upvalues _ENV*
return
--[binary expr start] any
--[binary expr start] any
--[binary expr start] any
--[unary expr start] number
-
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[suffixed expr start] number
--[primary start] number
--[binary expr start] number
--[binary expr start] number
2
^
8
--[binary expr end]
+
--[unary expr start] integer
-
--[suffixed expr start] integer
--[primary start] integer
--[unary expr start] integer
-
1
--[unary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
--[binary expr end]
--[primary end]
--[suffixed expr end]
%
8
--[binary expr end]
--[primary end]
--[suffixed expr end]
--[unary expr end]
//
2
--[binary expr end]
*
4
--[binary expr end]
-
3
--[binary expr end]
end
define Proc%1
L0 (entry)
POW {2 Kint(0), 8 Kint(1)} {Tflt(0)}
UNMi {1 Kint(2)} {Tint(0)}
UNMi {Tint(0)} {Tint(1)}
ADDfi {Tflt(0), Tint(1)} {Tflt(1)}
MOD {Tflt(1), 8 Kint(1)} {Tflt(0)}
UNMf {Tflt(0)} {Tflt(1)}
IDIV {Tflt(1), 2 Kint(0)} {T(0)}
MUL {T(0), 4 Kint(3)} {T(1)}
SUB {T(1), 3 Kint(4)} {T(0)}
RET {T(0)} {L1}
L1 (exit)
local x
do
local y = 12
goto l1
::l2:: x = x + 1; goto l3
::l1:: x = y; goto l2
end
::l3:: ::l3_1:: assert(x == 13)
function()
--upvalues _ENV*
--[local symbols] x, l3:, l3_1:
local
--[symbols]
x --local symbol any
do
--[local symbols] y, l2:, l1:
local
--[symbols]
y --local symbol any
--[expressions]
12
goto l1
::l2::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
goto l3
::l1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
y --local symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
goto l2
end
::l3::
::l3_1::
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
assert --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
==
13
--[binary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[local symbols] x, l3:, l3_1:
local
--[symbols]
x --local symbol any
do
--[local symbols] y, l2:, l1:
local
--[symbols]
y --local symbol any
--[expressions]
12
goto l1
::l2::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
+
1
--[binary expr end]
--[expression list end]
--[expression statement end]
goto l3
::l1::
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
y --local symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
goto l2
end
::l3::
::l3_1::
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
assert --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
x --local symbol any
--[primary end]
--[suffixed expr end]
==
13
--[binary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
INIT {local(x, 0)}
MOV {12 Kint(0)} {local(y, 1)}
BR {L2}
L1 (exit)
L2
MOV {local(y, 1)} {T(0)}
MOV {T(0)} {local(x, 0)}
BR {L3}
L3
ADD {local(x, 0), 1 Kint(1)} {T(0)}
MOV {T(0)} {local(x, 0)}
BR {L4}
L4
LOADGLOBAL {Upval(_ENV), 'assert' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
EQ {local(x, 0), 13 Kint(2)} {T(2)}
CALL {T(1), T(2)} {T(1..), 1 Kint(1)}
RET {L1}
L5
BR {L2}
L6
BR {L4}
for i=1,10 do print(i) end
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol any
=
1
,
10
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol integer
=
1
,
10
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {Tint(1)}
MOV {10 Kint(1)} {Tint(2)}
MOV {1 Kint(0)} {Tint(3)}
SUBii {Tint(1), Tint(3)} {Tint(1)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(1), Tint(3)} {Tint(1)}
BR {L3}
L3
LIii {Tint(2), Tint(1)} {Tbool(4)}
CBR {Tbool(4)} {L5, L4}
L4
MOV {Tint(1)} {Tint(0)}
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), Tint(0)} {T(1..), 1 Kint(0)}
BR {L2}
L5
RET {L1}
for i=10,1,-1 do print(i) end
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol any
=
10
,
1
,
--[unary expr start] any
-
1
--[unary expr end]
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol integer
=
10
,
1
,
--[unary expr start] integer
-
1
--[unary expr end]
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
MOV {10 Kint(0)} {Tint(1)}
MOV {1 Kint(1)} {Tint(2)}
UNMi {1 Kint(1)} {Tint(3)}
MOV {Tint(3)} {Tint(4)}
LIii {0 Kint(2), Tint(4)} {Tbool(5)}
SUBii {Tint(1), Tint(4)} {Tint(1)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(1), Tint(4)} {Tint(1)}
CBR {Tbool(5)} {L3, L4}
L3
LIii {Tint(2), Tint(1)} {Tbool(6)}
CBR {Tbool(6)} {L6, L5}
L4
LIii {Tint(1), Tint(2)} {Tbool(6)}
CBR {Tbool(6)} {L6, L5}
L5
MOV {Tint(1)} {Tint(0)}
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), Tint(0)} {T(1..), 1 Kint(1)}
BR {L2}
L6
RET {L1}
while true do print('forever') end
function()
--upvalues _ENV*
while
true
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
while
true
do
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
BR {L2}
L1 (exit)
L2
CBR {true} {L3, L4}
L3
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), 'forever' Ks(1)} {T(1..), 1 Kint(0)}
BR {L2}
L4
RET {L1}
repeat print('forever') brek until true
function()
--upvalues _ENV*
repeat
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
brek --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
until
true
--[repeat end]
end
function()
--upvalues _ENV*
repeat
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
brek --global symbol any
--[primary end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
until
true
--[repeat end]
end
define Proc%1
L0 (entry)
BR {L3}
L1 (exit)
L2
CBR {true} {L3, L4}
L3
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), 'forever' Ks(1)} {T(1..), 1 Kint(0)}
LOADGLOBAL {Upval(_ENV), 'brek' Ks(2)} {T(2)}
BR {L2}
L4
RET {L1}
repeat print('forever') break until true return
function()
--upvalues _ENV*
repeat
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
goto break
until
true
--[repeat end]
return
end
function()
--upvalues _ENV*
repeat
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
'forever'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
goto break
until
true
--[repeat end]
return
end
define Proc%1
L0 (entry)
BR {L3}
L1 (exit)
L2
CBR {true} {L3, L4}
L3
LOADGLOBAL {Upval(_ENV), 'print' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1), 'forever' Ks(1)} {T(1..), 1 Kint(0)}
BR {L4}
L4
RET {L1}
L5
BR {L2}
for i =1,10 do if i == 2 then break end end return
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol any
=
1
,
10
do
if
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
i --local symbol any
--[primary end]
--[suffixed expr end]
==
2
--[binary expr end]
then
goto break
end
end
return
end
function()
--upvalues _ENV*
for
--[local symbols] i
i --local symbol integer
=
1
,
10
do
if
--[binary expr start] boolean
--[suffixed expr start] integer
--[primary start] integer
i --local symbol integer
--[primary end]
--[suffixed expr end]
==
2
--[binary expr end]
then
goto break
end
end
return
end
define Proc%1
L0 (entry)
MOV {1 Kint(0)} {Tint(1)}
MOV {10 Kint(1)} {Tint(2)}
MOV {1 Kint(0)} {Tint(3)}
SUBii {Tint(1), Tint(3)} {Tint(1)}
BR {L2}
L1 (exit)
L2
ADDii {Tint(1), Tint(3)} {Tint(1)}
BR {L3}
L3
LIii {Tint(2), Tint(1)} {Tbool(4)}
CBR {Tbool(4)} {L5, L4}
L4
MOV {Tint(1)} {Tint(0)}
BR {L6}
L5
RET {L1}
L6
EQii {Tint(0), 2 Kint(2)} {Tbool(5)}
CBR {Tbool(5)} {L7, L8}
L7
BR {L5}
L8
BR {L2}
L9
BR {L8}
local msgs = {}
function Message (m)
if not _nomsg then
print(m)
msgs[#msgs+1] = string.sub(m, 3, -3)
end
end
function()
--upvalues _ENV*
--[local symbols] msgs
local
--[symbols]
msgs --local symbol any
--[expressions]
{ --[table constructor start] table
} --[table constructor end]
Message --global symbol any
=
function(
m --local symbol any
)
--upvalues _ENV*, msgs
--[local symbols] m
if
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
_nomsg --global symbol any
--[primary end]
--[suffixed expr end]
--[unary expr end]
then
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
m --local symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
msgs --upvalue any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[binary expr start] any
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] any
msgs --upvalue any
--[primary end]
--[suffixed expr end]
--[unary expr end]
+
1
--[binary expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
string --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'sub'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
m --local symbol any
--[primary end]
--[suffixed expr end]
,
3
,
--[unary expr start] any
-
3
--[unary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
end
function()
--upvalues _ENV*
--[local symbols] msgs
local
--[symbols]
msgs --local symbol any
--[expressions]
{ --[table constructor start] table
} --[table constructor end]
Message --global symbol any
=
function(
m --local symbol any
)
--upvalues _ENV*, msgs
--[local symbols] m
if
--[unary expr start] any
not
--[suffixed expr start] any
--[primary start] any
_nomsg --global symbol any
--[primary end]
--[suffixed expr end]
--[unary expr end]
then
--[expression statement start]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
print --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
m --local symbol any
--[primary end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
msgs --upvalue any
--[primary end]
--[suffix list start]
--[Y index start] any
[
--[binary expr start] any
--[unary expr start] any
#
--[suffixed expr start] any
--[primary start] any
msgs --upvalue any
--[primary end]
--[suffixed expr end]
--[unary expr end]
+
1
--[binary expr end]
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[suffixed expr start] any
--[primary start] any
string --global symbol any
--[primary end]
--[suffix list start]
--[field selector start] any
.
'sub'
--[field selector end]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
m --local symbol any
--[primary end]
--[suffixed expr end]
,
3
,
--[unary expr start] integer
-
3
--[unary expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[expression list end]
--[expression statement end]
end
end
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
MOV {T(0)} {local(msgs, 0)}
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'Message' Ks(0)}
CLOSE {local(msgs, 0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
BR {L2}
L1 (exit)
L2
LOADGLOBAL {Upval(_ENV), '_nomsg' Ks(0)} {T(0)}
NOT {T(0)} {T(1)}
CBR {T(1)} {L3, L4}
L3
LOADGLOBAL {Upval(_ENV), 'print' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
CALL {T(3), local(m, 0)} {T(3..), 1 Kint(0)}
LEN {Upval(1, Proc%1, msgs)} {T(4)}
ADD {T(4), 1 Kint(0)} {T(5)}
LOADGLOBAL {Upval(_ENV), 'string' Ks(2)} {T(6)}
GETsk {T(6), 'sub' Ks(3)} {T(7)}
MOV {T(7)} {T(8)}
UNMi {3 Kint(1)} {Tint(0)}
CALL {T(8), local(m, 0), 3 Kint(1), Tint(0)} {T(8..), 1 Kint(0)}
PUT {T(8[8..])} {Upval(1, Proc%1, msgs), T(5)}
BR {L4}
L4
RET {L1}
_soft = rawget(_G, "_soft") or false
Z[1][2] = false or true
local _g
r()[a].name = _g and 'Dibyendu' or 'majumdar'
function()
--upvalues _ENV*
--[local symbols] _g
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
_soft --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
rawget --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
_G --global symbol any
--[primary end]
--[suffixed expr end]
,
'_soft'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
or
false
--[binary expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
Z --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
2
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
false
or
true
--[binary expr end]
--[expression list end]
--[expression statement end]
local
--[symbols]
_g --local symbol any
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
r --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[field selector start] any
.
'name'
--[field selector end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
_g --local symbol any
--[primary end]
--[suffixed expr end]
and
'Dibyendu'
--[binary expr end]
or
'majumdar'
--[binary expr end]
--[expression list end]
--[expression statement end]
end
function()
--upvalues _ENV*
--[local symbols] _g
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
_soft --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
rawget --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
_G --global symbol any
--[primary end]
--[suffixed expr end]
,
'_soft'
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
or
false
--[binary expr end]
--[expression list end]
--[expression statement end]
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
Z --global symbol any
--[primary end]
--[suffix list start]
--[Y index start] any
[
1
]
--[Y index end]
--[Y index start] any
[
2
]
--[Y index end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
false
or
true
--[binary expr end]
--[expression list end]
--[expression statement end]
local
--[symbols]
_g --local symbol any
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
r --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[Y index start] any
[
--[suffixed expr start] any
--[primary start] any
a --global symbol any
--[primary end]
--[suffixed expr end]
]
--[Y index end]
--[field selector start] any
.
'name'
--[field selector end]
--[suffix list end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
--[binary expr start] any
--[binary expr start] any
--[suffixed expr start] any
--[primary start] any
_g --local symbol any
--[primary end]
--[suffixed expr end]
and
'Dibyendu'
--[binary expr end]
or
'majumdar'
--[binary expr end]
--[expression list end]
--[expression statement end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'rawget' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
LOADGLOBAL {Upval(_ENV), '_G' Ks(2)} {T(4)}
CALL {T(3), T(4), '_soft' Ks(0)} {T(3..), 1 Kint(0)}
MOV {T(3..)} {T(1)}
CBR {T(1)} {L3, L2}
L1 (exit)
L2
MOV {false} {T(1)}
BR {L3}
L3
STOREGLOBAL {T(1)} {Upval(_ENV), '_soft' Ks(0)}
LOADGLOBAL {Upval(_ENV), 'Z' Ks(3)} {T(1)}
GETik {T(1), 1 Kint(0)} {T(0)}
MOV {false} {T(4)}
CBR {T(4)} {L5, L4}
L4
MOV {true} {T(4)}
BR {L5}
L5
PUTik {T(4)} {T(0), 2 Kint(1)}
INIT {local(_g, 0)}
LOADGLOBAL {Upval(_ENV), 'r' Ks(4)} {T(4)}
MOV {T(4)} {T(3)}
CALL {T(3)} {T(3), 1 Kint(0)}
LOADGLOBAL {Upval(_ENV), 'a' Ks(5)} {T(5)}
GET {T(3), T(5)} {T(6)}
MOV {local(_g, 0)} {T(9)}
CBR {T(9)} {L8, L9}
L6
MOV {'majumdar' Ks(8)} {T(8)}
BR {L7}
L7
PUTsk {T(8)} {T(6), 'name' Ks(6)}
RET {L1}
L8
MOV {'Dibyendu' Ks(7)} {T(9)}
BR {L9}
L9
MOV {T(9)} {T(8)}
CBR {T(8)} {L7, L6}
function foo(bar: integer[], zee: number[], ...) end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol integer[]
,
zee --local symbol number[]
)
--[local symbols] bar, zee
end
end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol integer[]
,
zee --local symbol number[]
)
--[local symbols] bar, zee
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'foo' Ks(0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
TOIARRAY {local(bar, 0)}
TOFARRAY {local(zee, 1)}
RET {L1}
L1 (exit)
function foo(bar: number, zee: string) end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol number
,
zee --local symbol string
)
--[local symbols] bar, zee
end
end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol number
,
zee --local symbol string
)
--[local symbols] bar, zee
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'foo' Ks(0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
TOFLT {local(bar, 0)}
TOSTRING {local(zee, 1)}
RET {L1}
L1 (exit)
function foo(bar: closure, zee: My.User.Type) end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol closure
,
zee --local symbol userdata My.User.Type
)
--[local symbols] bar, zee
end
end
function()
--upvalues _ENV*
foo --global symbol any
=
function(
bar --local symbol closure
,
zee --local symbol userdata My.User.Type
)
--[local symbols] bar, zee
end
end
define Proc%1
L0 (entry)
CLOSURE {Proc%2} {T(1)}
STOREGLOBAL {T(1)} {Upval(_ENV), 'foo' Ks(0)}
RET {L1}
L1 (exit)
define Proc%2
L0 (entry)
TOCLOSURE {local(bar, 0)}
TOTYPE {'My.User.Type' Ks(0)} {local(zee, 1)}
RET {L1}
L1 (exit)
return (f())
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
--[suffixed expr start] any
--[primary start] any
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[primary end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
LOADGLOBAL {Upval(_ENV), 'f' Ks(0)} {T(0)}
MOV {T(0)} {T(1)}
CALL {T(1)} {T(1..), -1 Kint(0)}
RET {T(1[1..])} {L1}
L1 (exit)
return {g()}, f(g())
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[value start]
--[suffixed expr start] any
--[primary start] any
g --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
,
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
g --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
function()
--upvalues _ENV*
return
{ --[table constructor start] table
--[indexed assign start] any
--[value start]
--[suffixed expr start] any
--[primary start] any
g --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
--[value end]
--[indexed assign end]
} --[table constructor end]
,
--[suffixed expr start] any
--[primary start] any
f --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
--[suffixed expr start] any
--[primary start] any
g --global symbol any
--[primary end]
--[suffix list start]
--[function call start] any
(
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
)
--[function call end]
--[suffix list end]
--[suffixed expr end]
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
LOADGLOBAL {Upval(_ENV), 'g' Ks(0)} {T(1)}
MOV {T(1)} {T(2)}
CALL {T(2)} {T(2..), -1 Kint(1)}
TPUTik {T(2..)} {T(0), 1 Kint(0)}
LOADGLOBAL {Upval(_ENV), 'f' Ks(1)} {T(2)}
MOV {T(2)} {T(3)}
LOADGLOBAL {Upval(_ENV), 'g' Ks(0)} {T(4)}
MOV {T(4)} {T(5)}
CALL {T(5)} {T(5..), -1 Kint(1)}
CALL {T(3), T(5..)} {T(3..), -1 Kint(1)}
RET {T(0), T(3..)} {L1}
L1 (exit)
local _ENV = {}; return function() x = 1 end
function()
--upvalues _ENV*
--[local symbols] _ENV
local
--[symbols]
_ENV --local symbol any
--[expressions]
{ --[table constructor start] table
} --[table constructor end]
return
function()
--upvalues _ENV
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
end
function()
--upvalues _ENV*
--[local symbols] _ENV
local
--[symbols]
_ENV --local symbol any
--[expressions]
{ --[table constructor start] table
} --[table constructor end]
return
function()
--upvalues _ENV
--[expression statement start]
--[var list start]
--[suffixed expr start] any
--[primary start] any
x --global symbol any
--[primary end]
--[suffixed expr end]
= --[var list end]
--[expression list start]
1
--[expression list end]
--[expression statement end]
end
end
define Proc%1
L0 (entry)
NEWTABLE {T(0)}
MOV {T(0)} {local(_ENV, 0)}
CLOSURE {Proc%2} {T(0)}
RET {T(0)} {L1}
L1 (exit)
define Proc%2
L0 (entry)
STOREGLOBAL {1 Kint(0)} {Upval(0, Proc%1, _ENV), 'x' Ks(0)}
RET {L1}
L1 (exit)