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

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

[elpa] externals/parser-generator 58548b8e10 21/29: Passing test for LR-


From: Christian Johansson
Subject: [elpa] externals/parser-generator 58548b8e10 21/29: Passing test for LR-parse with k=2 again
Date: Sat, 12 Feb 2022 02:24:45 -0500 (EST)

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

    Passing test for LR-parse with k=2 again
---
 parser-generator.el              | 12 ++++++++++--
 test/parser-generator-lr-test.el | 11 +++++------
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/parser-generator.el b/parser-generator.el
index e709e6142b..f901b45077 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1342,6 +1342,8 @@
                   (setq rhs-type 'E-IDENTIFIER))
                  ((parser-generator--valid-terminal-p rhs-element)
                   (setq rhs-type 'TERMINAL))
+                 ((parser-generator--valid-eof-p rhs-element)
+                  (setq rhs-type 'EOF))
                  (t (error (format "Invalid symbol %s!" rhs-element))))
                 (parser-generator--debug
                  (message
@@ -1476,7 +1478,9 @@
                    leading-symbols-count
                    (1+ leading-symbols-count)))
 
-                 ((equal rhs-type 'TERMINAL)
+                 ((or
+                   (equal rhs-type 'TERMINAL)
+                   (equal rhs-type 'EOF))
                   (setq
                    leading-symbols
                    (append
@@ -1638,9 +1642,13 @@
                     "expanded-lists after adding: %S"
                     expanded-lists)))))
 
-             ;; if input symbol is a terminal or the e-identifier push it to 
each expanded list
+             ;; if input symbol is a terminal
+             ;; or the e-identifier
+             ;; or the eof-identifier
+             ;; push it to each expanded list
              ((or
                (parser-generator--valid-e-p input-symbol)
+               (parser-generator--valid-eof-p input-symbol)
                (parser-generator--valid-terminal-p input-symbol))
               (parser-generator--debug
                (message
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 316b1b1f93..3ec3b50fa2 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -1281,7 +1281,6 @@
 
   (message "Passed tests for (parser-generator-lr--parse)"))
 
-;; TODO Make these pass again
 (defun parser-generator-lr-test-parse-k-2 ()
   "Test `parser-generator-lr-parse' with k = 2."
   (message "Started tests for (parser-generator-lr-parse) k = 2")
@@ -1486,19 +1485,18 @@
      lr-items)
     (parser-generator--debug
      (message
-      "Action-tables k = 2: %s"
+      "Action-tables k = 2: %S"
       (parser-generator-lr--get-expanded-action-tables)))
-
     (should
      (equal
       '(
         (0 (((a b) shift)))
         (1 ((($ $) reduce 2) ((a b) shift)))
         (2 ((($ $) accept)))
-        (3 (((b $) shift) ((b c) shift) ((b a) shift)))
-        (4 ((($ $) reduce 6) ((a b) reduce 6) ((a $) shift) ((a c) shift) ((a 
a) shift) ((c a) shift) ((c $) shift)))
+        (3 (((b c) shift) ((b a) shift) ((b $) shift)))
+        (4 ((($ $) reduce 6) ((a b) reduce 6) ((a c) shift) ((a a) shift) ((a 
$) shift) ((c a) shift) ((c $) shift)))
         (5 ((($ $) reduce 3) ((a b) reduce 3)))
-        (6 ((($ $) reduce 6) ((a b) reduce 6) ((a $) shift) ((a c) shift) ((a 
a) shift) ((c a) shift) ((c $) shift)))
+        (6 ((($ $) reduce 6) ((a b) reduce 6) ((a c) shift) ((a a) shift) ((a 
$) shift) ((c a) shift) ((c $) shift)))
         (7 ((($ $) reduce 5) ((a b) reduce 5)))
         (8 ((($ $) reduce 4) ((a b) reduce 4)))
         (9 ((($ $) reduce 1)))
@@ -1611,6 +1609,7 @@
 
   (message "Passed tests for (parser-generator-lr--parse-k-2)"))
 
+;; TODO Make this pass again
 (defun parser-generator-lr-test-parse-k-0 ()
   "Test `parser-generator-lr-parse' with k = 0."
   (message "Started tests for (parser-generator-lr-parse) k = 0")



reply via email to

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