From f529ffb4e1e53c71f6a22471f4b393084a88f32d Mon Sep 17 00:00:00 2001 From: paladin-t Date: Fri, 22 Apr 2016 17:14:02 +0800 Subject: [PATCH] +added utf8 token support. --- HISTORY | 3 ++ MY-BASIC Quick Reference.pdf | Bin 267232 -> 267426 bytes README.md | 1 + core/my_basic.c | 95 +++++++++++++++++++++++++++++------ core/my_basic.h | 7 +++ output/my_basic.exe | Bin 368640 -> 368640 bytes 6 files changed, 92 insertions(+), 14 deletions(-) diff --git a/HISTORY b/HISTORY index 25d4da5..29bf732 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Apr. 22 2016 +Added UTF8 token support + Apr. 19 2016 Fixed an error raising issue with incomplete IF structure diff --git a/MY-BASIC Quick Reference.pdf b/MY-BASIC Quick Reference.pdf index 8b5687f83b3067347e24ff8e11266571e6af6945..997d4f57e4c92aeef18519fe02e384110fcac690 100644 GIT binary patch delta 11095 zcmZX21yEf}(=G1q1cJLB4t7XzcPDrt!QEXBt_g0z-Q5lj!QI_GSa8>u``-WlufE)= z+O@0J?wRght7liwY!+eVmSFkSL$fA;R}`sba9$EUuchT|*V*lizNML(q}nW-H>k=L z1K{2JT|G`}Tb4Fb9ya;3dCihWxOyTuEK!;2fYj8A>7dv#oQN#k5cWResR&gzS~=5^ zT}V)3APaVcG@7!dGZml8^j1$nmNQP&l<^NFN~FGOmEo-tRcDJE?6r{&0=7%0M%$3P9+@ssgWe-aqihUhlVpdOAd1XS+ zM!Gkx(r;a-r_+f@xP1HNZ5-e475ixpCa}~+w56qLDgKKH_2LL~VWb3}TTB8y$b|W_ zq*gIC!aFnB?STqRlk&hsmBmF}6{iuB%8= zXw83EKU9XH4Srq*w?ngZ-of| zWYdg323V%T%&I9xv`#7LUPi#3e+YXi@Cv)F(l9bk~;Ny z`AQEF^DXSQNo=WVS5DsRi)Su?Z(^o}PY1i)&)xBisE5QWGp3!=RE4fsq_=^8pKo7a zp)|{;=0_EnED$+Fxhgu}=GMUO(xp+GUn+YFMLeR)$OP??S1)gh)q&O6uTY~xYvt7R zJsOgPNRq-&SqOgkyAqKt$xy!|f?(WJv?+{n0(tWD>9T1%;Onf^6YU5hw3ixR>Ng?z z4V#PO$gAix$m3q$lGQw!ao-7&gAS&Hcl}dq*i|FA_Mr<;(IdI%EjKL4_xgHTF7p5- zh`qSJiiA;u#xh}7r2${O|Li(US}Ai;qh3Hc-UrQNi5l>nnoaAGj)R9NfjUp46Z@75 z&oa!NPc4f^_#`io5XH7mJs&j>X_v~+gS-nEky(rJkxN_rfr=c3#l)|ivAQXv;H7mJ zquvVE9~Vm^XjRZUGRRVMK`q5Wa-g3iJf4HrMd^QcmOEI8>9M_*CmUDa;9Wn;^}qE0KTbJM=ede%*ic?mo&2tl}D{T?Px9^ki5ndJf& zU#7?!b4?plnbp-<|CvZ=a;C=?5kGy53V|40$ zlT~M6K#N8+p-S!%e~YvHn5yJ~-32G1q4oZ9x=~oxHu9mIdcvp2#)Fd?^NC6sTz6)y z<)xWW5bKWk@`#b%h^}X_FDDiRnXPwcn>H{g{Yk%S-VHkMepnHIaeeJ%0pCYt6CQtc z(pA?q9{4E;%k%z`hjqIOT~v-Lv@l(-7@*X?H= z=0YYK_fXPr28y#a#Wv!8ZELyh87YVj3)rO!8VqGW2ihV8hS}~M3!F;8O^c;l67oE% z?I4e|GoHHYSj71I{ea=d#$R_oL5|R;fDYqp^G!uc%y!TqPZ~eda>uJJ${o>b`ZF@9 z*H$)9-dh&ObF96jx+r6EoWiHpAuwIJ zzAQFe@@Y<;{dYxITuQhct$CTR7dh4 zy1v~VW)TLF`j>5rpv0hUG)b$EQD5ulgB?0jp7&aptX&12ROsUSjL0?8c>ASuW=7f+$s3n=Bf(0AxOYX9L26NEDPATuneu5xZGz=avQ0uNouA1*{pc#q<=T?z z)G;}JDP7C5`ifny0hYYB`pt~|g>-4Q@U4c;O$6i~t}9Yf`*O*)k~lZA1ucVYghc

