🚀 add new stl file `padding.nas` and update test files.

This commit is contained in:
ValKmjolnir 2022-09-04 17:53:00 +08:00
parent 5715c1df5f
commit 6c04487319
5 changed files with 128 additions and 101 deletions

16
stl/padding.nas Normal file
View File

@ -0,0 +1,16 @@
# padding.nas
# ValKmjolnir 2022/9/4
var leftpad=func(str,len,char=" "){
var strlen=size(str);
for(var i=strlen;i<len;i+=1)
str=char~str;
return str;
}
var rightpad=func(str,len,char=" "){
var strlen=size(str);
for(var i=strlen;i<len;i+=1)
str~=char;
return str;
}

View File

@ -1,29 +1,23 @@
# result.nas # result.nas
# ValKmjolnir 2021 # ValKmjolnir 2021
var ResultTrait={ var Result=func(){
var (ok,err,flag)=(nil,"",1);
return{
Ok:func(val){ Ok:func(val){
me.ok=val; ok=val;
me.flag=0; flag=0;
return me; return me;
}, },
Err:func(info){ Err:func(info){
me.err=info; err=info;
me.flag=1; flag=1;
return me; return me;
}, },
unwrap:func(){ unwrap:func(){
if(me.flag) if(flag)
die(me.err); die(err);
return me.ok; return ok;
} }
}; };
var Result=func(){
return{
ok:nil,
err:"",
flag:1,
parents:[ResultTrait]
};
}; };

View File

@ -1,3 +1,5 @@
import.stl.padding;
var source=[ var source=[
"main.cpp", "main.cpp",
"nasal_ast.h", "nasal_ast.h",
@ -21,6 +23,7 @@ var lib=[
"list.nas", "list.nas",
"log.nas", "log.nas",
"module.nas", "module.nas",
"padding.nas",
"process_bar.nas", "process_bar.nas",
"queue.nas", "queue.nas",
"result.nas", "result.nas",
@ -84,6 +87,14 @@ var module=[
"libsock.nas" "libsock.nas"
]; ];
var longest=func(vec...){
var len=0;
foreach(var v;vec)
foreach(var f;v)
len=size(f)>len?size(f):len;
return len;
}
var getname=func(s){ var getname=func(s){
var (len,ch)=(size(s),' '[0]); var (len,ch)=(size(s),' '[0]);
for(var i=0;i<len and s[i]!=ch;i+=1); for(var i=0;i<len and s[i]!=ch;i+=1);
@ -100,10 +111,12 @@ var count=func(s,c){
var calc=func(codetype,files,path=""){ var calc=func(codetype,files,path=""){
println(codetype); println(codetype);
var (bytes,line,semi,line_cnt,semi_cnt)=(0,0,0,0,0); var (bytes,line,semi,line_cnt,semi_cnt)=(0,0,0,0,0);
var padding_length=longest(source,lib,testfile,module);
forindex(var i;files){ forindex(var i;files){
var s=io.fin(getname(path~files[i])); var s=io.fin(getname(path~files[i]));
(line_cnt,semi_cnt)=(count(s,'\n'),count(s,';')); (line_cnt,semi_cnt)=(count(s,'\n'),count(s,';'));
println(files[i],'| ',line_cnt,'\tline | ',semi_cnt,' \tsemi'); println(rightpad(files[i],padding_length),
'| ',line_cnt,'\tline | ',semi_cnt,' \tsemi');
bytes+=size(s); bytes+=size(s);
line+=line_cnt; line+=line_cnt;
semi+=semi_cnt; semi+=semi_cnt;
@ -113,5 +126,8 @@ var calc=func(codetype,files,path=""){
return int(bytes/1024); return int(bytes/1024);
} }
var all=calc("source code:",source)+calc("lib:",lib,"stl/")+calc("test file:",testfile,"test/")+calc("module:",module,"module/"); var all=calc("source code:",source)
+calc("lib:",lib,"stl/")
+calc("test file:",testfile,"test/")
+calc("module:",module,"module/");
println('\ntotal: | ',all,'\tkb'); println('\ntotal: | ',all,'\tkb');

View File

@ -35,6 +35,7 @@ var filechecksum=func(){
"./stl/fg_env.nas", "./stl/file.nas", "./stl/fg_env.nas", "./stl/file.nas",
"./stl/lib.nas", "./stl/list.nas", "./stl/lib.nas", "./stl/list.nas",
"./stl/log.nas", "./stl/module.nas", "./stl/log.nas", "./stl/module.nas",
"./stl/padding.nas",
"./stl/process_bar.nas", "./stl/queue.nas", "./stl/process_bar.nas", "./stl/queue.nas",
"./stl/result.nas", "./stl/sort.nas", "./stl/result.nas", "./stl/sort.nas",
"./stl/stack.nas", "./test/ascii-art.nas", "./stl/stack.nas", "./test/ascii-art.nas",

View File

@ -50,10 +50,10 @@ func(){
var bar=process_bar.bar("block","point","line",25); var bar=process_bar.bar("block","point","line",25);
if(key!=nil and chr(key)=="q") if(key!=nil and chr(key)=="q")
break; break;
println("\e[1;1H Memory total(GB) : \e[36m",mem.MemTotal/1024/1024,"\e[0m"); println("\e[1;1H\e[1m Memory total(GB) : \e[0m\e[36m",mem.MemTotal/1024/1024,"\e[0m");
println("\e[2;1H Memory free(GB) : \e[36m",mem.MemFree/1024/1024,"\e[0m"); println("\e[2;1H\e[1m Memory free(GB) : \e[0m\e[36m",mem.MemFree/1024/1024,"\e[0m");
println("\e[3;1H Memory occupation(%): ",mem_occ>60?"\e[91m":"\e[32m",bar.bar(mem_occ/100)~" ",mem_occ,"\e[0m "); println("\e[3;1H\e[1m Memory occupation(%): \e[0m",mem_occ>60?"\e[91m":"\e[32m",bar.bar(mem_occ/100)~" ",mem_occ,"\e[0m ");
println("\e[4;1H CPU occupation(%) : ",cpu_occ>90?"\e[91m":"\e[32m",bar.bar(cpu_occ/100)~" ",cpu_occ,"\e[0m "); println("\e[4;1H\e[1m CPU occupation(%) : \e[0m",cpu_occ>90?"\e[91m":"\e[32m",bar.bar(cpu_occ/100)~" ",cpu_occ,"\e[0m ");
println("\e[5;1H Press 'q' to quit."); println("\e[5;1H Press 'q' to quit.");
} }
}(); }();