branch: externals/parser-generator commit aafb3cc15583087a15a4d2acf249de33c6f4d888 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Passing test for grammar containing e-identifier in middle or a rule --- parser-generator.el | 2 +- test/parser-generator-lr-test.el | 28 ++++++++++++---------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/parser-generator.el b/parser-generator.el index 39d7e4b..0cb9488 100644 --- a/parser-generator.el +++ b/parser-generator.el @@ -17,7 +17,7 @@ (defvar parser-generator--debug - t + nil "Whether to print debug messages or not.") (defvar diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el index 3401c84..417e61f 100644 --- a/test/parser-generator-lr-test.el +++ b/test/parser-generator-lr-test.el @@ -685,11 +685,9 @@ (3 (((b) shift))) (4 ((($) reduce 1) ((a) reduce 1)))) (parser-generator-lr--get-expanded-action-tables))) - (message "Passed example with e-identifier in middle of rune") + (message "Passed example with e-identifier in middle of rule") - - - ;; Test with e-identifier inside rule here + ;; Another test with e-identifier inside rule here (setq parser-generator--e-identifier '%empty) @@ -699,7 +697,7 @@ (a b c) ( (Sp S) - (S (a C b)) ;; TODO Make this work with (S (A C B)) as well + (S (A C B)) (A a) (B b) (C %empty) @@ -707,23 +705,21 @@ Sp)) (parser-generator-set-look-ahead-number 1) (parser-generator-process-grammar) - (parser-generator-lr--generate-precedence-tables) + (parser-generator-lr-generate-parser-tables) - ;; TODO Make this work - (let ((table-lr-items - (parser-generator-lr--generate-goto-tables))) - (message "GOTO-tables: %S" (parser-generator-lr--get-expanded-goto-tables)) - (message "table-lr-items: %S" (parser-generator--hash-to-list table-lr-items)) - (parser-generator-lr--generate-action-tables - table-lr-items)) (should (equal - '((0 (((a) shift))) (1 ((($) accept))) (2 (((b) reduce 4))) (3 (((b) shift))) (4 ((($) reduce 1)))) + '( + (0 (((a) shift))) + (1 (((b) reduce 4))) + (2 ((($) accept))) + (3 (((b) reduce 2))) + (4 (((b) shift))) + (5 ((($) reduce 1))) + (6 ((($) reduce 3)))) (parser-generator-lr--get-expanded-action-tables))) (message "Passed grammar with e-identifier in middle of rule") - (error "was here") - (message "Passed tests for (parser-generator-lr--generate-action-tables)")) (defun parser-generator-lr-test--generate-goto-tables ()