[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator d1f4682 248/434: Added a function that
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator d1f4682 248/434: Added a function that converts a FIRST-item to a look-ahead item |
Date: |
Mon, 29 Nov 2021 15:59:51 -0500 (EST) |
branch: externals/parser-generator
commit d1f46827a56fa1307fd4b2c435efef0b6262b628
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added a function that converts a FIRST-item to a look-ahead item
---
parser-generator-lr.el | 13 ++++++++++---
parser-generator.el | 14 ++++++++++++++
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 1def311..7cc030e 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -95,15 +95,22 @@
(while (and
searching-match
(< eff-index eff-length))
- (setq eff-item (nth eff-index eff))
- (if
(parser-generator--valid-look-ahead-p eff-item)
+ (setq
+ eff-item
+ (parser-generator--first-to-lookahead
+ (nth eff-index eff)))
+ (if
+ (parser-generator--valid-look-ahead-p
+ eff-item)
(let ((hash-key
(format "%s-%s-%s" goto-index
state eff-item)))
(unless (gethash hash-key
added-actions)
(puthash hash-key t
added-actions)
(setq searching-match nil)))
(parser-generator--debug
- (message "Not valid look-ahead: %s"
eff-item)))
+ (message
+ "Not valid look-ahead: %s"
+ eff-item)))
(setq eff-index (1+ eff-index)))
(unless searching-match
diff --git a/parser-generator.el b/parser-generator.el
index 296cc0a..9ab4716 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -827,6 +827,20 @@
(parser-generator--debug
(message "Generated F-sets"))))
+(defun parser-generator--first-to-lookahead (first)
+ "Replace all e-identifiers with eof-identifiers in FIRST."
+ (let ((look-ahead))
+ (dolist (symbol first)
+ (if (parser-generator--valid-e-p
+ symbol)
+ (push
+ parser-generator--eof-identifier
+ look-ahead)
+ (push
+ symbol
+ look-ahead)))
+ (nreverse look-ahead)))
+
(defun parser-generator--merge-max-terminals (a b k)
"Merge terminals from A and B to a maximum length of K."
(let ((merged)
- [elpa] externals/parser-generator dfbd97f 184/434: More tweaking of f-set generation, (continued)
- [elpa] externals/parser-generator dfbd97f 184/434: More tweaking of f-set generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 13d76ae 207/434: Passed tests for generating list permutations of length k, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 06f8d37 211/434: More work on debugging LRk parser with k > 1, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 069bf34 209/434: Added test for new helper function list of symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c8c130e 226/434: Improved error messages, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 80f99cf 241/434: Added failing unit test for lr-items set k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5032a77 233/434: Fixed typo in Lex Analyzer error, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 07320b9 249/434: Updated test-case k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d49f74f 244/434: Added failing test for action-tables LRk parser k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fe05328 250/434: Passed unit tests for LRk parser k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d1f4682 248/434: Added a function that converts a FIRST-item to a look-ahead item,
ELPA Syncer <=
- [elpa] externals/parser-generator 6845262 243/434: Passed GOTO-tables k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3a0d4cd 255/434: Added translation test for LRk=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 03ca2e9 247/434: Look-ahead generation now supports EOF symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3563720 266/434: Updated docs about lexical analysis, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 412fd2a 273/434: Passing generation of GOTO-table for LR(0) grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bc23604 274/434: Fixed look-ahead, first and e-free-first with k = 0, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1879cb0 271/434: Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 16bb2d8 262/434: Added translation example LRk parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d173c1e 281/434: More work on exporting parser as code function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bd887ff 277/434: LR(0) Parser passing translation test, ELPA Syncer, 2021/11/29