# hexdump.nas by ValKmjolnir # 2021/8/13 use std.file; use std.runtime; use std.os; use std.io; # init var hex = func() { var hex_num=[ '0','1','2','3', '4','5','6','7', '8','9','a','b', 'c','d','e','f' ]; var res=[]; foreach(var i;hex_num) { foreach(var j;hex_num) { append(res,i~j); } } return res; }(); # read file var s = func() { var filename = file.find_all_files_with_extension("./src","cpp","h"); if (size(runtime.argv())!=0) { var argv=runtime.argv(); if (argv[0]=="-h" or argv[0]=="--h") { println("usage:"); println(" nasal hexdump.nas | get all files' hexdump."); println(" nasal hexdump.nas [file] | get single file's hexdump."); return ""; } return io.readfile(argv[0]); } var ret=""; foreach(var elem;filename) ret~=io.readfile("./src/" ~ elem); return ret; }(); # used to change line and control the spaces var cnt=0; # used to print hex index var hex_index=[0,0,0,0]; # print binary in text format var textprint = func(index) { var info=""; if (os.platform()=="windows") { for (var i=index-cnt;i=127)?".":chr(s[i]); } else { for (var i=index-cnt;i=0;i-=1) info~=hex[hex_index[i]]; return info~" "; } # main func() { if (!size(s)) { return; } var info=indexprint(0); for (var i=0;i