From 9ae36da6bff3459e0703a850b30f9e56cdfb39a7 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Fri, 22 Apr 2016 17:33:38 +0800 Subject: [PATCH] *polished code. --- core/my_basic.c | 29 +++++++++++++++++++---------- output/my_basic.exe | Bin 368640 -> 368640 bytes 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/core/my_basic.c b/core/my_basic.c index 7641f19..2ecc2e6 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -5076,6 +5076,8 @@ static int _parse_char(mb_interpreter_t* s, const char* str, int n, int pos, uns char c = '\0'; #ifdef MB_ENABLE_UNICODE_ID unsigned uc = 0; +#else /* MB_ENABLE_UNICODE_ID */ + mb_unrefvar(n); #endif /* MB_ENABLE_UNICODE_ID */ mb_assert(s && s->parsing_context); @@ -5102,7 +5104,13 @@ static int _parse_char(mb_interpreter_t* s, const char* str, int n, int pos, uns case _PS_NORMAL: #ifdef MB_ENABLE_UNICODE_ID if(uc) { - _mb_check(result = _append_uu_char_to_symbol(s, str, n), _exit); + if(context->symbol_state == _SS_IDENTIFIER) { + _mb_check(result = _append_uu_char_to_symbol(s, str, n), _exit); + } else if(context->symbol_state == _SS_OPERATOR) { + context->symbol_state = _SS_IDENTIFIER; + _mb_check(result = _cut_symbol(s, pos, row, col), _exit); + _mb_check(result = _append_uu_char_to_symbol(s, str, n), _exit); + } break; } @@ -11850,7 +11858,6 @@ _exit: /* Load and parse a script string */ int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset) { int result = MB_FUNC_OK; - char ch = 0; int status = 0; unsigned short _row = 0; unsigned short _col = 0; @@ -11870,14 +11877,16 @@ int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset) { 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; - ++context->parsing_row; - context->parsing_col = 0; - } else { - wrapped = _ZERO_CHAR; - ++context->parsing_col; + if(n == 1) { + char ch = *l; + if((ch == _NEWLINE_CHAR || ch == _RETURN_CHAR) && (!wrapped || wrapped == ch)) { + wrapped = ch; + ++context->parsing_row; + context->parsing_col = 0; + } else { + wrapped = _ZERO_CHAR; + ++context->parsing_col; + } } status = _parse_char(s, l, n, context->parsing_pos, _row, _col); result = status; diff --git a/output/my_basic.exe b/output/my_basic.exe index ae32139c168ed20f978936a56ef1a65313242b1e..26f84d81accad2b6b4ffbc502e73c131547b459b 100755 GIT binary patch delta 16182 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 V&moZ`i=~}+6eiovjc%P?{|`M--$Vca delta 16157 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