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

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

[elpa] externals/parser-generator 231bf85 422/434: Using (signal) instea


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 231bf85 422/434: Using (signal) instead of (error) in LR-parser and exported LR-parser when encountering syntax error
Date: Mon, 29 Nov 2021 16:00:29 -0500 (EST)

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

    Using (signal) instead of (error) in LR-parser and exported LR-parser when 
encountering syntax error
---
 parser-generator-lex-analyzer.el | 26 +++++++++---
 parser-generator-lr-export.el    | 13 ++++--
 parser-generator-lr.el           | 85 +++++++++++++++++++++++++---------------
 3 files changed, 83 insertions(+), 41 deletions(-)

diff --git a/parser-generator-lex-analyzer.el b/parser-generator-lex-analyzer.el
index 5610d6c..3198bd2 100644
--- a/parser-generator-lex-analyzer.el
+++ b/parser-generator-lex-analyzer.el
@@ -45,7 +45,11 @@
 (defun parser-generator-lex-analyzer--get-function (token)
   "Get information about TOKEN."
   (unless parser-generator-lex-analyzer--get-function
-    (error "Missing lex-analyzer get function! Token: %s" token))
+    (signal
+     'error
+     (list
+      (format "Missing lex-analyzer get function! Token: %s" token)
+      token)))
   (let ((meta-information))
     (condition-case error
         (progn
@@ -53,12 +57,22 @@
                 (funcall
                  parser-generator-lex-analyzer--get-function
                  token)))
-      (error (error
-              "Lex-analyze failed to get token meta-data of %s, error: %s"
-              token
-              (car (cdr error)))))
+      (error
+       (signal
+        'error
+        (list
+         (format
+          "Lex-analyze failed to get token meta-data of %s, error: %s"
+          token
+          (car (cdr error)))
+         token
+         (car (cdr error))))))
     (unless meta-information
-      (error "Could not find any token meta-information for: %s" token))
+      (signal
+       'error
+       (list
+        (format "Could not find any token meta-information for: %s" token)
+        token)))
     meta-information))
 
 (defun parser-generator-lex-analyzer--peek-next-look-ahead ()
diff --git a/parser-generator-lr-export.el b/parser-generator-lr-export.el
index b5d9501..584f63e 100644
--- a/parser-generator-lr-export.el
+++ b/parser-generator-lr-export.el
@@ -609,14 +609,20 @@
                namespace))
 
       (insert "
-                  (error
-                    \"Invalid syntax! Expected one of %s found %s at %s\"
+                  (signal
+                    'error
+                    (list
+                      (format
+                        \"Invalid syntax! Expected one of %s found %s at %s\"
 ")
 
       (insert (format "
                    possible-look-aheads
                    look-ahead
-                   %s-lex-analyzer--index))
+                   %s-lex-analyzer--index)
+                   possible-look-aheads
+                   look-ahead
+                   %s-lex-analyzer--index)))
 
                 (cond
 
@@ -662,6 +668,7 @@
                           (setq goto-index (1+ goto-index)))"
                       namespace
                       namespace
+                      namespace
                       namespace))
 
       (insert "
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index cad6f5b..8f54db9 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -1839,11 +1839,17 @@
                     ;; (c) If f(u) = error, we halt parsing (and, in practice
                     ;; transfer to an error recovery routine).
 
-                    (error
-                     "Invalid syntax! Expected one of %S found %S at position 
%S"
-                     possible-look-aheads
-                     look-ahead
-                     parser-generator-lex-analyzer--index))
+                    (signal
+                     'error
+                     (list
+                      (format
+                       "Invalid syntax! Expected one of %S found %S at 
position %S"
+                       possible-look-aheads
+                       look-ahead
+                       parser-generator-lex-analyzer--index)
+                      possible-look-aheads
+                      look-ahead
+                      parser-generator-lex-analyzer--index)))
 
                   (parser-generator--debug
                    (message "action-table: %s" action-table)
@@ -1904,11 +1910,17 @@
                              (message "shift next-index: %s" next-index))
 
                             (unless next-index
-                              (error
-                               "In shift, found no GOTO-item for %s at %s, 
expected one of %s"
-                               a
-                               parser-generator-lex-analyzer--index
-                               possible-look-aheads))
+                              (signal
+                               'error
+                               (list
+                                (format
+                                 "In shift, found no GOTO-item for %s at %s, 
expected one of %s"
+                                 a
+                                 parser-generator-lex-analyzer--index
+                                 possible-look-aheads)
+                                a
+                                parser-generator-lex-analyzer--index
+                                possible-look-aheads)))
 
                             (push (car a-full) pushdown-list)
                             (push next-index pushdown-list)
@@ -2123,30 +2135,39 @@
 
                     (setq accept t))
 
-                   (t (error
+                   (t
+                    (signal
+                     'error
+                     (list
+                      (format
                        "Invalid action-match: %s!"
-                       action-match)))))))))
+                       action-match)
+                      action-match))))))))))
       (unless accept
-        (error
-         "Parsed entire string without getting accepting! Output: %s"
-         (reverse output)))
-      (when history
-        (setq history (reverse history)))
-      (when output
-        (setq output (reverse output)))
-      (let ((translation-symbol-table-list))
-        (when translation-symbol-table
-          (maphash
-           (lambda (key value)
-             (push
-              `(,key ,value)
-              translation-symbol-table-list))
-           translation-symbol-table))
-        (list
-         output
-         translation
-         translation-symbol-table-list
-         history)))))
+        (signal
+         'error
+         (list
+          (format
+           "Parsed entire string without getting accepting! Output: %s"
+           (reverse output))
+          (reverse output)))))
+    (when history
+      (setq history (reverse history)))
+    (when output
+      (setq output (reverse output)))
+    (let ((translation-symbol-table-list))
+      (when translation-symbol-table
+        (maphash
+         (lambda (key value)
+           (push
+            `(,key ,value)
+            translation-symbol-table-list))
+         translation-symbol-table))
+      (list
+       output
+       translation
+       translation-symbol-table-list
+       history))))
 
 (provide 'parser-generator-lr)
 



reply via email to

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