Make parsing function public.

libab already provides a _run_tree ... you can't run_tree if there's
no tree.
This commit is contained in:
Danila Fedorin 2018-09-12 14:43:43 -07:00
parent b311c854ee
commit 5617484aff
2 changed files with 10 additions and 3 deletions

View File

@ -232,6 +232,13 @@ void libab_get_false_value(libab* ab, libab_ref* into);
*/
void libab_get_bool_value(libab* ab, int val, libab_ref* into);
/**
* Parses the given piece of code using the given libabacus instance.
* @param ab the instance to use to parse the code.
* @param string the source code to parse.
* @param into the value to store the newly parsed tree into.
*/
libab_result libab_parse(libab* ab, const char* string, libab_tree** into);
/**
* Executes the given string of code.
* @param ab the libabacus instance to use for executing code.

View File

@ -406,7 +406,7 @@ void libab_get_bool_value(libab* ab, int val, libab_ref* into) {
val ? libab_get_true_value(ab, into) : libab_get_false_value(ab, into);
}
libab_result _create_tree(libab* ab, const char* string, libab_tree** into) {
libab_result libab_parse(libab* ab, const char* string, libab_tree** into) {
libab_result result = LIBAB_SUCCESS;
ll tokens;
@ -442,7 +442,7 @@ libab_result libab_run(libab* ab, const char* string, libab_ref* value) {
libab_tree* root;
libab_ref_null(value);
result = _create_tree(ab, string, &root);
result = libab_parse(ab, string, &root);
if (result == LIBAB_SUCCESS) {
libab_ref_free(value);
@ -483,7 +483,7 @@ libab_result libab_run_scoped(libab* ab, const char* string, libab_ref* scope, l
libab_tree* root;
libab_ref_null(into);
result = _create_tree(ab, string, &root);
result = libab_parse(ab, string, &root);
if(result == LIBAB_SUCCESS) {
libab_ref_free(into);
result = libab_interpreter_run(&ab->intr, root, scope, SCOPE_NONE, into);