[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator ff261d9a4e 75/82: Using stack for symb
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator ff261d9a4e 75/82: Using stack for symbols value in SDT |
Date: |
Thu, 12 May 2022 13:28:20 -0400 (EDT) |
branch: externals/parser-generator
commit ff261d9a4e9f2ee68eb6554d72923d7da9778e9a
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Using stack for symbols value in SDT
---
parser-generator-ll.el | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/parser-generator-ll.el b/parser-generator-ll.el
index 72cf781191..2696982d35 100644
--- a/parser-generator-ll.el
+++ b/parser-generator-ll.el
@@ -345,14 +345,20 @@
((parser-generator--valid-non-terminal-p
rhs-item)
- (let ((non-terminal-value
- (gethash rhs-item symbol-table)))
+ (let* ((non-terminal-value-list
+ (gethash rhs-item symbol-table))
+ (non-terminal-value
+ (pop non-terminal-value-list)))
(push
(car non-terminal-value)
args-1)
(push
(car (cdr non-terminal-value))
- args-2)))
+ args-2)
+ (puthash
+ rhs-item
+ non-terminal-value-list
+ symbol-table)))
((parser-generator--valid-terminal-p
rhs-item)
@@ -389,17 +395,22 @@
(parser-generator--get-grammar-translation-by-number
production-number)
args-1
- args-2)))
+ args-2))
+ (old-symbol-value
+ (gethash production-lhs symbol-table)))
(parser-generator--debug
(message
"\ntranslation-symbol-table: %S = %S (processed)\n"
production-lhs
partial-translation))
- (puthash
- production-lhs
+ (push
(list
partial-translation
args-2)
+ old-symbol-value)
+ (puthash
+ production-lhs
+ old-symbol-value
symbol-table)
(setq
translation
@@ -409,15 +420,20 @@
(let ((partial-translation
(list
args-1
- args-2)))
+ args-2))
+ (old-symbol-value
+ (gethash production-lhs symbol-table)))
(parser-generator--debug
(message
"\ntranslation-symbol-table: %S = %S (generic)\n"
production-lhs
partial-translation))
+ (push
+ partial-translation
+ old-symbol-value)
(puthash
production-lhs
- partial-translation
+ old-symbol-value
symbol-table)
(setq
translation
- [elpa] externals/parser-generator 34ab0f1718 21/82: More various tweaks, (continued)
- [elpa] externals/parser-generator 34ab0f1718 21/82: More various tweaks, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 064bd259ff 26/82: Passing LLk validation tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator f0de6698b9 29/82: Added todo item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 97919972a7 35/82: Improved debug message, added TODO item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator e55a3f8a37 38/82: Updated TODO items, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 7ee5504003 45/82: More work on LLk parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator b41b2dbffe 68/82: Removed debug output, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 566228f16c 71/82: More work on LLk translation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 234a6ca2db 70/82: More work on LLk SDT, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ff261d9a4e 75/82: Using stack for symbols value in SDT,
Christian Johansson <=
- [elpa] externals/parser-generator de7c45c511 78/82: Started with LL-export functions, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5be162966b 80/82: Fixed byte-compilation issue in exported LL parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 2869417d78 31/82: Made new helper functions to make LL-parsing easier, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 23805731c1 34/82: More work on LL-parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 8cc2a5b315 44/82: More work on LLk parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5aeee49bd0 48/82: Added another todo note, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 4c93e895b3 49/82: Added TODO item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ec0711fa84 53/82: Tweaks on internal functions of LLk parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ed9933eeba 57/82: Passing a lot of LLk tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 87ded78c28 63/82: LL(1) parser passes test for generating tables and parsing, Christian Johansson, 2022/05/12