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 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_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_get_var(lbm_uint index);
|
||||||
extern lbm_value lbm_set_var(lbm_uint index, lbm_value value);
|
extern lbm_value lbm_set_var(lbm_uint index, lbm_value value);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -416,6 +416,14 @@ int main(int argc, char **argv) {
|
||||||
curr = lbm_cdr(curr);
|
curr = lbm_cdr(curr);
|
||||||
printf(" %s\r\n",output);
|
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) {
|
}else if (n >= 5 && strncmp(str, ":load", 5) == 0) {
|
||||||
char *file_str = load_file(&str[5]);
|
char *file_str = load_file(&str[5]);
|
||||||
if (file_str) {
|
if (file_str) {
|
||||||
|
@ -524,7 +532,7 @@ int main(int argc, char **argv) {
|
||||||
} else if (strncmp(str, ":step", 5) == 0) {
|
} else if (strncmp(str, ":step", 5) == 0) {
|
||||||
|
|
||||||
int num = atoi(str + 5);
|
int num = atoi(str + 5);
|
||||||
|
|
||||||
lbm_step_n_eval((uint32_t)num);
|
lbm_step_n_eval((uint32_t)num);
|
||||||
} else if (strncmp(str, ":array", 6) == 0) {
|
} else if (strncmp(str, ":array", 6) == 0) {
|
||||||
lbm_pause_eval_with_gc(30);
|
lbm_pause_eval_with_gc(30);
|
||||||
|
@ -541,7 +549,7 @@ int main(int argc, char **argv) {
|
||||||
lbm_define("i-arr", arr_val);
|
lbm_define("i-arr", arr_val);
|
||||||
|
|
||||||
lbm_continue_eval();
|
lbm_continue_eval();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* Get exclusive access to the heap */
|
/* Get exclusive access to the heap */
|
||||||
lbm_pause_eval();
|
lbm_pause_eval();
|
||||||
|
|
|
@ -40,10 +40,13 @@ lbm_value *lbm_get_variable_table(void) {
|
||||||
return variable_table;
|
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 &&
|
if (variable_table &&
|
||||||
i >= 0 &&
|
i >= 0 &&
|
||||||
i < variable_table_size) {
|
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) {
|
lbm_value lbm_set_var(lbm_uint index, lbm_value value) {
|
||||||
|
|
||||||
int i = (int)index - VARIABLE_SYMBOLS_START;
|
int i = (int)index - VARIABLE_SYMBOLS_START;
|
||||||
|
|
||||||
if (variable_table &&
|
if (variable_table &&
|
||||||
i >= 0 &&
|
i >= 0 &&
|
||||||
i < variable_table_size) {
|
i < variable_table_size) {
|
||||||
|
|
Loading…
Reference in New Issue