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

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

[elpa] externals/parser-generator 4aeed22 191/434: Passed tests for e-fr


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 4aeed22 191/434: Passed tests for e-free first function
Date: Mon, 29 Nov 2021 15:59:38 -0500 (EST)

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

    Passed tests for e-free first function
---
 parser-generator.el           |  8 ++++++++
 test/parser-generator-test.el | 13 +++++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/parser-generator.el b/parser-generator.el
index 1873343..295995e 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1076,6 +1076,14 @@
                           (setq first (append first (car symbol-f-set))))))))
                   (setq input-tape-index (1+ input-tape-index)))
                 (when (> first-length 0)
+
+                  ;; If length exceeds k, strip trailing symbols
+                  (when (> (length first) k)
+                    (setq first (reverse first))
+                    (while (> (length first) k)
+                      (pop first))
+                    (setq first (reverse first)))
+
                   ;; When length of terminals list is below K
                   ;; fill up with e-identifiers
                   (when (and
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index cf24b73..c67a583 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -327,7 +327,6 @@
   (parser-generator-set-grammar '((S A B C) (a b c) ((S (A B)) (A (B a) e) (B 
(C b) C) (C c e)) S))
   (parser-generator-set-look-ahead-number 2)
   (parser-generator-process-grammar)
-
   (should
    (equal
     '((c a) (c b))
@@ -358,15 +357,25 @@
    (equal
     '((a b))
     (parser-generator--e-free-first '(a b))))
+  (message "Passed empty-free-first 2 with terminals")
   (should
    (equal
     '((a e))
     (parser-generator--e-free-first '(a e))))
+  (message "Passed empty-free-first 2 with trailing e-identifier 1")
+  (should
+   (equal
+    nil
+    (parser-generator--e-free-first 'S)))
+  (should
+   (equal
+    nil
+    (parser-generator--e-free-first '(e a))))
   (should
    (equal
     '((a a) (a e))
     (parser-generator--e-free-first '(a S))))
-  (message "Passed empty-free-first 2 with trailing e-identifier")
+  (message "Passed empty-free-first 2 with trailing e-identifier 2")
 
   (message "Passed tests for (parser-generator--empty-free-first)"))
 



reply via email to

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