From e77bb73a82d20c3fc89660130be32923941e3cd9 Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Fri, 18 Feb 2022 01:58:49 +0800 Subject: [PATCH] add special character `\e`. --- nasal.h | 1 + nasal_lexer.h | 1 + test/ascii-art.nas | 25 ++++++++++++++++++++++++- test/lexer.nas | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/nasal.h b/nasal.h index b9505c8..2995dcb 100644 --- a/nasal.h +++ b/nasal.h @@ -117,6 +117,7 @@ std::string rawstr(const std::string& str) { case '\a': ret+="\\a";break; case '\b': ret+="\\b";break; + case '\e': ret+="\\e";break; case '\f': ret+="\\f";break; case '\n': ret+="\\n";break; case '\r': ret+="\\r";break; diff --git a/nasal_lexer.h b/nasal_lexer.h index b0c305f..592eb9c 100644 --- a/nasal_lexer.h +++ b/nasal_lexer.h @@ -239,6 +239,7 @@ std::string nasal_lexer::str_gen() case '0': str+='\0'; break; case 'a': str+='\a'; break; case 'b': str+='\b'; break; + case 'e': str+='\e'; break; case 't': str+='\t'; break; case 'n': str+='\n'; break; case 'v': str+='\v'; break; diff --git a/test/ascii-art.nas b/test/ascii-art.nas index 1b087e0..0c7d302 100644 --- a/test/ascii-art.nas +++ b/test/ascii-art.nas @@ -114,10 +114,33 @@ var curve4=func() } return; } +var curve5=func(){ + var a=[]; + for(var i=0;i<10;i+=1) + append(a,"\e["~split(".",str(i))[0]~"mh \e[0m"); + for(var i=30;i<38;i+=1) + append(a,"\e["~split(".",str(i))[0]~"mh \e[0m"); + for(var i=40;i<48;i+=1) + append(a,"\e["~split(".",str(i))[0]~"mh \e[0m"); + for(var i=90;i<98;i+=1) + append(a,"\e["~split(".",str(i))[0]~"mh \e[0m"); + for(var i=100;i<108;i+=1) + append(a,"\e["~split(".",str(i))[0]~"mh \e[0m"); + var s=0; + foreach(var i;a){ + print(i,s==3?"\n":""); + if(s==3) + s=0; + else + s+=1; + } + print('\n'); +} trans_ttf("just for test"); trans_ttf(" ValKmjolnir "); trans_ttf("just for fun"); curve1(); curve2(); curve3(); -curve4(); \ No newline at end of file +curve4(); +curve5(); \ No newline at end of file diff --git a/test/lexer.nas b/test/lexer.nas index 77962b4..38b6245 100644 --- a/test/lexer.nas +++ b/test/lexer.nas @@ -43,6 +43,7 @@ var lexer=func(file) var c=chr(s[ptr]); if (c=='a' ) str~='\a'; elsif(c=='b' ) str~='\b'; + elsif(c=='e' ) str~='\e'; elsif(c=='f' ) str~='\f'; elsif(c=='n' ) str~='\n'; elsif(c=='r' ) str~='\r';