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

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

[elpa] externals/parser-generator 434906501a 2/3: Fixed issue that produ


From: Christian Johansson
Subject: [elpa] externals/parser-generator 434906501a 2/3: Fixed issue that production RHS elements could not have the same name as Elisp functions
Date: Fri, 20 Dec 2024 09:29:03 -0500 (EST)

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

    Fixed issue that production RHS elements could not have the same name as 
Elisp functions
---
 parser-generator.el           |  6 ------
 test/parser-generator-test.el | 25 +++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/parser-generator.el b/parser-generator.el
index 8c1d4d783b..1454b83dab 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -523,12 +523,6 @@ Each element is a list: (list key value), optionally 
UN-SORTED."
                  (nth
                   rhs-element-index
                   rhs))
-                (when (functionp rhs-element)
-                  (error
-                   "Unexpected function element %s in RHS %s of LHS %s"
-                   rhs-element
-                   rhs
-                   lhs))
 
                 ;; Potentially each symbol in RHS could be a separate RHS
                 (unless (listp rhs-element)
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index 1c4071c3f8..226bd65e6f 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -626,6 +626,31 @@
    '(%prec))
   (parser-generator-process-grammar)
 
+  (parser-generator-set-grammar '((A B C) (stringp if xor) ((A (stringp 
(lambda() (message "Was there"))) (stringp if xor (lambda() (message "Was 
here"))))) A))
+  (parser-generator-process-grammar)
+  (should
+   (equal
+    t
+    (parser-generator--valid-grammar-p '((A B C) (stringp if xor) ((A (stringp 
(lambda() (message "Was there"))) (stringp if xor (lambda() (message "Was 
here"))))) A))))
+  (should
+   (equal
+    '(A B C)
+    (parser-generator--get-grammar-non-terminals)))
+  (should
+   (equal
+    '(stringp if xor)
+    (parser-generator--get-grammar-terminals)))
+  (message "parser-generator--table-translations: %S" 
parser-generator--table-translations)
+  (should
+   (equal
+    '(lambda nil (message "Was there"))
+    (parser-generator--get-grammar-translation-by-number 0)))
+  (should
+   (equal
+    '(lambda nil (message "Was here"))
+    (parser-generator--get-grammar-translation-by-number 1)))
+  (message "Passed valid grammar 0")
+
   (should
    (equal
     t



reply via email to

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