emacs-elpa-diffs
[Top][All Lists]
Advanced

[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 ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]