mirror of https://github.com/rusefi/bldc.git
Merge commit '1f0c09151c8ae7bc5c0f7d7adcc5fb5483ff14a9'
This commit is contained in:
commit
3bdf0e92aa
|
@ -23,6 +23,12 @@
|
|||
|
||||
extern int lbm_variables_init(lbm_value *variable_storage, int variable_storage_size);
|
||||
extern lbm_value *lbm_get_variable_table(void);
|
||||
extern lbm_value lbm_get_variable_by_index(int i);
|
||||
extern const char *lbm_get_variable_name_by_index(int index);
|
||||
|
||||
|
||||
/* internal use by evaluator (mostly)*/
|
||||
extern lbm_value lbm_get_var(lbm_uint index);
|
||||
extern lbm_value lbm_set_var(lbm_uint index, lbm_value value);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -416,6 +416,14 @@ int main(int argc, char **argv) {
|
|||
curr = lbm_cdr(curr);
|
||||
printf(" %s\r\n",output);
|
||||
}
|
||||
printf("Variables:\r\n");
|
||||
for (int i = 0; i < lbm_get_num_variables(); i ++) {
|
||||
|
||||
const char *name = lbm_get_variable_name_by_index(i);
|
||||
lbm_print_value(output,1024, lbm_get_variable_by_index(i));
|
||||
printf(" %s = %s\r\n", name ? name : "error", output);
|
||||
}
|
||||
|
||||
}else if (n >= 5 && strncmp(str, ":load", 5) == 0) {
|
||||
char *file_str = load_file(&str[5]);
|
||||
if (file_str) {
|
||||
|
@ -524,7 +532,7 @@ int main(int argc, char **argv) {
|
|||
} else if (strncmp(str, ":step", 5) == 0) {
|
||||
|
||||
int num = atoi(str + 5);
|
||||
|
||||
|
||||
lbm_step_n_eval((uint32_t)num);
|
||||
} else if (strncmp(str, ":array", 6) == 0) {
|
||||
lbm_pause_eval_with_gc(30);
|
||||
|
@ -541,7 +549,7 @@ int main(int argc, char **argv) {
|
|||
lbm_define("i-arr", arr_val);
|
||||
|
||||
lbm_continue_eval();
|
||||
|
||||
|
||||
} else {
|
||||
/* Get exclusive access to the heap */
|
||||
lbm_pause_eval();
|
||||
|
|
|
@ -40,10 +40,13 @@ lbm_value *lbm_get_variable_table(void) {
|
|||
return variable_table;
|
||||
}
|
||||
|
||||
lbm_value lbm_get_var(lbm_uint index) {
|
||||
lbm_value lbm_get_var(lbm_uint sym_val) {
|
||||
|
||||
int i = (int)index - VARIABLE_SYMBOLS_START;
|
||||
|
||||
int i = (int)sym_val - VARIABLE_SYMBOLS_START;
|
||||
return lbm_get_variable_by_index(i);
|
||||
}
|
||||
|
||||
lbm_value lbm_get_variable_by_index(int i) {
|
||||
if (variable_table &&
|
||||
i >= 0 &&
|
||||
i < variable_table_size) {
|
||||
|
@ -53,10 +56,18 @@ lbm_value lbm_get_var(lbm_uint index) {
|
|||
}
|
||||
}
|
||||
|
||||
const char *lbm_get_variable_name_by_index(int index) {
|
||||
if (index < 0 ||
|
||||
index >= lbm_get_num_variables()) return NULL;
|
||||
|
||||
lbm_uint sym_id = (lbm_uint)index + VARIABLE_SYMBOLS_START;
|
||||
return lbm_get_name_by_symbol(sym_id);
|
||||
}
|
||||
|
||||
lbm_value lbm_set_var(lbm_uint index, lbm_value value) {
|
||||
|
||||
int i = (int)index - VARIABLE_SYMBOLS_START;
|
||||
|
||||
|
||||
if (variable_table &&
|
||||
i >= 0 &&
|
||||
i < variable_table_size) {
|
||||
|
|
Loading…
Reference in New Issue