branch: externals/parser-generator commit 62d06a08305a08c50daaff013cb4afc81b7ffd2a Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Passing unit test for V(Sa) --- parser.el | 7 +++---- test/parser-test.el | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/parser.el b/parser.el index fb09c89..9e9004d 100644 --- a/parser.el +++ b/parser.el @@ -726,11 +726,10 @@ (prefix-previous (gethash '(e) lr-items))) (dolist (prefix γ) (let ((lr-new-item)) - (setq prefix-acc (append prefix-acc prefix)) - (unless (listp prefix-acc) - (setq prefix-acc (list prefix-acc))) + (setq prefix-acc (append prefix-acc (list prefix))) (parser--debug + (message "prefix: %s" prefix) (message "prefix-acc: %s" prefix-acc) (message "prefix-previous: %s" prefix-previous)) @@ -782,7 +781,7 @@ (setq prefix-previous lr-new-item) (parser--debug - (message "V(%s) = %s" prefix-acc lr-new-item)) + (message "V%s = %s" prefix-acc lr-new-item)) (puthash prefix-acc lr-new-item lr-items))))) (parser--debug diff --git a/test/parser-test.el b/test/parser-test.el index 87189e1..5972483 100644 --- a/test/parser-test.el +++ b/test/parser-test.el @@ -251,12 +251,12 @@ (should (equal - '((S (S a) (S b) (e)) - (S (S a) (S b) (a)) - (S nil (S a S b) (a)) - (S nil (S a S b) (b)) - (S nil nil (a)) - (S nil nil (b))) + '((S nil (e) (a)) + (S nil (S a S b) (a)) + (S nil (e) (b)) + (S nil (S a S b) (b)) + (S (S a) (S b) (a)) + (S (S a) (S b) (e))) (parser--lr-items '(S a)))) (message "Passed V(Sa)")