branch: externals/parser-generator
commit 7e96f9d6c173159a525ba586fefa86f4ff57ed13
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
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")