From: Mark Wooding Date: Sat, 13 May 2006 00:07:43 +0000 (+0100) Subject: infix: Make delim's requiredp argument optional rather than keyword. X-Git-Url: https://git.distorted.org.uk/~mdw/lisp/commitdiff_plain/1b35c11e81637c1fb06cab552c2ca91facb373a9 infix: Make delim's requiredp argument optional rather than keyword. This makes the code rather less messy, I think. --- diff --git a/infix.lisp b/infix.lisp index a0d320d..73fc339 100644 --- a/infix.lisp +++ b/infix.lisp @@ -356,9 +356,9 @@ ;;;-------------------------------------------------------------------------- ;;; Infrastructure for operator definitions. -(defun delim (delim &key (requiredp t)) +(defun delim (delim &optional (requiredp t)) "Parse DELIM, and read the next token. Returns t if the DELIM was found, - or nil if not (and requiredp was nil)." + or nil if not (and REQUIREDP was nil)." (cond ((eq *token* delim) (get-token) t) (requiredp (error "expected `~(~A~)'; found ~S" delim *token*)) (t nil))) @@ -413,7 +413,7 @@ (let ((stuff nil)) (loop (push (parse-infix 0) stuff) - (unless (delim '|,| :requiredp nil) + (unless (delim '|,| nil) (return))) (nreverse stuff))) @@ -425,7 +425,7 @@ (error "expected symbol; found ~S" *token*)) (push *token* stuff) (get-token) - (unless (delim '|,| :requiredp nil) + (unless (delim '|,| nil) (return))) (nreverse stuff))) @@ -648,18 +648,18 @@ (get-token) (when (eq *token* '|)|) (go done)) - (delim '|,| :requiredp nil) + (delim '|,| nil) (go loop)) ((symbolp *token*) (let ((name *token*)) (get-token) - (if (delim '= :requiredp nil) + (if (delim '= nil) (push (list name (parse-infix 0)) args) (push name args)))) (t (push *token* args) (get-token))) - (when (delim '|,| :requiredp nil) + (when (delim '|,| nil) (go loop)) done))) (delim '|)|) @@ -667,7 +667,7 @@ (defun parse-func-name () "Parse a function name and return its Lisp equivalent." - (cond ((delim '|(| :requiredp nil) + (cond ((delim '|(| nil) (prog1 (parse-infix) (delim '|)|))) (t (prog1 *token* (get-token))))) @@ -692,7 +692,7 @@ (push `(,(parse-func-name) ,(parse-lambda-list) ,@(strip-progn (parse-infix 0))) clauses) - (unless (delim '|,| :requiredp nil) + (unless (delim '|,| nil) (return))) (delim 'in) (pushval `(,kind ,(nreverse clauses) ,@(strip-progn (parse-infix 0))))))