branch: master commit fb269292ed1cbd73a9d3463414a1361c20a0ed4b Author: Junpeng Qiu <qjpchm...@gmail.com> Commit: Junpeng Qiu <qjpchm...@gmail.com>
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)