From 09f005b50a88d33f3d8768df8fc4dd027f533abf Mon Sep 17 00:00:00 2001 From: tony Date: Fri, 18 Sep 2015 21:06:38 +0800 Subject: [PATCH] *fixed a float number parsing bug, thanks to Cybermonkey342 for pointing it out; +added directly expression evaluation shell command. --- HISTORY | 4 ++ core/my_basic.c | 2 +- core/my_basic.h | 19 +++---- output/my_basic.exe | Bin 76800 -> 78848 bytes output/my_basic_mac | Bin 103432 -> 103560 bytes resource/my_basic.rc | 8 +-- shell/main.c | 124 +++++++++++++++++++++++++++++++++++++++---- 7 files changed, 132 insertions(+), 25 deletions(-) diff --git a/HISTORY b/HISTORY index a75d1ad..e31c71f 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,7 @@ +Sep. 18 2015 +Fixed a float number parsing bug, thanks to Cybermonkey342 for pointing it out +Added directly expression evaluation shell command + Sep. 17 2015 Allowed string in a boolean expression Added support for sub routine in PRINT diff --git a/core/my_basic.c b/core/my_basic.c index b06c568..7524d7b 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -79,7 +79,7 @@ extern "C" { /** Macros */ #define _VER_MAJOR 1 #define _VER_MINOR 1 -#define _VER_REVISION 70 +#define _VER_REVISION 71 #define _MB_VERSION ((_VER_MAJOR * 0x01000000) + (_VER_MINOR * 0x00010000) + (_VER_REVISION)) /* Uncomment the line below to treat warning as error */ diff --git a/core/my_basic.h b/core/my_basic.h index 7e78716..92a4d82 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -50,18 +50,9 @@ extern "C" { # define MB_ENABLE_SOURCE_TRACE #endif /* MB_ENABLE_SOURCE_TRACE */ -#ifndef MB_COMPACT_MODE -# define MB_COMPACT_MODE -#endif /* MB_COMPACT_MODE */ - -#ifdef MB_COMPACT_MODE -# pragma pack(1) -#endif /* MB_COMPACT_MODE */ - #ifndef MB_CONVERT_TO_INT_LEVEL_NONE # define MB_CONVERT_TO_INT_LEVEL_NONE 0 #endif /* MB_CONVERT_TO_INT_LEVEL_NONE */ - #ifndef MB_CONVERT_TO_INT_LEVEL_ALL # define MB_CONVERT_TO_INT_LEVEL_ALL 1 #endif /* MB_CONVERT_TO_INT_LEVEL_ALL */ @@ -70,6 +61,14 @@ extern "C" { # define MB_CONVERT_TO_INT_LEVEL MB_CONVERT_TO_INT_LEVEL_ALL #endif /* MB_CONVERT_TO_INT_LEVEL */ +#ifndef MB_COMPACT_MODE +# define MB_COMPACT_MODE +#endif /* MB_COMPACT_MODE */ + +#ifdef MB_COMPACT_MODE +# pragma pack(1) +#endif /* MB_COMPACT_MODE */ + #ifndef true # define true (!0) #endif /* true */ @@ -261,6 +260,7 @@ typedef enum mb_data_e { MB_DT_REAL = 1 << 2, MB_DT_STRING = 1 << 3, MB_DT_USERTYPE = 1 << 4, + MB_DT_CLASS = 1 << 5, MB_DT_ARRAY = 1 << 12 } mb_data_e; @@ -269,6 +269,7 @@ typedef union mb_value_u { real_t float_point; char* string; void* usertype; + void* instance; void* array; } mb_value_u; diff --git a/output/my_basic.exe b/output/my_basic.exe index 7f62e4ab77b105f29b7b033edf07aa3a32b77871..a0e1d7d67f2208fd14c43d15ced0c65cd894cea9 100755 GIT binary patch delta 24387 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 } } else { - printf("Cannot load file \"%s\"\n", path); + printf("Cannot load file \"%s\".\n", path); } } static void _save_program(const char* path) { char* txt = _get_code(c); if(!_save_file(path, txt)) { - printf("Cannot save file \"%s\"\n", path); + printf("Cannot save file \"%s\".\n", path); } else { if(c->count == 1) { printf("Save done. %d line saved.\n", c->count); @@ -561,7 +569,11 @@ static void _show_tip(void) { } static void _show_help(void) { - printf("Commands:\n"); + printf("Parameters:\n"); + printf(" %s - Start interactive mode without arguments.\n", _BIN_FILE_NAME); + printf(" %s *.* - Load and run a file.\n", _BIN_FILE_NAME); + printf(" %s -e \"expr\" - Evaluate an expression directly.\n", _BIN_FILE_NAME); + printf("Interactive commands:\n"); printf(" CLS - Clear screen\n"); printf(" NEW - Clear current program\n"); printf(" RUN - Run current program\n"); @@ -647,6 +659,100 @@ static int _do_line(void) { /* ========================================================} */ +/* +** {======================================================== +** Parameter processing +*/ + +#define _CHECK_ARG(__c, __i, __e) \ + do { \ + if(__c <= __i + 1) { \ + printf(__e); \ + return; \ + } \ + } while(0) + +static void _run_file(char* path) { + if(mb_load_file(bas, path) == MB_FUNC_OK) { + mb_run(bas); + } else { + printf("Invalid file or error code.\n"); + } +} + +static void _evaluate_expression(char* p) { + char pr[8]; + int l = 0; + int k = 0; + bool_t a = true; + char* e = 0; + + const char* const print = "PRINT "; + + if(!p) { + printf("Invalid expression.\n"); + + return; + } + + l = (int)strlen(p); + k = (int)strlen(print); + if(l >= k) { + memcpy(pr, p, k); + pr[k] = '\0'; + if(_str_eq(pr, print)) + a = false; + } + if(a) { + e = (char*)malloc(l + k + 1); + memcpy(e, print, k); + memcpy(e + k, p, l); + e[l + k] = '\0'; + p = e; + } + if(mb_load_string(bas, p) == MB_FUNC_OK) { + mb_run(bas); + } else { + printf("Invalid expression.\n"); + } + if(a) { + free(e); + } +} + +static void _process_parameters(int argc, char* argv[]) { + int i = 1; + char* p = 0; + char m = '\0'; + + while(i < argc) { + if(!memcmp(argv[i], "-", 1)) { + if(!memcmp(argv[i] + 1, "e", 1)) { + m = 'e'; + _CHECK_ARG(argc, i, "-e: Expression expected.\n"); + p = argv[++i]; + } else { + printf("Unknown argument: %s.\n", argv[i]); + } + } else { + p = argv[i]; + } + + i++; + } + + switch(m) { + case '\0': + _run_file(p); + break; + case 'e': + _evaluate_expression(p); + break; + } +} + +/* ========================================================} */ + /* ** {======================================================== ** Scripting interfaces @@ -684,7 +790,7 @@ static void _on_error(struct mb_interpreter_t* s, mb_error_e e, char* m, char* f mb_unrefvar(f); mb_unrefvar(p); if(SE_NO_ERR != e) { - printf("Error:\n [LINE] %d, [COL] %d,\n [CODE] %d, [MESSAGE] %s, [ABORT CODE] %d\n", row, col, e, m, abort_code); + printf("Error:\n [LINE] %d, [COL] %d,\n [CODE] %d, [MESSAGE] %s, [ABORT CODE] %d.\n", row, col, e, m, abort_code); } } @@ -753,14 +859,10 @@ int main(int argc, char* argv[]) { do { status = _do_line(); } while(_NO_END(status)); - } else if(argc == 2) { - if(mb_load_file(bas, argv[1]) == MB_FUNC_OK) { - mb_run(bas); - } else { - printf("Invalid file\n"); - } + } else if(argc >= 2) { + _process_parameters(argc, argv); } else { - printf("Unknown arguments\n"); + printf("Unknown arguments.\n"); _show_tip(); }