branch: externals/parser-generator
commit 0b727924ff1bb21ff1d6bff1c5ddaacd2b65c1a0
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Added failing unit tests for FIRST
---
parser-generator.el | 2 +-
test/parser-generator-test.el | 23 +++++++++++++++++++++--
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index 020d604..138bd59 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -632,7 +632,7 @@
(parser-generator--debug
(message "Generated F-sets")))))
-;; p. 358
+;; p. 357
(defun parser-generator--f-set (input-tape state stack)
"A deterministic push-down transducer (DPDT) for building F-sets from
INPUT-TAPE, STATE and STACK."
(unless (listp input-tape)
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index ec13ce4..943606d 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -296,14 +296,33 @@
(parser-generator--first 'S)))
(message "Passed first 3 with complex grammar")
+ (parser-generator-set-grammar '((Sp S) (a b) ((Sp S) (S (S a S b) e)) Sp))
+ (parser-generator-set-look-ahead-number 1)
+ (parser-generator-process-grammar)
+ (should
+ (equal
+ '((a) (e))
+ (parser-generator--first 'S)))
+ (message "Passed first 4 with complex grammar with starting e-identifier
variant 1")
+
+
+ (parser-generator-set-grammar '((Sp S) (a b) ((Sp S) (S (S a S b) e)) Sp))
+ (parser-generator-set-look-ahead-number 2)
+ (parser-generator-process-grammar)
+ (should
+ (equal
+ '((a) (a a) (a b) (e))
+ (parser-generator--first 'S)))
+ (message "Passed first 5 with complex grammar with starting e-identifier
variant 1")
+
(parser-generator-set-grammar '((Sp S) (a b) ((Sp S) (S (S a S b)) (S e))
Sp))
(parser-generator-set-look-ahead-number 2)
(parser-generator-process-grammar)
(should
(equal
- '((a a) (a e) (e))
+ '((a) (a a) (a b) (e))
(parser-generator--first 'S)))
- (message "Passed first 4 with complex grammar with starting e-identifier")
+ (message "Passed first 6 with complex grammar with starting e-identifier
variant 2")
(message "Passed tests for (parser-generator--first)"))