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