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

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

[elpa] externals/parser-generator 62f54f1 110/434: Added failing unit te


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 62f54f1 110/434: Added failing unit test for e-free-first function
Date: Mon, 29 Nov 2021 15:59:20 -0500 (EST)

branch: externals/parser-generator
commit 62f54f1c9df42925235a0c80108dadac5f5edd02
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>

    Added failing unit test for e-free-first function
---
 parser.el           | 16 +++++++++-------
 test/parser-test.el |  9 +++++++++
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/parser.el b/parser.el
index f025db9..0121699 100644
--- a/parser.el
+++ b/parser.el
@@ -665,11 +665,13 @@
     (let ((i-max (length productions)))
 
       ;; Generate F-sets only once per grammar
-      (unless (or
-               (and (not disallow-e-first)
-                    parser--f-sets)
-               (and disallow-e-first
-                    parser--f-free-sets))
+      (when (or
+             (and
+              (not disallow-e-first)
+              (not parser--f-sets))
+             (and
+              disallow-e-first
+              (not parser--f-free-sets)))
         (let ((f-sets (make-hash-table :test 'equal))
               (i 0))
           (while (< i i-max)
@@ -706,8 +708,8 @@
               (puthash i f-set f-sets)
               (setq i (+ i 1))))
           (if disallow-e-first
-              (setq parser--f-free-sets f-sets))
-          (setq parser--f-sets f-sets)))
+              (setq parser--f-free-sets f-sets)
+            (setq parser--f-sets f-sets))))
 
       (parser--debug
        (message "Generated F-sets"))
diff --git a/test/parser-test.el b/test/parser-test.el
index 681709c..1ebe13b 100644
--- a/test/parser-test.el
+++ b/test/parser-test.el
@@ -321,6 +321,15 @@
     (parser--e-free-first '(S b a))))
   (message "Passed empty-free-first 1 with complex grammar")
 
+  (parser--set-grammar '((Sp S) (a b) ((Sp S) (S (S a S b)) (S e)) Sp))
+  (parser--set-look-ahead-number 1)
+  (parser--process-grammar)
+  (should
+   (equal
+    nil
+    (parser--e-free-first '(S b a))))
+  (message "Passed empty-free-first 1 with complex grammar 2")
+
   (message "Passed tests for (parser--empty-free-first)"))
 
 (defun parser-test--valid-grammar-p ()



reply via email to

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