branch: externals/parser-generator commit 552c0c5ef2151b4f19fbca677d6945bf27477ce1 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Using better hash-key for goto-tables generation
---
parser-generator-lr.el | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 6e0eaed..e02a1bb 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -53,7 +53,9 @@
(found-action nil)
(action-table))
(let ((lr-items
- (gethash goto-index table-lr-items)))
+ (gethash
+ goto-index
+ table-lr-items)))
(let ((lr-items-length (length lr-items)))
;; Where u is in (T U e)*k
@@ -109,13 +111,15 @@
eff-item)
(let
((hash-key
- (format "%s-%s-%s" goto-index
state eff-item)))
+ (format "%s-%s-%S" goto-index
state eff-item)))
(parser-generator--debug
(message
"Valid look-ahead: %s"
eff-item
))
- (if (gethash hash-key
added-actions)
+ (if (gethash
+ hash-key
+ added-actions)
(parser-generator--debug
(message
"Duplicate action: %s"
@@ -197,9 +201,14 @@
(when (parser-generator--valid-look-ahead-p u)
(let ((hash-key
- (format "%s-%s-%s" goto-index state u)))
- (unless (gethash hash-key added-actions)
- (puthash hash-key t added-actions)
+ (format "%s-%s-%S" goto-index state u)))
+ (unless (gethash
+ hash-key
+ added-actions)
+ (puthash
+ hash-key
+ t
+ added-actions)
(let ((production (list A B)))
(let
((production-number
@@ -385,7 +394,7 @@
(when prefix-lr-items
(let ((prefix-lr-items-hash-key
(format
- "%s"
+ "%S"
prefix-lr-items)))
(parser-generator--debug
