branch: externals/parser-generator commit d0c966384c1f106720b6d5c718ab9a829ffa4b21 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
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")