From 00f5d2881b7a1b4daf91b80de60009d36182270e Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 25 Oct 2019 07:44:35 -0700 Subject: parser: use faster, unsafe nreverse. * lib.c (us_nreverse): New function. * lib.h (us_nreverse): Declared. * parser.y (clauses_opt, n_exprs, r_exprs): Use us_nreverse instead of nreverse to rorder lists built in reverse into final shape. --- lib.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib.c') diff --git a/lib.c b/lib.c index c288c8fc..4883f37d 100644 --- a/lib.c +++ b/lib.c @@ -1349,6 +1349,20 @@ val reverse(val seq_in) } } +val us_nreverse(val in) +{ + val rev = nil; + + while (in) { + val temp = us_cdr(in); + us_rplacd(in, rev); + rev = in; + in = temp; + } + + return rev; +} + val append2(val list1, val list2) { list_collect_decl (out, ptail); -- cgit v1.2.3