emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item


From: Christian Johansson
Subject: [elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item
Date: Thu, 12 May 2022 13:28:17 -0400 (EDT)

branch: externals/parser-generator
commit fd2f90dd81317ac40a8483c86904cd2cde1e2b94
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>

    Added TODO-item
---
 test/parser-generator-ll-test.el | 111 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 111 insertions(+)

diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el
index 0ad363b268..f8b92b2562 100644
--- a/test/parser-generator-ll-test.el
+++ b/test/parser-generator-ll-test.el
@@ -374,7 +374,117 @@
      )
    )
   (parser-generator-process-grammar)
+  (let ((tables (parser-generator-ll--generate-tables)))
+    (message "tables: %S" tables)
+    '(
+      (
+       ((E2) (")"))
+       (
+        ((")") (e) nil)
+        (("+") ("+" T E2) ((")") ("+")))
+        )
+       )
+      (
+       ((E) (")"))
+       (
+        (("(") (T E2) ((")") ("+")))
+        (("a") (T E2) ((")") ("+")))
+        )
+       )
+      (
+       ((F) ("*"))
+       (
+        (("(") ("(" E ")") ((")")))
+        (("a") ("a") nil)
+        )
+       )
+      (
+       ((T2) ("+"))
+       (
+        (("*") ("*" F T2) (("+") ("*")))
+        (("+") (e) nil)
+        )
+       )
+      (
+       ((T) ("+"))
+       (
+        (("(") (F T2) (("+") ("*")))
+        (("a") (F T2) (("+") ("*")))
+        )
+       )
+      (
+       ((E2) ($))
+       (
+        (($) (e) nil)
+        (("+") ("+" T E2) (($) ("+")))
+        )
+       )
+      (
+       ((E) ($))
+       (
+        (("(") (T E2) (($) ("+")))
+        (("a") (T E2) (($) ("+")))
+        )
+       )
+      ))
+
   (parser-generator-ll-generate-parser-tables)
+  (message
+   "parser-generator-ll--parsing-table: %S"
+   (parser-generator--hash-to-list
+    parser-generator-ll--parsing-table
+    t))
+  ;; Local-follow-should exceed k
+  '(
+    ("((E) ($))"
+     (
+      ("(\"a\")" (reduce (((T) ($)) ((E2) ("+"))) 0))
+      ("(\"(\")" (reduce (((T) ($)) ((E2) ("+"))) 0))
+      )
+     )
+    ("((E2) ($))"
+     (
+      ("(\"+\")" (reduce ("+" ((T) ($)) ((E2) ("+"))) 1))
+      ("($)" (reduce (e) 2))
+      )
+     )
+    ("((T) (\"+\"))"
+     (
+      ("(\"a\")" (reduce (((F) ("+")) ((T2) ("*"))) 3))
+      ("(\"(\")" (reduce (((F) ("+")) ((T2) ("*"))) 3))
+      )
+     )
+    ("((T2) (\"+\"))"
+     (
+      ("(\"+\")" (reduce (e) 5))
+      ("(\"*\")" (reduce ("*" ((F) ("+")) ((T2) ("*"))) 4))
+      )
+     )
+    ("((F) (\"*\"))"
+     (
+      ("(\"a\")" (reduce ("a") 7))
+      ("(\"(\")" (reduce ("(" ((E) (")")) ")") 6))
+      )
+     )
+    ("((E) (\")\"))"
+     (
+      ("(\"a\")" (reduce (((T) (")")) ((E2) ("+"))) 0))
+      ("(\"(\")" (reduce (((T) (")")) ((E2) ("+"))) 0))
+      )
+     )
+    ("((E2) (\")\"))"
+     (
+      ("(\"+\")" (reduce ("+" ((T) (")")) ((E2) ("+"))) 1))
+      ("(\")\")" (reduce (e) 2))
+      )
+     )
+    ("\"a\""(("(\"a\")" pop)))
+    ("\"+\"" (("(\"+\")" pop)))
+    ("\"*\"" (("(\"*\")" pop)))
+    ("\")\"" (("(\")\")" pop)))
+    ("\"(\"" (("(\"(\")" pop)))
+    ("$" (("($)" accept)))
+    )
   ;; (message "parser-generator-ll--parsing-table: %S" 
parser-generator-ll--parsing-table)
   (setq
    parser-generator-lex-analyzer--function
@@ -399,6 +509,7 @@
     '(0 3 6 0 3 7 5 2 5) ;; Example is 1-indexed '(1 4 7 1 4 8 5 8 6 3 6 3)
     (parser-generator-ll-parse)))
   (message "Passed example 5.12 p. 346-347")
+  ;; TODO Make this pass
 
   (parser-generator-set-eof-identifier '$)
   (parser-generator-set-e-identifier 'e)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]