emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/parsec 4504686 04/13: Merge pull request #2 from jtimmo


From: Stefan Monnier
Subject: [elpa] externals/parsec 4504686 04/13: Merge pull request #2 from jtimmons/master
Date: Fri, 26 Mar 2021 22:45:55 -0400 (EDT)

branch: externals/parsec
commit 45046868fb2d5f3c914f2e3b67fbe15033c93532
Merge: 21f5a11 aaf1c3e
Author: Junpeng Qiu <qjpchmail@gmail.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #2 from jtimmons/master
    
    Rewrite `parsec-one-of` using `parsec-or` and `parsec-ch`
---
 parsec.el | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/parsec.el b/parsec.el
index 3432e3d..3ed3856 100644
--- a/parsec.el
+++ b/parsec.el
@@ -600,15 +600,14 @@
         (setq regex-str (concat regex-str "^"))))
     (concat regex-head regex-str regex-end)))
 
-(defun parsec-one-of (&rest chars)
+(defmacro parsec-one-of (&rest chars)
   "Succeed if the current character is in the supplied list of CHARS.
 Return the parsed character.
 
->  (parsec-one-of ?a ?e ?i ?o ?u)
-
-Note this function is just a wrapper of `parsec-re'.  For complicated use 
cases,
-consider using `parsec-re' instead."
-  (parsec-re (format "[%s]" (parsec-make-alternatives chars))))
+>  (parsec-one-of ?a ?e ?i ?o ?u)"
+  (let ((sexp '(parsec-or))
+       (parsers (mapcar (lambda (c) (list #'parsec-ch c)) chars)))
+    (append sexp parsers)))
 
 (defun parsec-none-of (&rest chars)
   "Succeed if the current character not in the supplied list of CHARS.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]