branch: master
commit fb269292ed1cbd73a9d3463414a1361c20a0ed4b
Author: Junpeng Qiu <[email protected]>
Commit: Junpeng Qiu <[email protected]>
Fix parsec-make-alternatives
---
parsec-tests.el | 18 ++++++++++++++++++
parsec.el | 13 +++++++------
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/parsec-tests.el b/parsec-tests.el
index 63721b3..471957f 100644
--- a/parsec-tests.el
+++ b/parsec-tests.el
@@ -104,6 +104,24 @@
:group 2))
"bc")))
+(ert-deftest test-parsec-make-alternatives ()
+ (should
+ (equal
+ (parsec-make-alternatives '(?-))
+ "-"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?- ?\] ?a ?^))
+ "]a^-"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?- ?^))
+ "-^"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?^ ?\"))
+ "\"^")))
+
(ert-deftest test-parsec-one-of ()
(should
(equal
diff --git a/parsec.el b/parsec.el
index 8c9b2e2..4911142 100644
--- a/parsec.el
+++ b/parsec.el
@@ -129,12 +129,13 @@
((char-equal c ?-) (setq regex-end "-"))
((char-equal c ?^) (setq contains-caret-p t))
(t (setq regex-str (concat regex-str (char-to-string c))))))
- (if (and contains-caret-p
- (string-equal regex-end "-")
- (string-equal regex-head "")
- (string-equal regex-str ""))
- (setq regex-end "-^")
- (setq regex-str (concat regex-str "^")))
+ (when contains-caret-p
+ (if (and
+ (string-equal regex-end "-")
+ (string-equal regex-head "")
+ (string-equal regex-str ""))
+ (setq regex-end "-^")
+ (setq regex-str (concat regex-str "^"))))
(concat regex-head regex-str regex-end)))
(defun parsec-one-of (&rest chars)