~ashn/autil

b80ac34887a480beb2d2fd841cdcdba84d6aaa18 — ashn 6 months ago 162d222
Fix bigint-calculator example
1 files changed, 11 insertions(+), 7 deletions(-)

M examples/bigint-calculator.c
M examples/bigint-calculator.c => examples/bigint-calculator.c +11 -7
@@ 67,17 67,18 @@ void
eval_line(char const* line, size_t line_size)
{
    struct autil_string* const string = autil_string_new(line, line_size);
    struct autil_vec* const tokens = autil_vec_of_string_new();
    struct autil_vec* const stack = autil_vec_new(sizeof(struct autil_bigint*));

    autil_string_trim(string);
    autil_string_split_to_vec(string, tokens);
    autil_sbuf(struct autil_string*) const tokens =
        autil_string_split(string, " ", 1);

    int err = 0;
    for (size_t i = 0; i < autil_vec_count(tokens); ++i) {
        struct autil_string* const tok =
            AUTIL_DEREF_PTR(struct autil_string*, autil_vec_ref(tokens, i));
        if ((err = eval_token(stack, autil_string_start(tok)))) {
    for (size_t i = 0; i < autil_sbuf_count(tokens); ++i) {
        if (autil_string_count(tokens[i]) == 0) {
            continue;
        }
        if ((err = eval_token(stack, autil_string_start(tokens[i])))) {
            break;
        }
    }


@@ 86,7 87,10 @@ eval_line(char const* line, size_t line_size)
    }

    autil_string_del(string);
    autil_vec_of_string_del(tokens);
    for (size_t i = 0; i < autil_sbuf_count(tokens); ++i) {
        autil_string_del(tokens[i]);
    }
    autil_sbuf_fini(tokens);
    for (size_t i = 0; i < autil_vec_count(stack); ++i) {
        autil_bigint_del(
            AUTIL_DEREF_PTR(struct autil_bigint*, autil_vec_ref(stack, i)));