🚀 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
# ValKmjolnir 2021
var ResultTrait={
Ok:func(val){
me.ok=val;
me.flag=0;
return me;
},
Err:func(info){
me.err=info;
me.flag=1;
return me;
},
unwrap:func(){
if(me.flag)
die(me.err);
return me.ok;
}
};
var Result=func(){
var (ok,err,flag)=(nil,"",1);
return{
ok:nil,
err:"",
flag:1,
parents:[ResultTrait]
Ok:func(val){
ok=val;
flag=0;
return me;
},
Err:func(info){
err=info;
flag=1;
return me;
},
unwrap:func(){
if(flag)
die(err);
return ok;
}
};
};

View File

@ -1,89 +1,100 @@
import.stl.padding;
var source=[
"main.cpp ",
"nasal_ast.h ",
"nasal_builtin.h ",
"nasal_codegen.h ",
"nasal_dbg.h ",
"nasal_err.h ",
"nasal_gc.h ",
"nasal_import.h ",
"nasal_lexer.h ",
"nasal_opt.h ",
"nasal_parse.h ",
"nasal_vm.h ",
"nasal.h "
"main.cpp",
"nasal_ast.h",
"nasal_builtin.h",
"nasal_codegen.h",
"nasal_dbg.h",
"nasal_err.h",
"nasal_gc.h",
"nasal_import.h",
"nasal_lexer.h",
"nasal_opt.h",
"nasal_parse.h",
"nasal_vm.h",
"nasal.h"
];
var lib=[
"fg_env.nas ",
"file.nas ",
"lib.nas ",
"list.nas ",
"log.nas ",
"module.nas ",
"process_bar.nas ",
"queue.nas ",
"result.nas ",
"sort.nas ",
"stack.nas "
"fg_env.nas",
"file.nas",
"lib.nas",
"list.nas",
"log.nas",
"module.nas",
"padding.nas",
"process_bar.nas",
"queue.nas",
"result.nas",
"sort.nas",
"stack.nas"
];
var testfile=[
"ascii-art.nas ",
"auto_crash.nas ",
"bf.nas ",
"bfcolored.nas ",
"bfconvertor.nas ",
"bfs.nas ",
"bigloop.nas ",
"bp.nas ",
"calc.nas ",
"choice.nas ",
"class.nas ",
"coroutine.nas ",
"diff.nas ",
"exception.nas ",
"fib.nas ",
"filesystem.nas ",
"hexdump.nas ",
"httptest.nas ",
"json.nas ",
"leetcode1319.nas ",
"lexer.nas ",
"life.nas ",
"loop.nas ",
"mandel.nas ",
"mandelbrot.nas ",
"md5.nas ",
"md5compare.nas ",
"module_test.nas ",
"nasal_test.nas ",
"occupation.nas ",
"pi.nas ",
"ppmgen.nas ",
"prime.nas ",
"qrcode.nas ",
"quick_sort.nas ",
"scalar.nas ",
"snake.nas ",
"tetris.nas ",
"trait.nas ",
"ascii-art.nas",
"auto_crash.nas",
"bf.nas",
"bfcolored.nas",
"bfconvertor.nas",
"bfs.nas",
"bigloop.nas",
"bp.nas",
"calc.nas",
"choice.nas",
"class.nas",
"coroutine.nas",
"diff.nas",
"exception.nas",
"fib.nas",
"filesystem.nas",
"hexdump.nas",
"httptest.nas",
"json.nas",
"leetcode1319.nas",
"lexer.nas",
"life.nas",
"loop.nas",
"mandel.nas",
"mandelbrot.nas",
"md5.nas",
"md5compare.nas",
"module_test.nas",
"nasal_test.nas",
"occupation.nas",
"pi.nas",
"ppmgen.nas",
"prime.nas",
"qrcode.nas",
"quick_sort.nas",
"scalar.nas",
"snake.nas",
"tetris.nas",
"trait.nas",
"turingmachine.nas",
"utf8chk.nas ",
"watchdog.nas ",
"wavecollapse.nas ",
"ycombinator.nas "
"utf8chk.nas",
"watchdog.nas",
"wavecollapse.nas",
"ycombinator.nas"
];
var module=[
"fib.cpp ",
"keyboard.cpp ",
"nasocket.cpp ",
"libfib.nas ",
"libkey.nas ",
"libsock.nas "
"fib.cpp",
"keyboard.cpp",
"nasocket.cpp",
"libfib.nas",
"libkey.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 (len,ch)=(size(s),' '[0]);
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=""){
println(codetype);
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){
var s=io.fin(getname(path~files[i]));
(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);
line+=line_cnt;
semi+=semi_cnt;
@ -113,5 +126,8 @@ var calc=func(codetype,files,path=""){
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');

View File

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

View File

@ -50,10 +50,10 @@ func(){
var bar=process_bar.bar("block","point","line",25);
if(key!=nil and chr(key)=="q")
break;
println("\e[1;1H Memory total(GB) : \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[3;1H Memory occupation(%): ",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[1;1H\e[1m Memory total(GB) : \e[0m\e[36m",mem.MemTotal/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\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\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.");
}
}();