From 7f0060532b77f9f07f95b64e4f1344bf54c8cc8a Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Tue, 14 Apr 2015 02:58:36 -0400 Subject: [PATCH] Demacroify subroutine in parse-process-spec --- process-spec.lisp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/process-spec.lisp b/process-spec.lisp index e927358..e37bec5 100644 --- a/process-spec.lisp +++ b/process-spec.lisp @@ -174,25 +174,23 @@ (clps-current-argument c) nil))) (defun parse-process-spec (spec) - (macrolet ((make-sequence-instance (spec-type args) - `(make-instance - ',spec-type :processes - (loop :for process :in (mapcar 'parse-process-spec ,args) - :nconc (etypecase process - (,spec-type (sequence-processes process)) - (sequence-spec (list process)) - (command-spec (list process))))))) + (labels ((make-sequence-instance (spec-type args) + (make-instance spec-type :processes + (loop :for process :in (mapcar 'parse-process-spec args) + :nconc (if (typep process spec-type) + (sequence-processes process) + (list process)))))) (match spec (`(pipe ,@args) - (make-sequence-instance pipe-spec args)) + (make-sequence-instance 'pipe-spec args)) (`(or ,@args) - (make-sequence-instance or-spec args)) + (make-sequence-instance 'or-spec args)) (`(and ,@args) - (make-sequence-instance and-spec args)) + (make-sequence-instance 'and-spec args)) (`(progn ,@args) - (make-sequence-instance progn-spec args)) + (make-sequence-instance 'progn-spec args)) (`(fork ,@args) - (make-sequence-instance fork-spec args)) + (make-sequence-instance 'fork-spec args)) (`(,_ ,@_) (let ((c (make-instance 'command-parse))) (dolist (elem spec) -- GitLab