[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 783ea61 227/434: Added translation-sym
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 783ea61 227/434: Added translation-symbol-table to incremental parser and translater |
Date: |
Mon, 29 Nov 2021 15:59:46 -0500 (EST) |
branch: externals/parser-generator
commit 783ea61c25b1ef774e47707c2a940ff24d0e7736
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added translation-symbol-table to incremental parser and translater
---
parser-generator-lr.el | 9 +++++++--
test/parser-generator-lr-test.el | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index fd336ed..d914d3a 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -654,12 +654,15 @@
pushdown-list
output
translation
+ translation-symbol-table
history)
"Perform a LR-parse via lex-analyzer, optionally at INPUT-TAPE-INDEX with
PUSHDOWN-LIST, OUTPUT, TRANSLATION and HISTORY."
(unless input-tape-index
(setq input-tape-index 1))
(unless pushdown-list
(push 0 pushdown-list))
+ (unless translation-symbol-table
+ (setq translation-symbol-table (make-hash-table :test 'equal)))
(if (and
input-tape-index
@@ -677,7 +680,6 @@
(let ((accept)
(pre-index 0)
- (translation-symbol-table (make-hash-table :test 'equal))
(e-list
(parser-generator--generate-list-of-symbol
parser-generator--look-ahead-number
@@ -698,7 +700,8 @@
`(,parser-generator-lex-analyzer--index
,pushdown-list
,output
- ,translation)
+ ,translation
+ ,translation-symbol-table)
history)
(setq
pre-index
@@ -708,6 +711,7 @@
(let ((look-ahead
(parser-generator-lex-analyzer--peek-next-look-ahead))
(look-ahead-full))
+
;; Save token stream indexes in separate variable if needed later
(setq look-ahead-full (nreverse look-ahead))
@@ -972,6 +976,7 @@
(list
output
translation
+ translation-symbol-table
history)))
(provide 'parser-generator-lr)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 56bc835..ae9935f 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -14,7 +14,7 @@
"Verify that regular and incremental parse results in same data."
(let ((regular-parse (parser-generator-lr--parse)))
;; (message "regular-parse: %s" regular-parse)
- (let ((regular-parse-history (nth 2 regular-parse)))
+ (let ((regular-parse-history (nth 3 regular-parse)))
;; (message "regular-parse-history: %s" regular-parse-history)
(let ((history-length (length regular-parse-history))
(history-index 0)
@@ -26,6 +26,7 @@
(pushdown-list (nth 1 history))
(output (nth 2 history))
(translation (nth 3 history))
+ (translation-symbol-table (nth 4 history))
(history-list iterated-history))
;; (message "input-tape-index: %s" input-tape-index)
@@ -40,6 +41,7 @@
pushdown-list
output
translation
+ translation-symbol-table
history-list)))
;; (message "incremental-parse: %s" incremental-parse)
(should
- [elpa] externals/parser-generator 7a175a8 205/434: Passed first unit test for grammar prefixes, (continued)
- [elpa] externals/parser-generator 7a175a8 205/434: Passed first unit test for grammar prefixes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 517ed12 212/434: Passing some more unit tests after refactor, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f4ba363 031/434: Improved README.md, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 744fdf6 174/434: Added TODO item, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d360e8a 176/434: Added failing unit test for FIRST function with starting e-identifier, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c1cdf20 197/434: Fixed issue with lex analyzer reached end of input, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 446cbe9 217/434: Refactored unit tests and separated k=2 case, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1818b9d 199/434: Added error in action-tables generation if no accept action is found, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 54857e4 220/434: Added failing unit test for translation via LRk, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a96ab3a 222/434: More debugging LR k > 1, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 783ea61 227/434: Added translation-symbol-table to incremental parser and translater,
ELPA Syncer <=
- [elpa] externals/parser-generator 439d894 228/434: Passed all LR k=1 tests with more work on generalized solution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 47fb35e 229/434: More work on a more generalized LR Parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9b6e076 231/434: Using lowercase epsilon for e-identifier comment, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 01173e2 230/434: Added EOF identifier, passing all unit tests, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a76bb98 240/434: Added comments, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3807a72 237/434: Added failing unit test for LR-items k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 40473d3 252/434: Fixed bug with data in full look-ahead in parse function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e1315c3 246/434: Updated so E-FREE-FIRST(x) only uses E-FREE-FIRST on first symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 53ae129 245/434: Commented out useless code, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 24e96cb 261/434: Improved description of LRk, ELPA Syncer, 2021/11/29