{y&rIN;B8I0^Y{KH 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 + 1 >= _SINGLE_SYMBOL_MAX_LENGTH) { _set_current_error(s, SE_PS_SYMBOL_TOO_LONG, 0); - ++result; + result = MB_FUNC_ERR; } else { context->current_symbol[context->current_symbol_nonius] = c; ++context->current_symbol_nonius; @@ -4390,6 +4409,29 @@ static int _append_char_to_symbol(mb_interpreter_t* s, char c) { return result; } +#ifdef MB_ENABLE_UNICODE_ID +/* Parse a UTF8 character and append it to current parsing symbol */ +static int _append_uu_char_to_symbol(mb_interpreter_t* s, const char* str, int n) { + int result = MB_FUNC_OK; + _parsing_context_t* context = 0; + + mb_assert(s); + + context = s->parsing_context; + + if(context->current_symbol_nonius + n >= _SINGLE_SYMBOL_MAX_LENGTH) { + _set_current_error(s, SE_PS_SYMBOL_TOO_LONG, 0); + + result = MB_FUNC_ERR; + } else { + memcpy(&context->current_symbol[context->current_symbol_nonius], str, n); + context->current_symbol_nonius += n; + } + + return result; +} +#endif /* MB_ENABLE_UNICODE_ID */ + /* Cut current symbol when current one parsing is finished */ static int _cut_symbol(mb_interpreter_t* s, int pos, unsigned short row, unsigned short col) { int result = MB_FUNC_OK; @@ -5027,19 +5069,28 @@ _exit: } /* Parse a character */ -static int _parse_char(mb_interpreter_t* s, const char** str, int pos, unsigned short row, unsigned short col) { +static int _parse_char(mb_interpreter_t* s, const char* str, int n, int pos, unsigned short row, unsigned short col) { int result = MB_FUNC_OK; _parsing_context_t* context = 0; char last_char = _ZERO_CHAR; char c = '\0'; +#ifdef MB_ENABLE_UNICODE_ID + unsigned uc = 0; +#endif /* MB_ENABLE_UNICODE_ID */ mb_assert(s && s->parsing_context); context = s->parsing_context; - if(str && *str) { - c = **str; - ++(*str); + if(str) { +#ifdef MB_ENABLE_UNICODE_ID + if(n == 1) + c = *str; + else + memcpy(&uc, str, n); +#else /* MB_ENABLE_UNICODE_ID */ + c = *str; +#endif /* MB_ENABLE_UNICODE_ID */ } else { c = MB_EOS; } @@ -5049,8 +5100,15 @@ static int _parse_char(mb_interpreter_t* s, const char** str, int pos, unsigned switch(context->parsing_state) { case _PS_NORMAL: - c = toupper(c); +#ifdef MB_ENABLE_UNICODE_ID + if(uc) { + _mb_check(result = _append_uu_char_to_symbol(s, str, n), _exit); + break; + } +#endif /* MB_ENABLE_UNICODE_ID */ + + c = toupper(c); if(_is_blank_char(c)) { /* \t space */ _mb_check(result = _cut_symbol(s, pos, row, col), _exit); } else if(_is_newline_char(c)) { /* \r \n EOF */ @@ -11803,7 +11861,15 @@ int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset) { context = s->parsing_context; +#ifdef MB_ENABLE_UNICODE + mb_uu_getbom(&l); +#endif /* MB_ENABLE_UNICODE */ while(*l) { + int n = 1; +#ifdef MB_ENABLE_UNICODE_ID + if(context->parsing_state == _PS_NORMAL) + n = mb_uu_ischar(l); +#endif /* MB_ENABLE_UNICODE_ID */ ch = *l; if((ch == _NEWLINE_CHAR || ch == _RETURN_CHAR) && (!wrapped || wrapped == ch)) { wrapped = ch; @@ -11813,7 +11879,7 @@ int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset) { wrapped = _ZERO_CHAR; ++context->parsing_col; } - status = _parse_char(s, &l, context->parsing_pos, _row, _col); + status = _parse_char(s, l, n, context->parsing_pos, _row, _col); result = status; if(status) { _set_error_pos(s, context->parsing_pos, _row, _col); @@ -11824,8 +11890,9 @@ int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset) { _row = context->parsing_row; _col = context->parsing_col; ++context->parsing_pos; + l += n; }; - status = _parse_char(s, 0, context->parsing_pos, context->parsing_row, context->parsing_col); + status = _parse_char(s, 0, 1, context->parsing_pos, context->parsing_row, context->parsing_col); _exit: if(reset) @@ -11856,7 +11923,7 @@ int mb_load_file(struct mb_interpreter_t* s, const char* f) { } else { _set_current_error(s, SE_PS_FILE_OPEN_FAILED, 0); - ++result; + result = MB_FUNC_ERR; } _exit: diff --git a/core/my_basic.h b/core/my_basic.h index 749c61b..f1cdf99 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -124,6 +124,13 @@ extern "C" { # define MB_ENABLE_UNICODE #endif /* MB_ENABLE_UNICODE */ +#ifndef MB_ENABLE_UNICODE_ID +# define MB_ENABLE_UNICODE_ID +# if defined MB_ENABLE_UNICODE_ID && !defined MB_ENABLE_UNICODE +# error "Requires MB_ENABLE_UNICODE enabled." +# endif +#endif /* MB_ENABLE_UNICODE_ID */ + #ifndef MB_GC_GARBAGE_THRESHOLD # define MB_GC_GARBAGE_THRESHOLD 16 #endif /* MB_GC_GARBAGE_THRESHOLD */ diff --git a/output/my_basic.exe b/output/my_basic.exe index 00cb15b0309d5036beb023d1bead4a9720613826..ae32139c168ed20f978936a56ef1a65313242b1e 100755 GIT binary patch delta 27417 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