[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 3807a72 237/434: Added failing unit te
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 3807a72 237/434: Added failing unit test for LR-items k=2 |
Date: |
Mon, 29 Nov 2021 15:59:48 -0500 (EST) |
branch: externals/parser-generator
commit 3807a72274a7573b2e63b5f97e4cd6089feff5fd
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added failing unit test for LR-items k=2
---
parser-generator-lr.el | 7 +++++--
test/parser-generator-lr-test.el | 16 +++++++++++++---
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 275cc55..a050204 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -544,7 +544,10 @@
(defun parser-generator-lr--items-for-goto (previous-lr-item x)
"Calculate LR-items for GOTO(PREVIOUS-LR-ITEM, X)."
(let ((lr-new-item)
- (lr-item-exists (make-hash-table :test 'equal)))
+ (lr-item-exists (make-hash-table :test 'equal))
+ (eof-list (parser-generator--generate-list-of-symbol
+ parser-generator--look-ahead-number
+ parser-generator--eof-identifier)))
(parser-generator--debug (message "x: %s" x))
(dolist (lr-item previous-lr-item)
@@ -615,7 +618,7 @@
(parser-generator--first
lr-item-suffix-rest)))
(unless lr-item-suffix-rest-first
- (setq lr-item-suffix-rest-first (list nil)))
+ (setq lr-item-suffix-rest-first (list eof-list)))
;; TODO Verify this
(parser-generator--debug
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index e257b4d..524300d 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -418,9 +418,19 @@
(parser-generator--debug
(message
"LR-items: %s"
- (parser-generator--hash-values-to-list
- lr-items
- t)))
+ (parser-generator--hash-to-list
+ lr-items)))
+
+ (should
+ (equal
+ '(
+ (0 (((R) nil (a b T) ($ $))((R) nil (a b T) (a b))((S) nil (R) ($
$))((S) nil (R S) ($ $))((Sp) nil (S) ($ $))))
+ (1 (((R) (a) (b T) ($ $)) ((R) (a) (b T) (a b))))
+ (2 (((R) (a b) (T) ($ $)) ((R) (a b) (T) (a b)) ((T) nil (a T) ($ $))
((T) nil (a T) (a b)) ((T) nil (c) ($ $)) ((T) nil (c) (a b)) ((T) nil nil ($
$)) ((T) nil nil (a b)))))
+ (parser-generator--hash-to-list
+ lr-items)))
+ (message "Passed LR-items k = 2")
+
(parser-generator--debug
(message "GOTO-tables: %s"
(parser-generator--hash-to-list
- [elpa] externals/parser-generator 446cbe9 217/434: Refactored unit tests and separated k=2 case, (continued)
- [elpa] externals/parser-generator 446cbe9 217/434: Refactored unit tests and separated k=2 case, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1818b9d 199/434: Added error in action-tables generation if no accept action is found, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 54857e4 220/434: Added failing unit test for translation via LRk, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a96ab3a 222/434: More debugging LR k > 1, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 783ea61 227/434: Added translation-symbol-table to incremental parser and translater, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 439d894 228/434: Passed all LR k=1 tests with more work on generalized solution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 47fb35e 229/434: More work on a more generalized LR Parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9b6e076 231/434: Using lowercase epsilon for e-identifier comment, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 01173e2 230/434: Added EOF identifier, passing all unit tests, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a76bb98 240/434: Added comments, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3807a72 237/434: Added failing unit test for LR-items k=2,
ELPA Syncer <=
- [elpa] externals/parser-generator 40473d3 252/434: Fixed bug with data in full look-ahead in parse function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e1315c3 246/434: Updated so E-FREE-FIRST(x) only uses E-FREE-FIRST on first symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 53ae129 245/434: Commented out useless code, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 24e96cb 261/434: Improved description of LRk, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 40907b7 257/434: white-space fixes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 37d9fcb 260/434: Improved documentation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 08b696f 267/434: Fixed typo in doc about token, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b80fc6e 264/434: Updated README, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1b9d8db 268/434: Improved wording about lexical analysis, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3615fad 276/434: Fixed issue with lex-analyzer in LR(0) Parser, ELPA Syncer, 2021/11/29