[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator e1f3fb4042 18/29: More work on FIRST
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator e1f3fb4042 18/29: More work on FIRST |
Date: |
Sat, 12 Feb 2022 02:24:44 -0500 (EST) |
branch: externals/parser-generator
commit e1f3fb404272168b72ad67586d1b2ff633a55126
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
More work on FIRST
---
parser-generator.el | 12 ++++++++++--
test/parser-generator-test.el | 2 +-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index a1ae0b8114..876cd44f5e 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1346,13 +1346,15 @@
(let ((leading-terminals-count
(length leading-terminals))
(leading-symbols-count
- (length leading-symbols)))
+ (length leading-symbols))
+ (keep-iterating t))
(parser-generator--debug
(message
"leading-terminals-count: %s"
leading-terminals-count))
(while (and
+ keep-iterating
(< input-tape-index input-tape-length)
(< leading-terminals-count k))
(let ((rhs-element (nth input-tape-index input-tape))
@@ -1416,6 +1418,9 @@
(list rhs-element))
(setq
expanded-all
+ nil)
+ (setq
+ keep-iterating
nil))
(if sub-terminal-sets
@@ -1531,7 +1536,10 @@
nil)
(setq
unexpanded-non-terminal
- (list rhs-element))))
+ (list rhs-element))
+ (setq
+ keep-iterating
+ nil)))
((equal rhs-type 'E-IDENTIFIER)
(setq
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index 5713e0b557..aded3527c5 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -202,7 +202,7 @@
(parser-generator--generate-f-sets)
(should
(equal
- '(t ((e a)))
+ '(t ((e a) (e)))
(gethash
(list 'S)
parser-generator--f-sets)))
- [elpa] externals/parser-generator 4297a9b43e 04/29: Added another failing test for FIRST(x) were first symbol can be %empty, (continued)
- [elpa] externals/parser-generator 4297a9b43e 04/29: Added another failing test for FIRST(x) were first symbol can be %empty, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 26b8a21276 01/29: Added failing test for LR(k=1) parse with left-recursive grammar, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator add9d0072f 09/29: Added failing test for e-free-first, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator bb396d5ce9 12/29: Made psuedo-code for algorithm of FIRST and E-FREE-FIRST, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 0fa8261ed2 11/29: Passing some tests for FIRST, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 3bf81567ac 05/29: Added TODO notes and a failing test for e-free-first, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 4e4907da84 10/29: More wrestling with FIRST and E-FREE-FIRST, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 6ffa2a0290 15/29: More work on FIRST function, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator efe98cb71a 14/29: More tweaks of FIRST and E-FREE-FIRST, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator a7a321ca93 28/29: Added link to TODO document, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator e1f3fb4042 18/29: More work on FIRST,
Christian Johansson <=
- [elpa] externals/parser-generator 0e1fbf9cef 07/29: More debugging of edge case, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 653b8edece 17/29: Added failing test for generate-f-sets, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 4c34af706f 29/29: Improved documentation, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator a175c1317a 08/29: Started on refactor of e-free-first function to properly handle a edge case, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 94fa7c3732 06/29: Cleaning up of e-free-first test, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator d2227ad65e 13/29: More wrestling with FIRST and E-FREE-FIRST calculation, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator d85a3ae246 16/29: Passing more tests, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator e2e464bb17 26/29: Updated version, date and TODO, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator dced2e199f 22/29: Sorting LR-action tables before outputting them in messages, Christian Johansson, 2022/02/12
- [elpa] externals/parser-generator 69fc89898e 19/29: Passing all tests for FIRST and E-FREE-FIRST with new algorithm, Christian Johansson, 2022/02/12