X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Febisp%2Fparser.c;h=b48287bd5fc260891690583eedf33aa3b739cf40;hb=8f7179a00fb7d7240ed0c01c97265b8bf00b7f41;hp=a9f70deaf86cef0d98e7cffbb13695d5fba3131f;hpb=ff2b4299902a8efb0df283e353e084ed08af490f;p=nothing.git diff --git a/src/ebisp/parser.c b/src/ebisp/parser.c index a9f70dea..b48287bd 100644 --- a/src/ebisp/parser.c +++ b/src/ebisp/parser.c @@ -10,7 +10,6 @@ #include "ebisp/builtins.h" #include "ebisp/parser.h" #include "system/lt.h" -#include "system/lt/lt_adapters.h" #define MAX_BUFFER_LENGTH (5 * 1000 * 1000) @@ -123,7 +122,7 @@ static struct ParseResult parse_string(Gc *gc, struct Token current_token) static struct ParseResult parse_number(Gc *gc, struct Token current_token) { char *endptr = 0; - const long int x = strtoimax(current_token.begin, &endptr, 10); + const long int x = strtol(current_token.begin, &endptr, 10); if (current_token.begin == endptr || current_token.end != endptr) { return parse_failure("Expected number", current_token.begin); @@ -217,6 +216,10 @@ struct ParseResult read_all_exprs_from_string(Gc *gc, const char *str) trace_assert(str); struct Token current_token = next_token(str); + if (*current_token.end == 0) { + return parse_success(NIL(gc), current_token.end); + } + struct ParseResult parse_result = parse_expr(gc, current_token); if (parse_result.is_error) { return parse_result; @@ -247,9 +250,6 @@ struct ParseResult read_expr_from_file(Gc *gc, const char *filename) trace_assert(filename); Lt *lt = create_lt(); - if (lt == NULL) { - return parse_failure("Could not create Lt object", NULL); - } FILE *stream = PUSH_LT(lt, fopen(filename, "rb"), fclose_lt); if (!stream) { @@ -299,9 +299,6 @@ struct ParseResult read_all_exprs_from_file(Gc *gc, const char *filename) trace_assert(filename); Lt *lt = create_lt(); - if (lt == NULL) { - return parse_failure("Could not create Lt object", NULL); - } FILE *stream = PUSH_LT(lt, fopen(filename, "rb"), fclose_lt); if (!stream) {