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

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

[elpa] externals/parser-generator 21948c8 358/434: Fixed lex-analyzer to


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 21948c8 358/434: Fixed lex-analyzer to infix calculator test to support white-space and floats
Date: Mon, 29 Nov 2021 16:00:15 -0500 (EST)

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

    Fixed lex-analyzer to infix calculator test to support white-space and 
floats
---
 test/parser-generator-lr-test.el | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 013e3c1..cfb4c41 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -540,8 +540,15 @@
               (point-max))
            (goto-char
             index)
+
+           ;; Skip white-space(s)
+           (when (looking-at-p "[\t ]+")
+             (when
+                 (search-forward-regexp "[^\t ]" nil t)
+               (forward-char -1)))
+
            (cond
-            ((looking-at "[0-9]+")
+            ((looking-at "\\([0-9]+\\.[0-9]+\\|[0-9]+\\)")
              (setq
               token
               `(NUM ,(match-beginning 0) . ,(match-end 0))))
@@ -565,7 +572,7 @@
            (let ((symbol
                   (buffer-substring-no-properties start end)))
              (when
-                 (string-match-p "^[0-9]+$" symbol)
+                 (string-match-p "^\\([0-9]+\\.[0-9]+\\|[0-9]+\\)$" symbol)
                (setq
                 symbol
                 (string-to-number symbol)))
@@ -574,7 +581,6 @@
   (parser-generator-process-grammar)
   (parser-generator-lr-generate-parser-tables)
 
-  ;; TODO Test functionality here (then move to translate test)
   (let ((buffer (generate-new-buffer "*buffer*")))
     (switch-to-buffer buffer)
     (kill-region (point-min) (point-max))
@@ -621,7 +627,6 @@
       (parser-generator-lr-translate)))
     (message "Passed 10/5")
 
-
     (switch-to-buffer buffer)
     (kill-region (point-min) (point-max))
     (insert "8+10/5\n")
@@ -845,6 +850,15 @@
       (parser-generator-lr-translate)))
     (message "Passed -33-3 with correct result")
 
+    (switch-to-buffer buffer)
+    (kill-region (point-min) (point-max))
+    (insert "4 + 4.5 - (34/(8*3+-3))")
+    (should
+     (equal
+      6.880952381
+      (parser-generator-lr-translate)))
+    (message "Passed 4 + 4.5 - (34/(8*3+-3)) with correct result")
+
     (kill-buffer))
 
   (message "Passed tests for (parser-generator-lr--parse)"))



reply via email to

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