*changed the return type of mb_ver;
*polished.
This commit is contained in:
parent
57d5a3175e
commit
f362d0adb3
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (C) 2011 - 2016 Wang Renxin
|
||||
Copyright (C) 2011 - 2017 Wang Renxin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
Binary file not shown.
@ -6,7 +6,7 @@
|
||||
| ||_|| | | | | |_| || _ | _____| || | | |_
|
||||
|_| |_| |___| |_______||__| |__||_______||___| |_______|
|
||||
|
||||
**Copyright (C) 2011 - 2016 [Wang Renxin](https://cn.linkedin.com/pub/wang-renxin/43/494/20). All rights reserved.**
|
||||
**Copyright (C) 2011 - 2017 [Wang Renxin](https://cn.linkedin.com/pub/wang-renxin/43/494/20). All rights reserved.**
|
||||
|
||||
[简体中文](https://github.com/paladin-t/my_basic/wiki/%E7%94%B1%E7%BA%AF-C-%E8%AF%AD%E8%A8%80%E7%BC%96%E5%86%99%E7%9A%84-BASIC-%E8%84%9A%E6%9C%AC%E8%A7%A3%E9%87%8A%E5%99%A8)
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
**
|
||||
** For the latest info, see https://github.com/paladin-t/my_basic/
|
||||
**
|
||||
** Copyright (C) 2011 - 2016 Wang Renxin
|
||||
** Copyright (C) 2011 - 2017 Wang Renxin
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
** this software and associated documentation files (the "Software"), to deal in
|
||||
@ -10845,7 +10845,7 @@ static int _close_coll_lib(mb_interpreter_t* s) {
|
||||
*/
|
||||
|
||||
/* Get the version number of this MY-BASIC system */
|
||||
unsigned mb_ver(void) {
|
||||
unsigned long mb_ver(void) {
|
||||
return _MB_VERSION;
|
||||
}
|
||||
|
||||
@ -10856,9 +10856,9 @@ const char* mb_ver_string(void) {
|
||||
|
||||
/* Initialize the MY-BASIC system */
|
||||
int mb_init(void) {
|
||||
int result = MB_FUNC_OK;
|
||||
if(_exp_assign)
|
||||
return MB_FUNC_ERR;
|
||||
|
||||
mb_assert(!_exp_assign);
|
||||
_exp_assign = _create_object();
|
||||
_exp_assign->type = _DT_FUNC;
|
||||
_exp_assign->data.func = (_func_t*)mb_malloc(sizeof(_func_t));
|
||||
@ -10880,14 +10880,14 @@ int mb_init(void) {
|
||||
bvar->data->data.integer = 0;
|
||||
}
|
||||
|
||||
return result;
|
||||
return MB_FUNC_OK;
|
||||
}
|
||||
|
||||
/* Close the MY-BASIC system */
|
||||
int mb_dispose(void) {
|
||||
int result = MB_FUNC_OK;
|
||||
if(!_exp_assign)
|
||||
return MB_FUNC_ERR;
|
||||
|
||||
mb_assert(_exp_assign);
|
||||
safe_free(_exp_assign->data.func->name);
|
||||
safe_free(_exp_assign->data.func);
|
||||
safe_free(_exp_assign);
|
||||
@ -10910,7 +10910,7 @@ int mb_dispose(void) {
|
||||
_OBJ_BOOL_FALSE = 0;
|
||||
}
|
||||
|
||||
return result;
|
||||
return MB_FUNC_OK;
|
||||
}
|
||||
|
||||
/* Open a MY-BASIC environment */
|
||||
@ -10920,7 +10920,8 @@ int mb_open(struct mb_interpreter_t** s) {
|
||||
_ht_node_t* global_scope = 0;
|
||||
_running_context_t* running = 0;
|
||||
|
||||
mb_assert(s);
|
||||
if(!s)
|
||||
return MB_FUNC_ERR;
|
||||
|
||||
*s = (mb_interpreter_t*)mb_malloc(sizeof(mb_interpreter_t));
|
||||
memset(*s, 0, sizeof(mb_interpreter_t));
|
||||
@ -10977,12 +10978,12 @@ int mb_open(struct mb_interpreter_t** s) {
|
||||
|
||||
/* Close a MY-BASIC environment */
|
||||
int mb_close(struct mb_interpreter_t** s) {
|
||||
int result = MB_FUNC_OK;
|
||||
_ht_node_t* local_scope = 0;
|
||||
_ht_node_t* global_scope = 0;
|
||||
_ls_node_t* ast;
|
||||
|
||||
mb_assert(s);
|
||||
if(!s || !(*s))
|
||||
return MB_FUNC_ERR;
|
||||
|
||||
(*s)->valid = false;
|
||||
|
||||
@ -11042,7 +11043,7 @@ int mb_close(struct mb_interpreter_t** s) {
|
||||
|
||||
safe_free(*s);
|
||||
|
||||
return result;
|
||||
return MB_FUNC_OK;
|
||||
}
|
||||
|
||||
/* Reset a MY-BASIC environment */
|
||||
@ -11053,7 +11054,8 @@ int mb_reset(struct mb_interpreter_t** s, bool_t clrf) {
|
||||
_parsing_context_t* context = 0;
|
||||
_running_context_t* running = 0;
|
||||
|
||||
mb_assert(s);
|
||||
if(!s || !(*s))
|
||||
return MB_FUNC_ERR;
|
||||
|
||||
(*s)->jump_set = _JMP_NIL;
|
||||
(*s)->last_routine = 0;
|
||||
@ -12947,7 +12949,7 @@ _exit:
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Operator - */
|
||||
/* Operator - (minus) */
|
||||
static int _core_min(mb_interpreter_t* s, void** l) {
|
||||
int result = MB_FUNC_OK;
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
**
|
||||
** For the latest info, see https://github.com/paladin-t/my_basic/
|
||||
**
|
||||
** Copyright (C) 2011 - 2016 Wang Renxin
|
||||
** Copyright (C) 2011 - 2017 Wang Renxin
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
** this software and associated documentation files (the "Software"), to deal in
|
||||
@ -551,7 +551,7 @@ typedef mb_meta_status_u (* mb_meta_func_t)(struct mb_interpreter_t*, void**, co
|
||||
typedef char* (* mb_memory_allocate_func_t)(unsigned);
|
||||
typedef void (* mb_memory_free_func_t)(char*);
|
||||
|
||||
MBAPI unsigned mb_ver(void);
|
||||
MBAPI unsigned long mb_ver(void);
|
||||
MBAPI const char* mb_ver_string(void);
|
||||
|
||||
MBAPI int mb_init(void);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
COPYRIGHT 2016 WANG RENXIN. ALL RIGHTS REESERVED.
|
||||
COPYRIGHT 2011 - 2017 WANG RENXIN. ALL RIGHTS REESERVED.
|
||||
THIS PAGE IS NOT OPEN SOURCE LICENSED.
|
||||
DO NOT CHANGE THIS FILE.
|
||||
-->
|
||||
|
Binary file not shown.
@ -57,7 +57,7 @@
|
||||
VALUE "FileDescription", "MY-BASIC Interpreter for Windows"
|
||||
VALUE "FileVersion", "1, 2, 0, 0"
|
||||
VALUE "InternalName", "my_basic"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2011 - 2016 Wang Renxin"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2011 - 2017 Wang Renxin"
|
||||
VALUE "LegalTrademarks", "MY-BASIC"
|
||||
VALUE "OriginalFilename", "my_basic.exe"
|
||||
VALUE "ProductName", "MY-BASIC"
|
||||
|
@ -1,6 +1,6 @@
|
||||
## Samples of MY-BASIC
|
||||
|
||||
**Copyright (C) 2011 - 2016 Wang Renxin. All rights reserved.**
|
||||
**Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.**
|
||||
|
||||
This folder contains severial sample code of MY-BASIC.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
s$ = "Hello"
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
e = 50
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
input "Input: ", ns$
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
begin:
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
def area(a, b)
|
||||
|
@ -1,8 +1,8 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
class animal
|
||||
Class animal
|
||||
def speak(a)
|
||||
print "Default" + a;
|
||||
enddef
|
||||
|
@ -1,5 +1,5 @@
|
||||
' This script is an example of MY-BASIC
|
||||
' Copyright (c) 2011 - 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (c) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
def reserve(m, n)
|
||||
|
@ -1,6 +1,6 @@
|
||||
## YARD (Yet Another RPG Dungeon)
|
||||
|
||||
**Copyright (C) 2016 Wang Renxin. All rights reserved.**
|
||||
**Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.**
|
||||
|
||||
"Yet Another RPG Dungeon" is a text based game. It's a simple comprehensive example and a tutorial which demonstrates lots of concepts of MY-BASIC.
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
class entity
|
||||
Class entity
|
||||
var name = ""
|
||||
|
||||
var alive = true
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "entity.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "goal.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "utils.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "entity.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "entity.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "entity.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
import "level.bas"
|
||||
|
@ -1,6 +1,6 @@
|
||||
' Yet Another RPG Dungeon is a text based game.
|
||||
' It's aimed to be a comprehensive example and or a tutorial of MY-BASIC.
|
||||
' Copyright (C) 2016 Wang Renxin. All rights reserved.
|
||||
' Copyright (C) 2011 - 2017 Wang Renxin. All rights reserved.
|
||||
' For more information about MY-BASIC, see https://github.com/paladin-t/my_basic/
|
||||
|
||||
def cls()
|
||||
|
10
shell/main.c
10
shell/main.c
@ -3,7 +3,7 @@
|
||||
**
|
||||
** For the latest info, see https://github.com/paladin-t/my_basic/
|
||||
**
|
||||
** Copyright (C) 2011 - 2016 Wang Renxin
|
||||
** Copyright (C) 2011 - 2017 Wang Renxin
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
** this software and associated documentation files (the "Software"), to deal in
|
||||
@ -974,7 +974,7 @@ static void _list_directory(const char* path) {
|
||||
|
||||
static void _show_tip(void) {
|
||||
_printf("MY-BASIC Interpreter Shell - %s\n", mb_ver_string());
|
||||
_printf("Copyright (C) 2011 - 2016 Wang Renxin. All Rights Reserved.\n");
|
||||
_printf("Copyright (C) 2011 - 2017 Wang Renxin. All Rights Reserved.\n");
|
||||
_printf("For more information, see https://github.com/paladin-t/my_basic/.\n");
|
||||
_printf("Input HELP and hint enter to view help information.\n");
|
||||
}
|
||||
@ -1451,14 +1451,14 @@ static void _on_error(struct mb_interpreter_t* s, mb_error_e e, char* m, char* f
|
||||
if(f) {
|
||||
if(e == SE_RN_WRONG_FUNCTION_REACHED) {
|
||||
_printf(
|
||||
"Error:\n Line %d, Col %d in Func: %s\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
"Error:\n Ln %d, Col %d in Func: %s\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
row, col, f,
|
||||
e, abort_code,
|
||||
m
|
||||
);
|
||||
} else {
|
||||
_printf(
|
||||
"Error:\n Line %d, Col %d in File: %s\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
"Error:\n Ln %d, Col %d in File: %s\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
row, col, f,
|
||||
e, e == SE_EA_EXTENDED_ABORT ? abort_code - MB_EXTENDED_ABORT : abort_code,
|
||||
m
|
||||
@ -1466,7 +1466,7 @@ static void _on_error(struct mb_interpreter_t* s, mb_error_e e, char* m, char* f
|
||||
}
|
||||
} else {
|
||||
_printf(
|
||||
"Error:\n Line %d, Col %d\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
"Error:\n Ln %d, Col %d\n Code %d, Abort Code %d\n Message: %s.\n",
|
||||
row, col,
|
||||
e, e == SE_EA_EXTENDED_ABORT ? abort_code - MB_EXTENDED_ABORT : abort_code,
|
||||
m
|
||||
|
Loading…
x
Reference in New Issue
Block a user