[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 3a0d4cd 255/434: Added translation tes
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 3a0d4cd 255/434: Added translation test for LRk=2 |
Date: |
Mon, 29 Nov 2021 15:59:52 -0500 (EST) |
branch: externals/parser-generator
commit 3a0d4cd5f74b41aaa17b301509829d0450c6488b
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added translation test for LRk=2
---
test/parser-generator-lr-test.el | 39 ++++++++++++++++++++++++++++++++++++++-
test/parser-generator-test.el | 6 ++++++
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 69ae4c6..f2a3f33 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -680,7 +680,44 @@
(kill-buffer))
- ;; TODO Test translate here
+ (let ((buffer (generate-new-buffer "*a*")))
+ (switch-to-buffer buffer)
+ (kill-region (point-min) (point-max))
+ (insert "abac")
+
+ (parser-generator-set-grammar
+ '((Sp S R T) ("a" "b" "c") ((Sp S) (S (R S) (R)) (R ("a" "b" T
(lambda(args) (list "begin" (nth 2 args) "end")))) (T ("a" T (lambda() "test"))
("c") (e))) Sp))
+ (parser-generator-set-look-ahead-number 2)
+ (parser-generator-process-grammar)
+ (parser-generator-lr-generate-parser-tables)
+
+ ;; Setup lex-analyzer
+ (setq
+ parser-generator-lex-analyzer--function
+ (lambda (index)
+ (with-current-buffer buffer
+ (when (<= (+ index 1) (point-max))
+ (let ((start index)
+ (end (+ index 1)))
+ (let ((token (buffer-substring-no-properties start end)))
+ `(,token ,start . ,end)))))))
+ (setq
+ parser-generator-lex-analyzer--get-function
+ (lambda (token)
+ (with-current-buffer buffer
+ (let ((start (car (cdr token)))
+ (end (cdr (cdr token))))
+ (when (<= end (point-max))
+ (buffer-substring-no-properties start end))))))
+
+ (should
+ (equal
+ '("begin" "test" "end")
+ (parser-generator-lr-translate)))
+
+ (message "Passed translation k=2")
+
+ (kill-buffer))
(message "Passed tests for (parser-generator-lr--parse-k-2)"))
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index 4a880b4..3b4b143 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -502,6 +502,12 @@
t
(parser-generator--valid-grammar-p '((A B C) ("a" "b" "c") ((A ("a"
(lambda(a) (message "Was here: %s" a))))) A))))
+ (should
+ (equal
+ t
+ (parser-generator--valid-grammar-p
+ '((A B C) ("a" "b" "c") ((A ("a" (lambda(args) (message "a: %s" args)))
("b" (lambda(args) (message "b: %s" args))) ("c" (lambda(args) (message "c: %s"
args))))) A))))
+
(message "Passed tests for (parser-generator--valid-grammar-p)"))
(defun parser-generator-test--valid-look-ahead-number-p ()
- [elpa] externals/parser-generator 06f8d37 211/434: More work on debugging LRk parser with k > 1, (continued)
- [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, 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 <=
- [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
- [elpa] externals/parser-generator 852f969 283/434: Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0d6d46d 294/434: Debugging incremental issue with exported translator, ELPA Syncer, 2021/11/29