branch: externals/parser-generator commit f371e2d78eab2b5ff73b01bd7effdb1537281518 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Added failing test for conflict --- parser-generator.el | 4 ++++ test/parser-generator-lr-test.el | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/parser-generator.el b/parser-generator.el index bf39c4b..b397aec 100644 --- a/parser-generator.el +++ b/parser-generator.el @@ -756,6 +756,10 @@ (error "Table for look-aheads is undefined!")) (unless (listp symbol) (setq symbol (list symbol))) + (setq + symbol + (parser-generator--get-symbols-without-attributes + symbol)) (gethash symbol parser-generator--table-look-aheads-p)) diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el index fd38794..9aebd32 100644 --- a/test/parser-generator-lr-test.el +++ b/test/parser-generator-lr-test.el @@ -149,6 +149,8 @@ (let ((table-lr-items (parser-generator-lr--generate-goto-tables))) + + ;; TODO Should be a conflict in state 5 (message "conflict-lr-items: %S" table-lr-items) @@ -158,7 +160,11 @@ (parser-generator-lr--generate-action-tables table-lr-items) (message - "conflicted action-tables: %s" (parser-generator-lr--get-expanded-action-tables))) + "conflict-action-tables: %s" (parser-generator-lr--get-expanded-action-tables)) + (should + (equal + '((0 (((a) shift))) (1 (((c) shift))) (2 ((($) reduce 2))) (3 ((($) accept))) (4 (((b) shift))) (5 ((((c (%prec 1))) shift))) (6 ((($) reduce 1)))) + (parser-generator-lr--get-expanded-action-tables)))) (message "Passed tests for (parser-generator-lr--generate-action-tables)"))