[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 552c0c5 304/434: Using better hash-key
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 552c0c5 304/434: Using better hash-key for goto-tables generation |
Date: |
Mon, 29 Nov 2021 16:00:03 -0500 (EST) |
branch: externals/parser-generator
commit 552c0c5ef2151b4f19fbca677d6945bf27477ce1
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@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
- [elpa] externals/parser-generator 36701c0 238/434: Optimized closure algorithm to only use possible next-symbols instead of iterating all symbols, (continued)
- [elpa] externals/parser-generator 36701c0 238/434: Optimized closure algorithm to only use possible next-symbols instead of iterating all symbols, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3e096f7 258/434: Improved translation handling for each production, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 96cd5de 259/434: Improved validation of grammar structure, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bbdbd18 269/434: Started on test for LR Parse k=0, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 56363c1 263/434: Fixed last TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 175a579 275/434: Passed test for generation action-table LR(0) grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ecbbf21 290/434: Added test for exported translator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator cecf8fd 287/434: More TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 688e685 291/434: Lex-analyzer index is now buffer-local variable, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0702765 293/434: Added incremental unit test for exported parser/translator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 552c0c5 304/434: Using better hash-key for goto-tables generation,
ELPA Syncer <=
- [elpa] externals/parser-generator d0d3201 299/434: FIRST calculation now handles cyclic productions, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5145cda 306/434: Improved hash-key integrity for LRk Parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 2227cae 313/434: Moved validation of valid lr-item set to generation of goto-tables, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a86c658 305/434: Improved output, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator dcbbdee 315/434: Started on support for symbol attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0c1b8b6 316/434: Passing tests for symbol attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c886537 311/434: Using references for distinct goto-tables to optimize memory usage, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 06bff4b 321/434: Improved validation of conflict-resolution using attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ea898ce 317/434: Fixed code-styling, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ae51103 323/434: Passing test for resolving conflict using precedence attributes, ELPA Syncer, 2021/11/29