[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 5e6ee66f1f 77/82: Added failing parse
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator 5e6ee66f1f 77/82: Added failing parse tests |
Date: |
Thu, 12 May 2022 13:28:20 -0400 (EDT) |
branch: externals/parser-generator
commit 5e6ee66f1fe224a877aa52e2b1ece664103286bb
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added failing parse tests
---
test/parser-generator-ll-test.el | 42 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el
index 7de01ef0ca..5e927cbf3f 100644
--- a/test/parser-generator-ll-test.el
+++ b/test/parser-generator-ll-test.el
@@ -286,6 +286,27 @@
(parser-generator-ll-parse)))
(message "Passed example 5.16 p. 352")
+ (setq
+ parser-generator-lex-analyzer--function
+ (lambda (index)
+ (let* ((string '((b 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))))
+ (setq
+ parser-generator-lex-analyzer--get-function
+ (lambda (token)
+ (car token)))
+ (should-error
+ (parser-generator-ll-parse))
+ (message "Passed failing variant of example 5.16 p. 352")
+
(parser-generator-set-eof-identifier '$)
(parser-generator-set-e-identifier 'e)
(parser-generator-set-look-ahead-number 2)
@@ -446,6 +467,27 @@
(parser-generator-ll-parse)))
(message "Passed example from Wikipedia")
+ (setq
+ parser-generator-lex-analyzer--function
+ (lambda (index)
+ (let* ((string '(("(" 1 . 2) ("a" 2 . 3) ("+" 3 . 4) ("a" 4 . 5)))
+ (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))))
+ (setq
+ parser-generator-lex-analyzer--get-function
+ (lambda (token)
+ (car token)))
+ (should-error
+ (parser-generator-ll-parse))
+ (message "Passed failing variant of example from Wikipedia")
+
(message "Passed tests for (parser-generator-ll-parse)"))
(defun parser-generator-ll-test-translate ()
- [elpa] externals/parser-generator 2869417d78 31/82: Made new helper functions to make LL-parsing easier, (continued)
- [elpa] externals/parser-generator 2869417d78 31/82: Made new helper functions to make LL-parsing easier, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 23805731c1 34/82: More work on LL-parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 8cc2a5b315 44/82: More work on LLk parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5aeee49bd0 48/82: Added another todo note, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 4c93e895b3 49/82: Added TODO item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ec0711fa84 53/82: Tweaks on internal functions of LLk parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ed9933eeba 57/82: Passing a lot of LLk tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 87ded78c28 63/82: LL(1) parser passes test for generating tables and parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 1ccc742678 72/82: LLk parser passes translation tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 1f36aeafdd 74/82: Updated documentation with translate example for LL(1) grammar, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5e6ee66f1f 77/82: Added failing parse tests,
Christian Johansson <=
- [elpa] externals/parser-generator 0a86c69ef1 19/82: More work on LL-table generation, Christian Johansson, 2022/05/12