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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/parser-generator 7a3e653 390/434: Added test for testin


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 7a3e653 390/434: Added test for testing precedence of context-sensitive attribute
Date: Mon, 29 Nov 2021 16:00:22 -0500 (EST)

branch: externals/parser-generator
commit 7a3e653dd2006d11b13cea333bab87159908a2f2
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>

    Added test for testing precedence of context-sensitive attribute
---
 test/parser-generator-lr-test.el | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 1e3de75..b09789e 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -249,7 +249,14 @@
       ((and
         a-value
         (not b-value))
-       t))))
+       t)
+
+      ((and
+        (not a-value)
+        (not b-value))
+       nil)
+
+      )))
   (parser-generator-lr-generate-parser-tables)
   (should
    (equal
@@ -341,6 +348,7 @@
                 `(,symbol ,(match-beginning 0) . ,(match-end 0)))))
             (t (error "Unexpected input at %d!" index))))
          token))))
+
   (setq
    parser-generator-lex-analyzer--get-function
    (lambda (token)
@@ -373,6 +381,9 @@
   (setq
    parser-generator--context-sensitive-attributes
    '(%prec))
+  (setq
+   parser-generator--global-declaration
+   nil)
   (parser-generator-set-grammar
    '(
      (start input line exp)
@@ -396,7 +407,6 @@
        ("(" exp ")" (lambda(args) (nth 1 args)))))
      start))
   (parser-generator-process-grammar)
-
   (should-error
    (parser-generator-lr-generate-parser-tables))
   (message "Grammar caused expected conflict 3")
@@ -441,6 +451,8 @@
   ;; * -> reduce 5.. causes expected (1+1)*2 = 4
   (let ((buffer (generate-new-buffer "*buffer*")))
     (switch-to-buffer buffer)
+
+    (kill-region (point-min) (point-max))
     (insert "2+3*5\n")
     (let ((parse (parser-generator-lr-parse)))
       (should
@@ -452,11 +464,9 @@
        (equal
         17.0
         translate)))
-    (kill-buffer))
-  (message "Passed correct precedence of 2+3*5 = 2+(3*5) = 17")
+    (message "Passed correct precedence of 2+3*5 = 2+(3*5) = 17")
 
-  (let ((buffer (generate-new-buffer "*buffer*")))
-    (switch-to-buffer buffer)
+    (kill-region (point-min) (point-max))
     (insert "2*3+5\n")
     (let ((parse (parser-generator-lr-parse)))
       (should
@@ -468,8 +478,17 @@
        (equal
         16.0
         translate)))
+    (message "Passed incorrect precedence of 2*3+5 => 2*(3+5) = 16")
+
+    (kill-region (point-min) (point-max))
+    (insert "-5+3\n")
+    (let ((translate (parser-generator-lr-translate)))
+      (should
+       (equal
+        -8.0
+        translate)))
+    (message "Passed incorrect precedence of -5+3 => -(5+3) = -8")
     (kill-buffer))
-  (message "Passed incorrect precedence of 2*3+5 => 2*(3+5) = 16")
 
   ;; Add global precedence, but it should not solve all errors
   (setq



reply via email to

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