mirror of
https://github.com/ValKmjolnir/Nasal-Interpreter.git
synced 2026-07-22 02:48:48 +08:00
⚡ move lvalue check from parse to codegen
This commit is contained in:
+62
-18
@@ -32,22 +32,66 @@ var z2 = {
|
||||
listt2: y2,
|
||||
};
|
||||
|
||||
println(w);#//1
|
||||
println(x);#//hello
|
||||
println(y);#//[1,hello]
|
||||
println(z);#//{...}
|
||||
println(z1);#//{...}
|
||||
println(y2);#//[...]
|
||||
println(y[0]);#//1
|
||||
println(y1[2][1]);#//hello
|
||||
println(z.numb);#//1
|
||||
println(z.listt[2][1]);#//hello
|
||||
println(z1.hashh.listt[2][1]);#//hello
|
||||
println(w); #//1
|
||||
println(x); #//hello
|
||||
println(y); #//[1,hello]
|
||||
println(z); #//{...}
|
||||
println(z1); #//{...}
|
||||
println(y2); #//[...]
|
||||
println(y[0]); #//1
|
||||
println(y1[2][1]); #//hello
|
||||
println(z.numb); #//1
|
||||
println(z.listt[2][1]); #//hello
|
||||
println(z1.hashh.listt[2][1]); #//hello
|
||||
println(y2[3].hashh.listt[2][1]);#//hello
|
||||
println(f);#//func(..){..}
|
||||
f();#//f is called
|
||||
println(z.funcc);#//func(..){..}
|
||||
z.funcc();#//f is called
|
||||
println(z.funcccall);#//func(..){..}
|
||||
z2.listt2[3].hashh.funcc();#//f is called
|
||||
println(y1[f2()][w]);#//hello
|
||||
println(f); #//func(..){..}
|
||||
f(); #//f is called
|
||||
println(z.funcc); #//func(..){..}
|
||||
z.funcc(); #//f is called
|
||||
println(z.funcccall); #//func(..){..}
|
||||
z2.listt2[3].hashh.funcc(); #//f is called
|
||||
println(y1[f2()][w]); #//hello
|
||||
|
||||
|
||||
# ValKmjolnir
|
||||
func(){
|
||||
var tm=maketimestamp();
|
||||
var duration=0;
|
||||
var f1=func(){}
|
||||
var f2=func(){var a=1;return a+1;}
|
||||
var f3=func(){var (a,b)=(1,1);return a+b+1;}
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1);
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f1();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)func{}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f2();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e7;i+=1)
|
||||
func{
|
||||
var a=1;
|
||||
return a+1;
|
||||
}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f3();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e7;i+=1)
|
||||
func{
|
||||
var (a,b)=(1,1);
|
||||
return a+b+1;
|
||||
}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
}();
|
||||
Reference in New Issue
Block a user