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

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

[elpa] externals/parser-generator bc23604 274/434: Fixed look-ahead, fi


From: ELPA Syncer
Subject: [elpa] externals/parser-generator bc23604 274/434: Fixed look-ahead, first and e-free-first with k = 0
Date: Mon, 29 Nov 2021 15:59:56 -0500 (EST)

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

    Fixed look-ahead, first and e-free-first with k = 0
---
 parser-generator-lr.el |  2 +-
 parser-generator.el    | 14 +++++++++++---
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 088a30a..0fa4e2d 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -193,7 +193,7 @@
                     (unless found-action
                       (error
                        "Failed to find any action in set %d: %s"
-                       lr-item-index
+                       goto-index
                        lr-items))
                     (setq continue-loop nil)))
                   (setq lr-item-index (1+ lr-item-index)))))))
diff --git a/parser-generator.el b/parser-generator.el
index b001d80..7df2a6e 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -110,7 +110,9 @@
   (let ((terminals
          (parser-generator--get-grammar-terminals))
         (look-aheads)
-        (k parser-generator--look-ahead-number)
+        (k (max
+            1
+            parser-generator--look-ahead-number))
         (stack '((0 0 nil)))
         (marked-paths (make-hash-table :test 'equal))
         (added-look-aheads (make-hash-table :test 'equal)))
@@ -801,7 +803,10 @@
            parser-generator--f-free-sets)
     (parser-generator--debug (message "(parser-generator--generate-f-sets)"))
     (let ((productions (parser-generator--get-grammar-productions))
-          (k parser-generator--look-ahead-number))
+          (k
+           (max
+            1
+            parser-generator--look-ahead-number)))
       (let ((disallow-set '(nil t)))
         (parser-generator--debug (message "disallow-set: %s" disallow-set))
         (dolist (disallow-e-first disallow-set)
@@ -1339,7 +1344,10 @@
     (setq β (list β)))
   (unless (parser-generator--valid-sentential-form-p β)
     (error "Invalid sentential form β! %s" β))
-  (let ((k parser-generator--look-ahead-number))
+  (let ((k
+         (max
+          1
+          parser-generator--look-ahead-number)))
 
     ;; Generate F-sets only once per grammar
     (parser-generator--generate-f-sets)



reply via email to

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