[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 03a11c4369 14/82: Started test for LL(
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator 03a11c4369 14/82: Started test for LL(k) parser-table generation |
Date: |
Thu, 12 May 2022 13:28:13 -0400 (EDT) |
branch: externals/parser-generator
commit 03a11c4369fb560b016930f9354668e0a5b940f7
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Started test for LL(k) parser-table generation
---
parser-generator-ll.el | 6 +++---
test/parser-generator-ll-test.el | 34 ++++++++++++++++++++++++----------
2 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/parser-generator-ll.el b/parser-generator-ll.el
index 6578d57639..e6b24069a8 100644
--- a/parser-generator-ll.el
+++ b/parser-generator-ll.el
@@ -223,9 +223,9 @@
;; TODO
;; Algorithm 5.3 p. 351
-(defun parser-generator-ll--generate-parsing-table ()
- "A parsing table for an LL(k) grammar G. Output M, a valid parsing table
for G."
- )
+(defun parser-generator-ll--generate-parsing-table (tables)
+ "Generate a parsing table for an LL(k) grammar G and TABLES. Output M, a
valid parsing table for G."
+ nil)
;; TODO
diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el
index 3d2b8b9be3..9d8aeb7479 100644
--- a/test/parser-generator-ll-test.el
+++ b/test/parser-generator-ll-test.el
@@ -16,15 +16,7 @@
"Test `parser-generator-ll--generate-tables'."
(message "Started tests for (parser-generator-ll--generate-tables)")
-
- (message "Passed tests for (parser-generator-ll--generate-tables)"))
-
-(defun parser-generator-ll-test--generate-parsing-table ()
- "Test `parser-generator-ll--generate-parsing-table'."
- (message "Started tests for (parser-generator-ll--generate-parsing-table)")
-
- ;; TODO Example 5.14 p. 350 here
-
+ ;; Example 5.14 p. 350
;; Example 5.15 p. 351
(parser-generator-set-e-identifier 'e)
(parser-generator-set-look-ahead-number 2)
@@ -49,7 +41,29 @@
(0 (((S) nil (a b) (a A a a)) ((S) nil (a a) (a A a a)) ((S) nil (b b)
(b A b a))))
(1 (((A) (a a) (a a) (e)) ((A) (a a) (b a) (b))))
(2 (((A) (b a) (b b) (b)) ((A) (b a) (b a) (e))))
- ))))
+ )))
+ tables
+ )
+
+ (message "Passed tests for (parser-generator-ll--generate-tables)"))
+
+(defun parser-generator-ll-test--generate-parsing-table ()
+ "Test `parser-generator-ll--generate-parsing-table'."
+ (message "Started tests for (parser-generator-ll--generate-parsing-table)")
+
+ (let* ((tables
+ '(
+ (0 (((S) nil (a b) (a A a a)) ((S) nil (a a) (a A a a)) ((S) nil (b
b) (b A b a))))
+ (1 (((A) (a a) (a a) (e)) ((A) (a a) (b a) (b))))
+ (2 (((A) (b a) (b b) (b)) ((A) (b a) (b a) (e))))))
+ (parser-tables
+ (parser-generator-ll--generate-parsing-table
+ tables)))
+ (message "parser-tables: %S" parser-tables)
+
+ ;; TODO Add test here
+
+ )
(message "Passed tests for (parser-generator-ll--generate-parsing-table)"))
- [elpa] externals/parser-generator 57c6fdda2f 43/82: Passing test for generating LL-parser hash-table, (continued)
- [elpa] externals/parser-generator 57c6fdda2f 43/82: Passing test for generating LL-parser hash-table, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator b37ba1eddf 52/82: Created TODO item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator af3740c46a 59/82: More refactoring, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 3d373f4dfa 60/82: Updated docs, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 020969094c 61/82: More refactoring, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 08ed55d35a 62/82: More work on k=1, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 4f85cc5616 66/82: Passes byte-compilation tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 7a265c9a84 67/82: LL-tests now runs on make tests command, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator a046c8584d 73/82: Started on documentation for LL(k) and LL(1), Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator f07939a440 76/82: Added example from Wikipedia and passing test, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 03a11c4369 14/82: Started test for LL(k) parser-table generation,
Christian Johansson <=
- [elpa] externals/parser-generator 9d6ca94d0e 02/82: More work on LL(k) parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 6ce0dd9429 04/82: Improved function to calculate merge max terminal sets, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 52734d7160 16/82: Updated TODO items, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 7b77032f71 22/82: Parser table generation for LLk now works for productions, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator fe728f8ad8 23/82: Passing test for generating LLk parser table, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 3b9977b51b 28/82: More work on LLk test, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator f23bc217d8 30/82: More wrestling, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 6e91a4b498 32/82: More work on helper functions, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 80dd506b65 33/82: More work on LL-helper functions, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator e6f9ac545f 37/82: Cleanup after byte-compilation, Christian Johansson, 2022/05/12