branch: externals/parser-generator commit 7e96f9d6c173159a525ba586fefa86f4ff57ed13 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Passing all unit tests for first function --- parser-generator.el | 7 +++++-- test/parser-generator-test.el | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/parser-generator.el b/parser-generator.el index e1eb1e6..19f254b 100644 --- a/parser-generator.el +++ b/parser-generator.el @@ -625,7 +625,8 @@ ,k ,i ,f-sets - ,disallow-e-first) + ,disallow-e-first + ,production-lhs) '(("" t 0))))) (parser-generator--debug @@ -723,6 +724,7 @@ (i (nth 1 state)) (f-sets (nth 2 state)) (disallow-e-first (nth 3 state)) + (lhs (nth 4 state)) (expanded-all t)) (parser-generator--debug (message "disallow-3-first: %s" disallow-e-first) @@ -799,7 +801,8 @@ ;; as not fully expanded either (when (and sub-terminal-data - (not sub-terminal-expanded)) + (not sub-terminal-expanded) + (not (equal lhs rhs-element))) (parser-generator--debug (message "Expanded-all negative set 1 from %s" rhs-element)) diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el index c67cf95..913b637 100644 --- a/test/parser-generator-test.el +++ b/test/parser-generator-test.el @@ -304,7 +304,7 @@ (parser-generator-process-grammar) (should (equal - '((a e) (a a) (a b) (e)) + '((a a) (a b) (a e) (e e)) (parser-generator--first 'S))) (message "Passed first 6 with complex grammar with starting e-identifier variant 1") @@ -313,7 +313,7 @@ (parser-generator-process-grammar) (should (equal - '((a e) (a a) (a b) (e)) + '((a a) (a b) (a e) (e e)) (parser-generator--first 'S))) (message "Passed first 7 with complex grammar with starting e-identifier variant 2")