[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 4aeed22 191/434: Passed tests for e-fr
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 4aeed22 191/434: Passed tests for e-free first function |
Date: |
Mon, 29 Nov 2021 15:59:38 -0500 (EST) |
branch: externals/parser-generator
commit 4aeed225d41d62b71a9cf0070c6780613fec3025
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Passed tests for e-free first function
---
parser-generator.el | 8 ++++++++
test/parser-generator-test.el | 13 +++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index 1873343..295995e 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1076,6 +1076,14 @@
(setq first (append first (car symbol-f-set))))))))
(setq input-tape-index (1+ input-tape-index)))
(when (> first-length 0)
+
+ ;; If length exceeds k, strip trailing symbols
+ (when (> (length first) k)
+ (setq first (reverse first))
+ (while (> (length first) k)
+ (pop first))
+ (setq first (reverse first)))
+
;; When length of terminals list is below K
;; fill up with e-identifiers
(when (and
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index cf24b73..c67a583 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -327,7 +327,6 @@
(parser-generator-set-grammar '((S A B C) (a b c) ((S (A B)) (A (B a) e) (B
(C b) C) (C c e)) S))
(parser-generator-set-look-ahead-number 2)
(parser-generator-process-grammar)
-
(should
(equal
'((c a) (c b))
@@ -358,15 +357,25 @@
(equal
'((a b))
(parser-generator--e-free-first '(a b))))
+ (message "Passed empty-free-first 2 with terminals")
(should
(equal
'((a e))
(parser-generator--e-free-first '(a e))))
+ (message "Passed empty-free-first 2 with trailing e-identifier 1")
+ (should
+ (equal
+ nil
+ (parser-generator--e-free-first 'S)))
+ (should
+ (equal
+ nil
+ (parser-generator--e-free-first '(e a))))
(should
(equal
'((a a) (a e))
(parser-generator--e-free-first '(a S))))
- (message "Passed empty-free-first 2 with trailing e-identifier")
+ (message "Passed empty-free-first 2 with trailing e-identifier 2")
(message "Passed tests for (parser-generator--empty-free-first)"))
- [elpa] externals/parser-generator 58e5806 129/434: Renamed plugin from parser to parser-generator, (continued)
- [elpa] externals/parser-generator 58e5806 129/434: Renamed plugin from parser to parser-generator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0695275 143/434: More updates to docs, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1b17ef8 159/434: Added another unit tests for translations, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 04fdc96 167/434: Added unit-test for incremental translations, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fa6237a 170/434: Added TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 71f03cc 171/434: Updated example, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0b72792 177/434: Added failing unit tests for FIRST, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 181b499 178/434: Fixed bug in FIRST generation where multiple equal LHS:s, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c4455db 179/434: Added TODO-item, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 84ffb4e 181/434: f-set max index is now set depending on if all non-terminals have been expanded or not, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4aeed22 191/434: Passed tests for e-free first function,
ELPA Syncer <=
- [elpa] externals/parser-generator 18d7c63 195/434: Added new function to merge lists of terminals, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 60d9968 202/434: Fixed valid look-ahead with k above 1, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 38223d3 206/434: Passed tests for generating grammar prefixes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 8a6b752 208/434: Starting on adding support for LR k > 1 parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d604092 223/434: Added failing unit test for e-free-first function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 172d530 214/434: Improved handling of production LHS to enable multiple symbols, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fbc8f8b 225/434: Removed dependency of hash-table of terminals for LR parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 870eca2 232/434: Reduced depth of GOTO-table to always use one symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5b45b2b 235/434: Improved comments, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c2d2d0d 239/434: Fixed FIRST calculating when building lr-item sets, ELPA Syncer, 2021/11/29