branch: externals/parser-generator
commit 04eb4d066ccfc9f3d8d5dba553e095d5d1fc3ff7
Author: Christian Johansson <christ...@cvj.se>
Commit: Christian Johansson <christ...@cvj.se>
    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)"))
 
 

Reply via email to