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

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

[elpa] externals/parser-generator 2a9a23e 219/434: More debugging


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 2a9a23e 219/434: More debugging
Date: Mon, 29 Nov 2021 15:59:44 -0500 (EST)

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

    More debugging
---
 parser-generator-lex-analyzer.el |  2 +-
 parser-generator-lr.el           | 17 ++++++++----
 parser-generator.el              |  2 +-
 test/parser-generator-lr-test.el | 57 ++--------------------------------------
 4 files changed, 16 insertions(+), 62 deletions(-)

diff --git a/parser-generator-lex-analyzer.el b/parser-generator-lex-analyzer.el
index 5af5a62..16d4714 100644
--- a/parser-generator-lex-analyzer.el
+++ b/parser-generator-lex-analyzer.el
@@ -102,7 +102,7 @@
     (error "Missing look-ahead-number!"))
   (let ((iteration 0)
         (tokens))
-    (while (< iteration parser-generator--look-ahead-number)
+    (while (< iteration 1)
       (condition-case error
           (progn
             (let ((token
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 1d18665..031215a 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -718,6 +718,12 @@
                   table-index
                   parser-generator-lr--action-tables)))
 
+            (unless action-table
+              (error
+               "Action-table with index %s is empty! Push-down-list: %s"
+               table-index
+               pushdown-list))
+
             (let ((action-match nil)
                   (action-table-length (length action-table))
                   (action-index 0)
@@ -740,10 +746,11 @@
 
                 (error
                  (format
-                  "Invalid syntax! Expected one of %s found %s at index %s "
+                  "Invalid syntax! Expected one of %s found %s at index %s, 
push-down-list: %s"
                   possible-look-aheads
                   look-ahead
-                  parser-generator-lex-analyzer--index)
+                  parser-generator-lex-analyzer--index
+                  pushdown-list)
                  possible-look-aheads
                  look-ahead
                  parser-generator-lex-analyzer--index))
@@ -763,8 +770,8 @@
                 ;; there is no next input symbol or g(a) is undefined, halt
                 ;; and declare error.
 
-                (let ((a look-ahead)
-                      (a-full look-ahead-full))
+                (let ((a (list (car look-ahead)))
+                      (a-full (list (car look-ahead-full))))
                   (let ((goto-table
                          (gethash
                           table-index
@@ -822,7 +829,7 @@
                        (message "production-rhs: %s" production-rhs))
                       (unless (equal
                                production-rhs
-                               e-list)
+                               (list parser-generator--e-identifier))
                         (let ((pop-items (* 2 (length production-rhs)))
                               (popped-items 0)
                               (popped-item))
diff --git a/parser-generator.el b/parser-generator.el
index c47252c..87ee3e3 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -11,7 +11,7 @@
 
 
 (defvar parser-generator--debug
-  nil
+  t
   "Whether to print debug messages or not.")
 
 (defvar parser-generator--e-identifier
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 18b1946..acaff6a 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -400,65 +400,12 @@
   (parser-generator-lr-test--parse-incremental-vs-regular)
   (message "Passed incremental-tests")
 
-  ;; (message "Starting test with look-ahead number = 2")
-
-  ;; (parser-generator-set-grammar '((Sp S) ("a" "b") ((Sp S) (S (S "a" S 
"b")) (S e)) Sp))
-  ;; (parser-generator-set-look-ahead-number 2)
-  ;; (parser-generator-process-grammar)
-  ;; (let ((lr-items (parser-generator-lr--generate-goto-tables)))
-  ;;   (parser-generator--debug
-  ;;    (message "lr-items: %s" (parser-generator--hash-values-to-list 
lr-items t)))
-
-  ;;   ;; TODO Fix so that there is an accept path in look-ahead number 2
-
-  ;;   (parser-generator--debug
-  ;;    (message "goto-tables: %s" (parser-generator--hash-values-to-list 
parser-generator-lr--goto-tables t)))
-  ;;   (parser-generator-lr--generate-action-tables lr-items)
-  ;;   ;; TODO Should generate accept somewhere in this action-table
-  ;;   (parser-generator--debug
-  ;;    (message "action-tables: %s" (parser-generator--hash-values-to-list 
parser-generator-lr--action-tables t))))
-  ;; (setq
-  ;;  parser-generator-lex-analyzer--function
-  ;;  (lambda (index)
-  ;;    (let* ((string '(("a" 1 . 2) ("a" 2 . 3) ("b" 3 . 4)))
-  ;;           (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))))
-  ;; (should
-  ;;  (equal
-  ;;   '(2 2 2 1 1)
-  ;;   (parser-generator-lr-parse)))
-  ;; (message "Passed test with terminals as string with look-ahead-number 2")
-
-
   (message "Passed tests for (parser-generator-lr--parse)"))
 
 (defun parser-generator-lr-test-parse-k-2 ()
   "Test `parser-generator-lr-parse' with k = 2."
   (message "Started tests for (parser-generator-lr-parse) k = 2")
 
-  (setq
-   parser-generator-lex-analyzer--function
-   (lambda (index)
-     (let* ((string '(("a" 1 . 2) ("a" 2 . 3) ("b" 3 . 4) ("b" 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))))
-
-  (message "Starting test with look-ahead number = 2")
-
   (parser-generator-set-grammar '((Sp S) ("a" "b") ((Sp S) (S (S "a" S "b")) 
(S e)) Sp))
   (parser-generator-set-look-ahead-number 2)
   (parser-generator-process-grammar)
@@ -477,7 +424,7 @@
   (setq
    parser-generator-lex-analyzer--function
    (lambda (index)
-     (let* ((string '(("a" 1 . 2) ("a" 2 . 3) ("b" 3 . 4)))
+     (let* ((string '(("a" 1 . 2) ("a" 2 . 3) ("b" 3 . 4) ("b" 4 . 5)))
             (string-length (length string))
             (max-index index)
             (tokens))
@@ -662,7 +609,7 @@
   (parser-generator-lr-test--generate-action-tables)
   (parser-generator-lr-test-parse)
   (parser-generator-lr-test-translate)
-  ;; (parser-generator-lr-test-parse-k-2)
+  (parser-generator-lr-test-parse-k-2)
   )
 
 



reply via email to

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