[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 0304b78 092/434: Added a unit-test to
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 0304b78 092/434: Added a unit-test to invalidate LR-items |
Date: |
Mon, 29 Nov 2021 15:59:15 -0500 (EST) |
branch: externals/parser-generator
commit 0304b78f14cea9db09345b52ca08dea480b2f850
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added a unit-test to invalidate LR-items
---
parser.el | 11 +++++++----
test/parser-test.el | 8 +++++++-
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/parser.el b/parser.el
index 9644ad2..93dee01 100644
--- a/parser.el
+++ b/parser.el
@@ -774,8 +774,11 @@
(setq goto-table-table (sort goto-table-table 'parser--sort-list))
(push `(,lr-item-set-index ,goto-table-table) goto-table)))
- (setq parser--goto-table (sort goto-table 'parser--sort-list))))
-
+ (setq parser--goto-table (sort goto-table 'parser--sort-list)))
+ (unless
+ (parser--lr-items-valid-p
+ (parser--hash-values-to-list parser--table-lr-items t))
+ (error "Inconsistent grammar!")))
t)
;; Algorithm 5.10, p. 391
@@ -847,9 +850,9 @@
(message "b-suffix-follow-eff: %s" b-suffix-follow-eff))
(dolist (b-suffix-follow-eff-item b-suffix-follow-eff)
- (when (equal a-look-ahead b-suffix-follow-eff-item)
+ (when (equal a-follow b-suffix-follow-eff-item)
(parser--debug
- (message "Inconsistent grammar!"))
+ (message "Inconsistent grammar! %s conflicts with %s" a b))
(setq valid-p nil))))
(setq b-index (1+ b-index))))
(setq a-index (1+ a-index)))
diff --git a/test/parser-test.el b/test/parser-test.el
index 7e662ad..c8fdfed 100644
--- a/test/parser-test.el
+++ b/test/parser-test.el
@@ -479,7 +479,13 @@
t
(parser--lr-items-valid-p (parser--hash-values-to-list
parser--table-lr-items t))))
- ;; TODO Figure out a grammar here that should be inconsistent
+ (message "Passed first")
+
+ (should
+ (equal
+ nil
+ (parser--lr-items-valid-p
+ '(((S nil (S a S b) (a)) (S nil (S a S b) (e)) (S nil nil (a)) (S nil nil
(e)) (Sp nil (S) (e))) ((S (S) (a S b) (a)) (S (S) (a S b) (e)) (Sp (S) nil
(e))) ((S (S a) (S b) (a)) (S (S a) (S b) (e)) (S nil (S a S b) (a)) (S nil (S
a S b) (b)) (S nil nil (a)) (S nil nil (b))) ((S (S) (a S b) (a)) (S (S) (a S
b) (b)) (S (S a S) (b) (a)) (S (S a S) (b) (e))) ((S (S a S b) nil (a)) (S (S a
S b) (a) (a)) (S (S a S b) nil (e))) ((S (S a) (S b) (a)) (S (S a) (S b) (b))
(S nil (S a S b) (a)) [...]
(message "Passed tests for (parser--lr-items-valid-p)"))
- [elpa] externals/parser-generator 6f524ed 108/434: Various stuff, (continued)
- [elpa] externals/parser-generator 6f524ed 108/434: Various stuff, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 79c06fd 113/434: Added error signal if no parser action or LR-item set is found, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator daf93e0 097/434: Added failing unit test for action tables generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 32263b7 074/434: Added cache to function which calculates LR-items for prefix, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 21164b6 064/434: Added documentation for (lr-items), ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ccaf4b5 080/434: More stuff, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bdbedf4 078/434: Suffixes in LR-items that only contain e-identifier are now set as nil, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0e075d7 081/434: Fixed issue with algorithm 5.9, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fe6037b 088/434: Generating valid GOTO-table, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d5284b5 091/434: Added algorithm 5.10, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0304b78 092/434: Added a unit-test to invalidate LR-items,
ELPA Syncer <=
- [elpa] externals/parser-generator 69bfe16 006/434: Removed white-space, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1613e2e 096/434: Byte-compilation and unit tests working after refactor, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 31c7ba7 098/434: Work on function that generates all possible look-aheads, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 53980d4 102/434: More documentation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 882d725 105/434: Added TODO item, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 65d9ce2 106/434: Fixed a bug with E-FREE-FIRST function and function that validates a set of LR-items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 343fd72 104/434: Some parts of the action-table is generated, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b2a0d71 112/434: Passed test for action-table generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1c1177f 116/434: More work on LR-parser algorithm, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9db14cd 118/434: Added TODO items, ELPA Syncer, 2021/11/29