⚡ optimize test files
httptest.nas: when clicking mandel.nas link, this may cause memory overflow in new gc
This commit is contained in:
parent
d03273b4e1
commit
aef7936292
|
@ -127,6 +127,10 @@ var n=2.147e16; # dec
|
||||||
var n=1e-10; # dec
|
var n=1e-10; # dec
|
||||||
var n=0xAA55; # hex
|
var n=0xAA55; # hex
|
||||||
var n=0o170001; # oct
|
var n=0o170001; # oct
|
||||||
|
|
||||||
|
# caution: true and false also useful in nasal now
|
||||||
|
var n=true; # in fact n is now 1.0
|
||||||
|
var n=false; # in face n is now 0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
__`str`__ has 3 formats. The third one is used to declare a character.
|
__`str`__ has 3 formats. The third one is used to declare a character.
|
||||||
|
|
|
@ -107,12 +107,16 @@ var spc=nil;
|
||||||
__`num`__ 有三种形式:十进制,十六进制以及八进制。并且该类型使用IEEE754标准的浮点数`double`格式来存储。
|
__`num`__ 有三种形式:十进制,十六进制以及八进制。并且该类型使用IEEE754标准的浮点数`double`格式来存储。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
# this language use '#' to write notes
|
# 该语言用 '#' 来作为注释的开头
|
||||||
var n=2.71828; # dec
|
var n=2.71828; # dec 十进制
|
||||||
var n=2.147e16; # dec
|
var n=2.147e16; # dec 十进制
|
||||||
var n=1e-10; # dec
|
var n=1e-10; # dec 十进制
|
||||||
var n=0xAA55; # hex
|
var n=0xAA55; # hex 十六进制
|
||||||
var n=0o170001; # oct
|
var n=0o170001; # oct 八进制
|
||||||
|
|
||||||
|
# 注意: true 和 false 关键字在现在的 nasal 里也是可用的
|
||||||
|
var n=true; # n 实际上是数字 1.0
|
||||||
|
var n=false; # n 实际上是数字 0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
__`str`__ 也有三种不同的格式。第三种只允许包含一个的字符。
|
__`str`__ 也有三种不同的格式。第三种只允许包含一个的字符。
|
||||||
|
|
|
@ -29,6 +29,7 @@ var char_ttf=[
|
||||||
["██╗ ██╗","╚██╗ ██╔╝"," ╚████╔╝ "," ╚██╔╝ "," ██║ "," ╚═╝ "],
|
["██╗ ██╗","╚██╗ ██╔╝"," ╚████╔╝ "," ╚██╔╝ "," ██║ "," ╚═╝ "],
|
||||||
["███████╗","╚══███╔╝"," ███╔╝ "," ███╔╝ ","███████╗","╚══════╝"],
|
["███████╗","╚══███╔╝"," ███╔╝ "," ███╔╝ ","███████╗","╚══════╝"],
|
||||||
];
|
];
|
||||||
|
|
||||||
var trans_ttf=func(string){
|
var trans_ttf=func(string){
|
||||||
var str=["","","","","",""];
|
var str=["","","","","",""];
|
||||||
for(var i=0;i<size(string);i+=1){
|
for(var i=0;i<size(string);i+=1){
|
||||||
|
@ -47,6 +48,7 @@ var trans_ttf=func(string){
|
||||||
println(i);
|
println(i);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var curve1=func(line=4){
|
var curve1=func(line=4){
|
||||||
var table=["╚","═","╝","╔","║","╗"];
|
var table=["╚","═","╝","╔","║","╗"];
|
||||||
rand(100);
|
rand(100);
|
||||||
|
@ -58,6 +60,7 @@ var curve1=func(line=4){
|
||||||
}
|
}
|
||||||
print(s);
|
print(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
var curve2=func(line=2){
|
var curve2=func(line=2){
|
||||||
var shadow=["░","▒","▓","█","▀","▄","▐","▌"];
|
var shadow=["░","▒","▓","█","▀","▄","▐","▌"];
|
||||||
rand(100);
|
rand(100);
|
||||||
|
@ -69,6 +72,7 @@ var curve2=func(line=2){
|
||||||
}
|
}
|
||||||
print(s);
|
print(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
var curve3=func(line=2){
|
var curve3=func(line=2){
|
||||||
var arr=[
|
var arr=[
|
||||||
0,1,2,3,4,5,6,7,8,
|
0,1,2,3,4,5,6,7,8,
|
||||||
|
@ -91,11 +95,12 @@ var curve3=func(line=2){
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var curve4=func(line=4){
|
var curve4=func(line=4){
|
||||||
var shadow=["m░\e[0m","m▒\e[0m","m▓\e[0m","m█\e[0m","m▀\e[0m","m▄\e[0m","m▐\e[0m","m▌\e[0m"];
|
var shadow=["m░\e[0m","m▒\e[0m","m▓\e[0m","m█\e[0m","m▀\e[0m","m▄\e[0m","m▐\e[0m","m▌\e[0m"];
|
||||||
var front=[
|
var front=[
|
||||||
"30","31","32","33","34","35","36","37",
|
"30","31","32","33","34","35","36","37",
|
||||||
"90","91","92","93","94","95","96","97"
|
"90","91","92","93","94","95","96","97",
|
||||||
];
|
];
|
||||||
var back=[
|
var back=[
|
||||||
"40","41","42","43","44","45","46","47",
|
"40","41","42","43","44","45","46","47",
|
||||||
|
@ -108,6 +113,7 @@ var curve4=func(line=4){
|
||||||
print('\n');
|
print('\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var curve5=func(line=4){
|
var curve5=func(line=4){
|
||||||
var vec=["▀▄─","▄▀─","▀─▄","▄─▀"];
|
var vec=["▀▄─","▄▀─","▀─▄","▄─▀"];
|
||||||
for(var (y,p)=(0,0);y!=line;y+=1){
|
for(var (y,p)=(0,0);y!=line;y+=1){
|
||||||
|
@ -118,27 +124,31 @@ var curve5=func(line=4){
|
||||||
p=p>=4?0:p;
|
p=p>=4?0:p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var ansi_escape_sequence=func(){
|
var ansi_escape_sequence=func(){
|
||||||
for(var i=0;i<=9;i+=1)
|
for(var i=0;i<10;i+=1)
|
||||||
print(rightpad(i,3),":\e["~i~"mhi\e[0m ");
|
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
||||||
print("\n");
|
print("\n");
|
||||||
for(var i=30;i<=37;i+=1)
|
for(var i=30;i<40;i+=1)
|
||||||
print(rightpad(i,3),":\e["~i~"mhi\e[0m ");
|
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
||||||
print("\n");
|
print("\n");
|
||||||
for(var i=40;i<=47;i+=1)
|
for(var i=40;i<50;i+=1)
|
||||||
print(rightpad(i,3),":\e["~i~"mhi\e[0m ");
|
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
||||||
print("\n");
|
print("\n");
|
||||||
for(var i=90;i<=97;i+=1)
|
for(var i=90;i<100;i+=1)
|
||||||
print(rightpad(i,3),":\e["~i~"mhi\e[0m ");
|
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
||||||
print("\n");
|
print("\n");
|
||||||
for(var i=100;i<=107;i+=1)
|
for(var i=100;i<110;i+=1)
|
||||||
print(rightpad(i,3),":\e["~i~"mhi\e[0m ");
|
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
# enable unicode
|
# enable unicode
|
||||||
if(os.platform()=="windows")
|
if(os.platform()=="windows"){
|
||||||
system("chcp 65001");
|
system("chcp 65001");
|
||||||
|
}
|
||||||
|
|
||||||
|
trans_ttf("just for test");
|
||||||
trans_ttf(" ValKmjolnir ");
|
trans_ttf(" ValKmjolnir ");
|
||||||
curve1();
|
curve1();
|
||||||
curve2();
|
curve2();
|
||||||
|
|
66
test/bf.nas
66
test/bf.nas
|
@ -155,9 +155,10 @@ var color=[
|
||||||
"\e[31m","\e[32m","\e[33m","\e[34m","\e[35m","\e[36m",
|
"\e[31m","\e[32m","\e[33m","\e[34m","\e[35m","\e[36m",
|
||||||
"\e[90m","\e[91m","\e[92m","\e[93m","\e[94m","\e[95m","\e[96m"
|
"\e[90m","\e[91m","\e[92m","\e[93m","\e[94m","\e[95m","\e[96m"
|
||||||
];
|
];
|
||||||
func(){
|
|
||||||
|
func() {
|
||||||
var cnt=0;
|
var cnt=0;
|
||||||
forindex(var i;char){
|
forindex(var i;char) {
|
||||||
char[i]=color[cnt]~chr(i)~"\e[0m";
|
char[i]=color[cnt]~chr(i)~"\e[0m";
|
||||||
cnt+=1;
|
cnt+=1;
|
||||||
if(cnt>12)
|
if(cnt>12)
|
||||||
|
@ -166,80 +167,81 @@ func(){
|
||||||
}();
|
}();
|
||||||
|
|
||||||
var funcs=[
|
var funcs=[
|
||||||
func{paper[ptr]+=inum[pc];},
|
func {paper[ptr]+=inum[pc];},
|
||||||
func{ptr+=inum[pc];},
|
func {ptr+=inum[pc];},
|
||||||
func{if(paper[ptr])pc=inum[pc];},
|
func {if(paper[ptr])pc=inum[pc];},
|
||||||
func{if(!paper[ptr])pc=inum[pc];},
|
func {if(!paper[ptr])pc=inum[pc];},
|
||||||
func{paper[ptr]=input()[0];},
|
func {paper[ptr]=input()[0];},
|
||||||
func{print(char[paper[ptr]]);}
|
func {print(char[paper[ptr]]);}
|
||||||
];
|
];
|
||||||
|
|
||||||
var bf=func(program){
|
var bf=func(program) {
|
||||||
setsize(paper,131072);
|
setsize(paper,131072);
|
||||||
var len=size(program);
|
var len=size(program);
|
||||||
for(var i=0;i<len;i+=1){
|
for(var i=0;i<len;i+=1) {
|
||||||
var c=chr(program[i]);
|
var c=chr(program[i]);
|
||||||
if(c=='+' or c=='-'){
|
if(c=='+' or c=='-') {
|
||||||
append(code,add);
|
append(code,add);
|
||||||
append(inum,0);
|
append(inum,0);
|
||||||
for(;i<len;i+=1){
|
for(;i<len;i+=1) {
|
||||||
if(chr(program[i])=='+')
|
if(chr(program[i])=='+') {
|
||||||
inum[-1]+=1;
|
inum[-1]+=1;
|
||||||
elsif(chr(program[i])=='-')
|
} elsif(chr(program[i])=='-') {
|
||||||
inum[-1]-=1;
|
inum[-1]-=1;
|
||||||
elsif(chr(program[i])!='\n'){
|
} elsif(chr(program[i])!='\n') {
|
||||||
i-=1;
|
i-=1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} elsif(c=='<' or c=='>') {
|
||||||
elsif(c=='<' or c=='>'){
|
|
||||||
append(code,mov);
|
append(code,mov);
|
||||||
append(inum,0);
|
append(inum,0);
|
||||||
for(;i<len;i+=1){
|
for(;i<len;i+=1){
|
||||||
if(chr(program[i])=='>')
|
if(chr(program[i])=='>') {
|
||||||
inum[-1]+=1;
|
inum[-1]+=1;
|
||||||
elsif(chr(program[i])=='<')
|
} elsif(chr(program[i])=='<') {
|
||||||
inum[-1]-=1;
|
inum[-1]-=1;
|
||||||
elsif(chr(program[i])!='\n'){
|
} elsif(chr(program[i])!='\n') {
|
||||||
i-=1;
|
i-=1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} elsif(c==',') {
|
||||||
elsif(c==','){
|
|
||||||
append(code,in);
|
append(code,in);
|
||||||
append(inum,0);
|
append(inum,0);
|
||||||
}
|
} elsif(c=='.') {
|
||||||
elsif(c=='.'){
|
|
||||||
append(code,out);
|
append(code,out);
|
||||||
append(inum,0);
|
append(inum,0);
|
||||||
}
|
} elsif(c=='[') {
|
||||||
elsif(c=='['){
|
|
||||||
append(code,jf);
|
append(code,jf);
|
||||||
append(inum,0);
|
append(inum,0);
|
||||||
append(stack,size(code)-1);
|
append(stack,size(code)-1);
|
||||||
}
|
} elsif(c==']') {
|
||||||
elsif(c==']'){
|
if(!size(stack)) {
|
||||||
if(!size(stack))
|
|
||||||
die("lack [");
|
die("lack [");
|
||||||
|
}
|
||||||
var label=pop(stack);
|
var label=pop(stack);
|
||||||
append(code,jt);
|
append(code,jt);
|
||||||
append(inum,label-1);
|
append(inum,label-1);
|
||||||
inum[label]=size(code)-2;
|
inum[label]=size(code)-2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(size(stack)){
|
|
||||||
|
if(size(stack)) {
|
||||||
die("lack ]");
|
die("lack ]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
# enable ANSI escape sequence
|
# enable ANSI escape sequence
|
||||||
if(os.platform()=="windows")
|
if(os.platform()=="windows") {
|
||||||
system("color");
|
system("color");
|
||||||
|
}
|
||||||
|
|
||||||
|
# execute
|
||||||
len=size(code);
|
len=size(code);
|
||||||
for(pc=0;pc<len;pc+=1)
|
for(pc=0;pc<len;pc+=1) {
|
||||||
funcs[code[pc]]();
|
funcs[code[pc]]();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,79 +145,81 @@ var mandelbrot=
|
||||||
+[-[->>>>>>>>>+<<<<<<<<<]>>>>>>>>>]>>>>>->>>>>>>>>>>>>>>>>>>>>>>>>>>-<<<<<<[<<<<
|
+[-[->>>>>>>>>+<<<<<<<<<]>>>>>>>>>]>>>>>->>>>>>>>>>>>>>>>>>>>>>>>>>>-<<<<<<[<<<<
|
||||||
<<<<<]]>>>]";
|
<<<<<]]>>>]";
|
||||||
|
|
||||||
var bf=func(program)
|
var padding=func(len) {
|
||||||
{
|
var res="";
|
||||||
|
for(var i=0;i<len;i+=1) {
|
||||||
|
res~=" ";
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
var bf=func(program) {
|
||||||
var stack=[];
|
var stack=[];
|
||||||
var len=size(program);
|
var len=size(program);
|
||||||
var f="#automatically generated by bfconvertor.nas\nimport('lib.nas');\nvar ptr=0;\nvar paper=[];\nsetsize(paper,131072);\n";
|
var f="#automatically generated by bfconvertor.nas\nvar ptr=0;\nvar paper=[];\nsetsize(paper,131072);\n";
|
||||||
for(var i=0;i<len;i+=1){
|
for(var i=0;i<len;i+=1) {
|
||||||
var c=chr(program[i]);
|
var c=chr(program[i]);
|
||||||
if(c=='+' or c=='-'){
|
if(c=='+' or c=='-') {
|
||||||
var cnt=0;
|
var cnt=0;
|
||||||
for(;i<len;i+=1){
|
for(;i<len;i+=1) {
|
||||||
if(chr(program[i])=='+')
|
if(chr(program[i])=='+') {
|
||||||
cnt+=1;
|
cnt+=1;
|
||||||
elsif(chr(program[i])=='-')
|
} elsif(chr(program[i])=='-') {
|
||||||
cnt-=1;
|
cnt-=1;
|
||||||
elsif(chr(program[i])!='\n'){
|
} elsif(chr(program[i])!='\n') {
|
||||||
i-=1;
|
i-=1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cnt!=0)
|
if(cnt!=0) {
|
||||||
for(var j=0;j<size(stack);j+=1)
|
f~=padding(size(stack));
|
||||||
f~='\t';
|
}
|
||||||
if(cnt>0)
|
if(cnt>0) {
|
||||||
f~="paper[ptr]+="~cnt~";\n";
|
f~="paper[ptr]+="~cnt~";\n";
|
||||||
elsif(cnt<0)
|
} elsif(cnt<0) {
|
||||||
f~="paper[ptr]-="~(-cnt)~";\n";
|
f~="paper[ptr]-="~(-cnt)~";\n";
|
||||||
}elsif(c=='<' or c=='>'){
|
}
|
||||||
|
} elsif(c=='<' or c=='>') {
|
||||||
var cnt=0;
|
var cnt=0;
|
||||||
for(;i<len;i+=1){
|
for(;i<len;i+=1) {
|
||||||
if(chr(program[i])=='>')
|
if(chr(program[i])=='>') {
|
||||||
cnt+=1;
|
cnt+=1;
|
||||||
elsif(chr(program[i])=='<')
|
} elsif(chr(program[i])=='<') {
|
||||||
cnt-=1;
|
cnt-=1;
|
||||||
elsif(chr(program[i])!='\n'){
|
} elsif(chr(program[i])!='\n') {
|
||||||
i-=1;
|
i-=1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cnt!=0)
|
if(cnt!=0) {
|
||||||
for(var j=0;j<size(stack);j+=1)
|
f~=padding(size(stack));
|
||||||
f~='\t';
|
}
|
||||||
if(cnt>0)
|
if(cnt>0) {
|
||||||
f~="ptr+="~cnt~";\n";
|
f~="ptr+="~cnt~";\n";
|
||||||
elsif(cnt<0)
|
} elsif(cnt<0) {
|
||||||
f~="ptr-="~(-cnt)~";\n";
|
f~="ptr-="~(-cnt)~";\n";
|
||||||
}elsif(c==','){
|
}
|
||||||
for(var j=0;j<size(stack);j+=1)
|
} elsif(c==',') {
|
||||||
f~='\t';
|
f~=padding(size(stack));
|
||||||
f~="paper[ptr]=input()[0];\n";
|
f~="paper[ptr]=input()[0];\n";
|
||||||
}elsif(c=='.'){
|
} elsif(c=='.') {
|
||||||
for(var j=0;j<size(stack);j+=1)
|
f~=padding(size(stack));
|
||||||
f~='\t';
|
|
||||||
f~="print(chr(paper[ptr]));\n";
|
f~="print(chr(paper[ptr]));\n";
|
||||||
}elsif(c=='['){
|
} elsif(c=='[') {
|
||||||
for(var j=0;j<size(stack);j+=1)
|
f~=padding(size(stack));
|
||||||
f~='\t';
|
f~="while(paper[ptr]) {\n";
|
||||||
f~="while(paper[ptr])\n";
|
|
||||||
for(var j=0;j<size(stack);j+=1)
|
|
||||||
f~='\t';
|
|
||||||
f~="{\n";
|
|
||||||
append(stack,0);
|
append(stack,0);
|
||||||
}elsif(c==']'){
|
} elsif(c==']') {
|
||||||
if(!size(stack)){
|
if(!size(stack)) {
|
||||||
println("lack [");
|
println("lack [");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pop(stack);
|
pop(stack);
|
||||||
for(var j=0;j<size(stack);j+=1)
|
f~=padding(size(stack));
|
||||||
f~='\t';
|
|
||||||
f~="}\n";
|
f~="}\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(size(stack)){
|
if(size(stack)) {
|
||||||
println("lack ]");
|
println("lack ]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,12 @@
|
||||||
var condition_true=1;
|
var condition_true=1;
|
||||||
var condition_false=0;
|
var condition_false=0;
|
||||||
if(condition_true)
|
if(condition_true) {
|
||||||
{
|
|
||||||
var a=1;
|
var a=1;
|
||||||
}
|
} else if(!condition_false) {
|
||||||
else if(!condition_false)
|
|
||||||
{
|
|
||||||
var b=1;
|
var b=1;
|
||||||
}
|
} elsif(!condition_true and condition_false) {
|
||||||
elsif(!condition_true and condition_false)
|
|
||||||
{
|
|
||||||
print("impossible");
|
print("impossible");
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
var c=1;
|
var c=1;
|
||||||
var d=1;
|
var d=1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,23 +2,26 @@
|
||||||
# 2021/8/13
|
# 2021/8/13
|
||||||
|
|
||||||
# init
|
# init
|
||||||
var hex_num=[
|
var hex=func(){
|
||||||
'0','1','2','3',
|
var hex_num=[
|
||||||
'4','5','6','7',
|
'0','1','2','3',
|
||||||
'8','9','a','b',
|
'4','5','6','7',
|
||||||
'c','d','e','f'
|
'8','9','a','b',
|
||||||
];
|
'c','d','e','f'
|
||||||
var hex=[];
|
];
|
||||||
foreach(var i;hex_num)
|
var res=[];
|
||||||
foreach(var j;hex_num)
|
foreach(var i;hex_num){
|
||||||
append(hex,i~j);
|
foreach(var j;hex_num){
|
||||||
|
append(res,i~j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}();
|
||||||
|
|
||||||
# read file
|
# read file
|
||||||
var s=func(){
|
var s=func(){
|
||||||
var filename=[
|
var filename=[
|
||||||
"LICENSE",
|
|
||||||
"main.cpp",
|
"main.cpp",
|
||||||
"makefile",
|
|
||||||
"nasal_ast.h",
|
"nasal_ast.h",
|
||||||
"nasal_builtin.h",
|
"nasal_builtin.h",
|
||||||
"nasal_codegen.h",
|
"nasal_codegen.h",
|
||||||
|
@ -31,9 +34,11 @@ var s=func(){
|
||||||
"nasal_parse.h",
|
"nasal_parse.h",
|
||||||
"nasal_vm.h",
|
"nasal_vm.h",
|
||||||
"nasal.ebnf",
|
"nasal.ebnf",
|
||||||
"nasal.h",
|
"nasal.h"
|
||||||
"README.md"
|
|
||||||
];
|
];
|
||||||
|
if(size(runtime.argv())!=0){
|
||||||
|
return io.fin(runtime.argv()[0]);
|
||||||
|
}
|
||||||
var ret="";
|
var ret="";
|
||||||
foreach(var elem;filename)
|
foreach(var elem;filename)
|
||||||
ret~=io.fin(elem);
|
ret~=io.fin(elem);
|
||||||
|
@ -48,16 +53,18 @@ var hex_index=[0,0,0,0];
|
||||||
|
|
||||||
# print binary in text format
|
# print binary in text format
|
||||||
var textprint=func(index){
|
var textprint=func(index){
|
||||||
var info='';
|
var info="";
|
||||||
if(os.platform()=="windows")
|
if(os.platform()=="windows"){
|
||||||
for(var i=index-cnt;i<index;i+=1)
|
for(var i=index-cnt;i<index;i+=1)
|
||||||
info~=(s[i]<32 or s[i]>=128)?'.':chr(s[i]);
|
info~=(s[i]<32 or s[i]>=128)?".":chr(s[i]);
|
||||||
else
|
}else{
|
||||||
for(var i=index-cnt;i<index;i+=1)
|
for(var i=index-cnt;i<index;i+=1)
|
||||||
info~=(0<=s[i] and s[i]<32)?'.':chr(s[i]);
|
info~=(0<=s[i] and s[i]<32)?".":chr(s[i]);
|
||||||
for(var i=cnt;i<16;i+=1)
|
}
|
||||||
info~='.';
|
for(var i=cnt;i<16;i+=1){
|
||||||
return ' |'~info~'|\n';
|
info~=".";
|
||||||
|
}
|
||||||
|
return " |"~info~"|\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# print index
|
# print index
|
||||||
|
@ -66,10 +73,10 @@ var indexprint=func(index){
|
||||||
hex_index[i]=index-int(index/256)*256;
|
hex_index[i]=index-int(index/256)*256;
|
||||||
index=int(index/256);
|
index=int(index/256);
|
||||||
}
|
}
|
||||||
var info='';
|
var info="";
|
||||||
for(var i=3;i>=0;i-=1)
|
for(var i=3;i>=0;i-=1)
|
||||||
info~=hex[hex_index[i]];
|
info~=hex[hex_index[i]];
|
||||||
return info~' ';
|
return info~" ";
|
||||||
}
|
}
|
||||||
|
|
||||||
# main
|
# main
|
||||||
|
@ -82,14 +89,14 @@ func(){
|
||||||
cnt=0;
|
cnt=0;
|
||||||
info=indexprint(i);
|
info=indexprint(i);
|
||||||
}elsif(cnt==8)
|
}elsif(cnt==8)
|
||||||
info~=' ';
|
info~=" ";
|
||||||
cnt+=1;
|
cnt+=1;
|
||||||
info~=hex[s[i]]~' ';
|
info~=hex[s[i]]~" ";
|
||||||
}
|
}
|
||||||
for(var l=cnt;l<16;l+=1)
|
for(var l=cnt;l<16;l+=1)
|
||||||
info~=' ';
|
info~=" ";
|
||||||
if(cnt<=8)
|
if(cnt<=8)
|
||||||
info~=' ';
|
info~=" ";
|
||||||
info~=textprint(i);
|
info~=textprint(i);
|
||||||
print(info);
|
print(info);
|
||||||
}();
|
}();
|
|
@ -73,7 +73,7 @@ var html_read_file=func(filename){
|
||||||
var timer=maketimestamp();
|
var timer=maketimestamp();
|
||||||
timer.stamp();
|
timer.stamp();
|
||||||
var keyword=["var","func","for","while","foreach","forindex","break","continue","return","if","else","elsif","nil"];
|
var keyword=["var","func","for","while","foreach","forindex","break","continue","return","if","else","elsif","nil"];
|
||||||
var file_text=split("",io.fin(filename));
|
var file_text=io.fin(filename);
|
||||||
var (s,index,len)=("",-1,size(file_text));
|
var (s,index,len)=("",-1,size(file_text));
|
||||||
var content="";
|
var content="";
|
||||||
|
|
||||||
|
@ -81,12 +81,12 @@ var html_read_file=func(filename){
|
||||||
if(index+1>=len)
|
if(index+1>=len)
|
||||||
return index+1;
|
return index+1;
|
||||||
index+=1;
|
index+=1;
|
||||||
s=file_text[index];
|
s=char(file_text[index]);
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
var prev=func(){
|
var prev=func(){
|
||||||
index-=1;
|
index-=1;
|
||||||
s=file_text[index];
|
s=char(file_text[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
|
|
8862
test/mandel.nas
8862
test/mandel.nas
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue