[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator d49f74f 244/434: Added failing test fo
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator d49f74f 244/434: Added failing test for action-tables LRk parser k=2 |
Date: |
Mon, 29 Nov 2021 15:59:50 -0500 (EST) |
branch: externals/parser-generator
commit d49f74fa0696181bc3762452f2ff2facc1f2c202
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added failing test for action-tables LRk parser k=2
---
test/parser-generator-lr-test.el | 78 ++++++++++++++++++++++------------------
1 file changed, 43 insertions(+), 35 deletions(-)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 310ef17..ee37e3c 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -581,48 +581,56 @@
parser-generator-lr--goto-tables)))
(message "Passed GOTO-tables k = 2")
+ ;; state | aa | ab | ac | a$ | ba | bb | bc | b$ | ca | cb | cc | c$ | $$
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 1 | | S | | | | | | | | | | |
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 2 | | | | | S | | S | S | | | | |
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 3 | S | R | S | S | | | | | S | | | S | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 4 | S | R | S | S | | | | | S | | | S | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 5 | | R | | | | | | | | | | | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 6 | | R | | | | | | | | | | | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 7 | | R | | | | | | | | | | | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 8 | | S | | | | | | | | | | | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 9 | | | | | | | | | | | | | R
+ ;; ------+----+----+----+----+----+----+----+----+----+----+----+----+----
+ ;; 10 | | | | | | | | | | | | | A
+
(parser-generator-lr--generate-action-tables
lr-items)
(parser-generator--debug
(message
"Action-tables k = 2: %s"
- (parser-generator--hash-values-to-list
parser-generator-lr--action-tables t)))
-
- ;; TODO Validate action-table here, should be able to reduce at look-ahead
("a" "b") as well
-
- ;; (should
- ;; (equal
- ;; '((0 ((("a" "a") reduce 2) (("a" e) reduce 2) ((e e) reduce 2)))
- ;; (1 ((("a" "b") shift) ((e e) accept)))
- ;; (2 ((("a" "a") reduce 2) (("a" e) reduce 2) (("b" e) reduce 2)))
- ;; (3 ((("a" "b") shift) (("b" e) shift) (("b" "a") shift)))
- ;; (4 ((("a" "a") reduce 2) (("a" e) reduce 2) (("b" e) reduce 2)))
- ;; (5 ((("a" "a") reduce 1) (("a" e) reduce 1) ((e e) reduce 1)))
- ;; (6 ((("a" "b") shift) (("b" "b") shift) (("b" "a") shift)))
- ;; (7 ((("a" "a") reduce 1) (("a" e) reduce 1) (("b" e) reduce 1))))
- ;; (parser-generator--hash-to-list
- ;; parser-generator-lr--action-tables)))
- ;; (message "Passed ACTION-tables k = 2")
+ (parser-generator--hash-to-list parser-generator-lr--action-tables)))
+
+ (should
+ (equal
+ '(
+ (0 (((a b) shift)))
+ (1 ((($ $) reduce 2) ((a b) shift)))
+ (2 ((($ $) accept)))
+ (3 (((b $) shift) ((b c) shift) ((b a) shift)))
+ (4 ((($ $) reduce 6) ((a b) reduce 6) ((a c) shift) ((a a) shift) ((c
$) shift) ((c a) shift)))
+ (5 ((($ $) reduce 3) ((a b) reduce 3)))
+ (6 ((($ $) reduce 6) ((a b) reduce 6) ((a c) shift) ((a a) shift) ((c
$) shift) ((c a) shift)))
+ (7 ((($ $) reduce 5) ((a b) reduce 5)))
+ (8 ((($ $) reduce 4) ((a b) reduce 4)))
+ (9 ((($ $) reduce 1)))
+ )
+ (parser-generator--hash-to-list
+ parser-generator-lr--action-tables)))
+ (message "Passed ACTION-tables k = 2")
)
- (setq
- parser-generator-lex-analyzer--function
- (lambda (index)
- (let* ((string '(("a" 1 . 2) ("b" 2 . 3)))
- (string-length (length string))
- (max-index index)
- (tokens))
- (while (and
- (< (1- index) string-length)
- (< (1- index) max-index))
- (push (nth (1- index) string) tokens)
- (setq index (1+ index)))
- (nreverse tokens))))
- (should
- (equal
- '(2 2 2 1 1)
- (parser-generator-lr-parse)))
- (message "Passed test with terminals as string with look-ahead-number 2")
+
+ ;; TODO Test parse and translate here
(message "Passed tests for (parser-generator-lr--parse-k-2)"))
- [elpa] externals/parser-generator a8a4e7f 166/434: Minor fix, (continued)
- [elpa] externals/parser-generator a8a4e7f 166/434: Minor fix, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c0310bf 169/434: Added error-handling to lexical analyser, ELPA Syncer, 2021/11/29
- [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 <=
- [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, 2021/11/29
- [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