2022-02-11 17:04:27 +08:00
|
|
|
var source=[
|
2022-07-31 19:26:13 +08:00
|
|
|
"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 "
|
2022-01-16 22:48:00 +08:00
|
|
|
];
|
2022-02-11 17:04:27 +08:00
|
|
|
|
|
|
|
var lib=[
|
2022-07-31 19:26:13 +08:00
|
|
|
"fg_env.nas ",
|
|
|
|
"file.nas ",
|
|
|
|
"lib.nas ",
|
|
|
|
"list.nas ",
|
|
|
|
"log.nas ",
|
|
|
|
"module.nas ",
|
|
|
|
"process_bar.nas ",
|
|
|
|
"queue.nas ",
|
|
|
|
"result.nas ",
|
|
|
|
"sort.nas ",
|
|
|
|
"stack.nas "
|
2022-01-16 22:48:00 +08:00
|
|
|
];
|
2022-02-11 17:04:27 +08:00
|
|
|
|
|
|
|
var testfile=[
|
2022-07-31 19:26:13 +08:00
|
|
|
"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 ",
|
2022-08-17 21:09:22 +08:00
|
|
|
"ppmgen.nas ",
|
2022-07-31 19:26:13 +08:00
|
|
|
"prime.nas ",
|
|
|
|
"qrcode.nas ",
|
|
|
|
"quick_sort.nas ",
|
|
|
|
"scalar.nas ",
|
|
|
|
"snake.nas ",
|
|
|
|
"tetris.nas ",
|
|
|
|
"trait.nas ",
|
|
|
|
"turingmachine.nas",
|
|
|
|
"utf8chk.nas ",
|
2022-08-27 18:12:32 +08:00
|
|
|
"watchdog.nas ",
|
2022-07-31 19:26:13 +08:00
|
|
|
"wavecollapse.nas ",
|
|
|
|
"ycombinator.nas "
|
2022-02-11 17:04:27 +08:00
|
|
|
];
|
|
|
|
|
|
|
|
var module=[
|
2022-07-31 19:26:13 +08:00
|
|
|
"fib.cpp ",
|
|
|
|
"keyboard.cpp ",
|
|
|
|
"nasocket.cpp ",
|
|
|
|
"libfib.nas ",
|
|
|
|
"libkey.nas ",
|
|
|
|
"libsock.nas "
|
2022-02-11 17:04:27 +08:00
|
|
|
];
|
|
|
|
|
|
|
|
var getname=func(s){
|
|
|
|
var (len,ch)=(size(s),' '[0]);
|
|
|
|
for(var i=0;i<len and s[i]!=ch;i+=1);
|
|
|
|
return substr(s,0,i);
|
|
|
|
}
|
|
|
|
|
2022-01-16 22:48:00 +08:00
|
|
|
var count=func(s,c){
|
2022-08-07 00:35:55 +08:00
|
|
|
var cnt=0;
|
|
|
|
foreach(var i;split(c,s))
|
|
|
|
cnt+=(size(i)!=0 and i!="\r")
|
2021-06-24 22:10:08 +08:00
|
|
|
return cnt;
|
|
|
|
}
|
2022-02-11 17:04:27 +08:00
|
|
|
|
2022-07-31 19:26:13 +08:00
|
|
|
var calc=func(codetype,files,path=""){
|
2022-02-11 17:04:27 +08:00
|
|
|
println(codetype);
|
|
|
|
var (bytes,line,semi,line_cnt,semi_cnt)=(0,0,0,0,0);
|
|
|
|
forindex(var i;files){
|
2022-07-31 19:26:13 +08:00
|
|
|
var s=io.fin(getname(path~files[i]));
|
2022-02-11 17:04:27 +08:00
|
|
|
(line_cnt,semi_cnt)=(count(s,'\n'),count(s,';'));
|
2022-07-31 19:26:13 +08:00
|
|
|
println(files[i],'| ',line_cnt,'\tline | ',semi_cnt,' \tsemi');
|
2022-01-16 22:48:00 +08:00
|
|
|
bytes+=size(s);
|
2021-06-24 22:10:08 +08:00
|
|
|
line+=line_cnt;
|
2021-03-07 16:33:43 +08:00
|
|
|
semi+=semi_cnt;
|
|
|
|
}
|
2022-07-31 19:26:13 +08:00
|
|
|
println('total: | ',line,'\tline | ',semi,' \tsemi');
|
|
|
|
println(' | ',int(bytes/1024),'\tkb');
|
|
|
|
return int(bytes/1024);
|
2022-02-11 17:04:27 +08:00
|
|
|
}
|
|
|
|
|
2022-07-31 19:26:13 +08:00
|
|
|
var all=calc("source code:",source)+calc("lib:",lib,"stl/")+calc("test file:",testfile,"test/")+calc("module:",module,"module/");
|
|
|
|
println('\ntotal: | ',all,'\tkb');
|