branch: externals/parser-generator
commit bbcb22f06590e41118c50409c698d35bbe8eb5ce
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Optimized memory usage for f-sets
---
parser-generator.el | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index bb77a76..b3da68e 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -30,18 +30,10 @@
nil
"Generated F-sets for grammar.")
-(defvar parser-generator--f-sets-max-index
- nil
- "Max index for generated F-sets for grammar.")
-
(defvar parser-generator--f-free-sets
nil
"Generated e-free F-sets for grammar.")
-(defvar parser-generator--f-free-sets-max-index
- nil
- "Max index for generated e-free F-sets for grammar.")
-
(defvar parser-generator--look-ahead-number
nil
"Current look-ahead number used.")
@@ -676,13 +668,10 @@
(puthash i f-set f-sets)
(setq i (+ i 1))))
(if disallow-e-first
- (progn
- (setq parser-generator--f-free-sets f-sets)
- (setq parser-generator--f-free-sets-max-index (1- i)))
- (setq parser-generator--f-sets f-sets)
- (setq parser-generator--f-sets-max-index (1- i))))))
- (parser-generator--debug
- (message "Generated F-sets")))))
+ (setq parser-generator--f-free-sets (gethash (1- i) f-sets))
+ (setq parser-generator--f-sets (gethash (1- i) f-sets)))))))
+ (parser-generator--debug
+ (message "Generated F-sets"))))
;; p. 357
(defun parser-generator--f-set (input-tape state stack)
@@ -921,8 +910,8 @@
(if (and
disallow-e-first
(= first-length 0))
- (setq symbol-f-set (gethash symbol (gethash
parser-generator--f-free-sets-max-index parser-generator--f-free-sets)))
- (setq symbol-f-set (gethash symbol (gethash
parser-generator--f-sets-max-index parser-generator--f-sets))))
+ (setq symbol-f-set (gethash symbol
parser-generator--f-free-sets))
+ (setq symbol-f-set (gethash symbol
parser-generator--f-sets)))
(parser-generator--debug
(message "symbol-f-set: %s" symbol-f-set))
(if (not symbol-f-set)