[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 8c467b1bb1 07/82: Added another test f
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator 8c467b1bb1 07/82: Added another test for merge max terminal sets |
Date: |
Thu, 12 May 2022 13:28:13 -0400 (EDT) |
branch: externals/parser-generator
commit 8c467b1bb18cf01fb7a07c2828d4b544475f58de
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added another test for merge max terminal sets
---
parser-generator.el | 38 ++++++++++++++++----------------------
test/parser-generator-test.el | 11 ++++++++++-
2 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index c8cb20166a..c55cdeaceb 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1317,28 +1317,22 @@
(b-element)
(b-index 0)
(b-length (length b)))
- (let ((continue t))
- (while (and
- (< a-index a-length)
- (< merge-count k)
- continue)
- (setq a-element (nth a-index a))
- (if (parser-generator--valid-e-p a-element)
- (setq continue nil)
- (push a-element merged)
- (setq a-index (1+ a-index))
- (setq merge-count (1+ merge-count)))))
- (let ((continue t))
- (while (and
- (< b-index b-length)
- (< merge-count k)
- continue)
- (setq b-element (nth b-index b))
- (if (parser-generator--valid-e-p b-element)
- (setq continue nil)
- (push b-element merged)
- (setq b-index (1+ b-index))
- (setq merge-count (1+ merge-count)))))
+ (while (and
+ (< a-index a-length)
+ (< merge-count k))
+ (setq a-element (nth a-index a))
+ (unless (parser-generator--valid-e-p a-element)
+ (push a-element merged)
+ (setq merge-count (1+ merge-count)))
+ (setq a-index (1+ a-index)))
+ (while (and
+ (< b-index b-length)
+ (< merge-count k))
+ (setq b-element (nth b-index b))
+ (unless (parser-generator--valid-e-p b-element)
+ (push b-element merged)
+ (setq merge-count (1+ merge-count)))
+ (setq b-index (1+ b-index)))
(nreverse merged)))
;; p. 357
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index f30622327c..931053399e 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -981,7 +981,16 @@
'((a b b) (e))
'((b) (b a b)))))
- ;; TODO Example 5.14 p. 350 here
+ ;; Example 5.14 p. 350
+ (parser-generator-set-e-identifier 'e)
+ (parser-generator-set-look-ahead-number 2)
+ (should
+ (equal
+ '((a a) (a b) (b b))
+ (parser-generator--merge-max-terminal-sets
+ '((a b) (a e a) (b b) (b e b))
+ nil)))
+
(message "Passed tests for (parser-generator--merge-max-terminal-sets)"))
- [elpa] externals/parser-generator updated (bf7229332f -> db91a5f203), Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 8c467b1bb1 07/82: Added another test for merge max terminal sets,
Christian Johansson <=
- [elpa] externals/parser-generator 1199586dad 11/82: More work on generating LL item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 89105668e8 01/82: Started on LL(k) implementation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 878b2900f2 05/82: Improved calculation of merged max terminals when one of the set is undefined, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator d397a1d48e 12/82: Improved variable naming, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator b09b22c0be 13/82: Passing test for LL(k) table Example 5.15, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 7c10be74b8 06/82: Added TODO items, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 1d1e4e4bf8 03/82: More work on LL(k) parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 4cb0a0b941 08/82: More work on LL table generation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 29bad0440f 09/82: More work on LL table generation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 87435188dd 15/82: Added function to set EOF-identifier, Christian Johansson, 2022/05/12