[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")
- [elpa] externals/parser-generator d2227ad65e 13/29: More wrestling with FIRST and E-FREE-FIRST calculation, (continued)
- [elpa] externals/parser-generator d2227ad65e 13/29: More wrestling with FIRST and E-FREE-FIRST calculation, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator d85a3ae246 16/29: Passing more tests, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator e2e464bb17 26/29: Updated version, date and TODO, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator dced2e199f 22/29: Sorting LR-action tables before outputting them in messages, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 69fc89898e 19/29: Passing all tests for FIRST and E-FREE-FIRST with new algorithm, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 6726c5231e 24/29: Fixed conflict, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 98dc561880 23/29: FIRST() and E-FREE-FIRST() passing LR-test for k=0, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 432e3732f2 20/29: Fixed some byte-compilation warnings, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator ba2bda38da 25/29: Added use of default conflict resolution flag in action-table generation, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 536198eb0a 27/29: Fixed typo in comment, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 58548b8e10 21/29: Passing test for LR-parse with k=2 again,
Christian Johansson <=