[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