Parsing should not create a new list
The resulting program is already a sequence.
This commit is contained in:
parent
53810d61f2
commit
e9b426db41
8
ell.c
8
ell.c
|
@ -630,7 +630,7 @@ parse (const char *s, size_t len, char **e) {
|
||||||
print_tree (result, 0);
|
print_tree (result, 0);
|
||||||
printf ("\n\n");
|
printf ("\n\n");
|
||||||
#endif
|
#endif
|
||||||
return new_list (result);
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Runtime -----------------------------------------------------------------
|
// --- Runtime -----------------------------------------------------------------
|
||||||
|
@ -1006,7 +1006,7 @@ main (int argc, char *argv[]) {
|
||||||
fclose (fp);
|
fclose (fp);
|
||||||
|
|
||||||
char *e = NULL;
|
char *e = NULL;
|
||||||
struct item *tree = parse (buf.s, buf.len, &e);
|
struct item *program = parse (buf.s, buf.len, &e);
|
||||||
free (buf.s);
|
free (buf.s);
|
||||||
if (e) {
|
if (e) {
|
||||||
printf ("%s: %s\n", "parse error", e);
|
printf ("%s: %s\n", "parse error", e);
|
||||||
|
@ -1021,9 +1021,9 @@ main (int argc, char *argv[]) {
|
||||||
printf ("%s\n", "runtime library initialization failed");
|
printf ("%s\n", "runtime library initialization failed");
|
||||||
|
|
||||||
struct item *result = NULL;
|
struct item *result = NULL;
|
||||||
(void) execute (&ctx, tree->head, &result);
|
(void) execute (&ctx, program, &result);
|
||||||
item_free_list (result);
|
item_free_list (result);
|
||||||
item_free_list (tree);
|
item_free_list (program);
|
||||||
|
|
||||||
const char *failure = NULL;
|
const char *failure = NULL;
|
||||||
if (ctx.memory_failure)
|
if (ctx.memory_failure)
|
||||||
|
|
Loading…
Reference in New Issue