branch: externals/parser-generator
commit d0c966384c1f106720b6d5c718ab9a829ffa4b21
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Passing test for distinct LR-items for grammar
---
parser.el | 2 +-
test/parser-test.el | 28 ++++++++++++++--------------
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/parser.el b/parser.el
index 181afd4..eaf54e4 100644
--- a/parser.el
+++ b/parser.el
@@ -697,7 +697,7 @@
;; then add a' to S as an unmarked set of items
(push prefix-lr-item unmarked-lr-items))))))))
- lr-items))
+ (sort lr-items 'parser--sort-list)))
;; Algorithm 5.8, p. 386
(defun parser--lr-items-for-prefix (γ)
diff --git a/test/parser-test.el b/test/parser-test.el
index 08d8156..6821ed5 100644
--- a/test/parser-test.el
+++ b/test/parser-test.el
@@ -233,27 +233,27 @@
(should
(equal
- '((Sp (S) nil (e))
- (Sp nil (S) (e))
- (S nil nil (e))
- (S nil nil (a))
- (S (S a S b) nil (e))
- (S (S a S) (b) (e))
+ '((S (S a) (S b) (a))
+ (S (S a) (S b) (b))
(S (S a) (S b) (e))
+ (S (S) (a S b) (a))
+ (S (S) (a S b) (b))
(S (S) (a S b) (e))
- (S nil (S a S b) (e))
- (S (S a S b) nil (a))
(S (S a S) (b) (a))
- (S (S a) (S b) (a))
- (S (S a S b) nil (b))
(S (S a S) (b) (b))
- (S (S a) (S b) (b))
- (S (S) (a S b) (b))
+ (S (S a S) (b) (e))
+ (S (S a S b) nil (a))
+ (S (S a S b) nil (b))
+ (S (S a S b) nil (e))
+ (S nil (S a S b) (a))
(S nil (S a S b) (b))
+ (S nil (S a S b) (e))
+ (S nil nil (a))
(S nil nil (a))
(S nil nil (b))
- (S (S) (a S b) (a))
- (S nil (S a S b) (a)))
+ (S nil nil (e))
+ (Sp (S) nil (e))
+ (Sp nil (S) (e)))
(parser--lr-items-for-grammar)))
(message "Passed LR-items for example 5.30")