branch: externals/parser-generator
commit 04eb4d066ccfc9f3d8d5dba553e095d5d1fc3ff7
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Started on test for Example 5.17
---
test/parser-generator-ll-test.el | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el
index 4c96e023a9..3558dbacd1 100644
--- a/test/parser-generator-ll-test.el
+++ b/test/parser-generator-ll-test.el
@@ -151,6 +151,42 @@
)
)
parser-tables)))
+ (message "Passed Example 5.16")
+
+ ;; TODO Test Example 5.17 here
+ (parser-generator-set-eof-identifier '$)
+ (parser-generator-set-e-identifier 'e)
+ (parser-generator-set-look-ahead-number 2)
+ (parser-generator-set-grammar
+ '(
+ (S A)
+ (a b)
+ (
+ (S e (a b A))
+ (A (S a a) b)
+ )
+ S
+ )
+ )
+ (parser-generator-process-grammar)
+ (let* ((tables
+ (parser-generator-ll--generate-tables))
+ (parser-tables
+ (parser-generator-ll--generate-parsing-table
+ tables)))
+ (message "tables: %S" tables)
+ (message "parser-tables: %S" parser-tables)
+ (should
+ (equal
+ '(
+ (
+ ((S) nil)
+ (
+ ((a b) reduce ()
+ )
+ )
+ parser-tables)))))
+ (message "Passed example 5.17")
(message "Passed tests for (parser-generator-ll--generate-parsing-table)"))
@@ -200,6 +236,8 @@
nil))
(message "Passed second valid test")
+ ;; TODO Example 5.19
+
(message "Passed tests for (parser-generator-ll--valid-grammar-p)"))