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

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

[elpa] externals/parser-generator 16f6586 242/434: Fixed bug in lr-item


From: ELPA Syncer
Subject: [elpa] externals/parser-generator 16f6586 242/434: Fixed bug in lr-item generation were look-ahead was disregarded
Date: Mon, 29 Nov 2021 15:59:49 -0500 (EST)

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

    Fixed bug in lr-item generation were look-ahead was disregarded
---
 parser-generator-lr.el | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 886f3eb..c132c73 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -501,7 +501,8 @@
                          rhs-first)
                         (let ((rhs-rest (append (cdr rhs) suffix)))
                           (let ((rhs-rest-first
-                                 (parser-generator--first rhs-rest)))
+                                 (parser-generator--first
+                                  rhs-rest)))
                             (parser-generator--debug
                              (message "is non-terminal")
                              (message "rhs-rest: %s from %s + %s" rhs-rest 
(cdr rhs) suffix)
@@ -664,7 +665,15 @@
               (let ((lr-item-suffix-first
                      (car lr-item-suffix))
                     (lr-item-suffix-rest
-                     (cdr lr-item-suffix)))
+                     (append
+                      (cdr lr-item-suffix)
+                      (nth 3 lr-item))))
+                (parser-generator--debug
+                 (message
+                  "lr-item-suffix-rest: %s from %s + %s"
+                  lr-item-suffix-rest
+                  (cdr lr-item-suffix)
+                  (nth 3 lr-item)))
 
                 ;; (b) If [A -> a . Bb, u] has been placed in V(X1,...,Xi)
                 ;; and B -> D is in P
@@ -680,6 +689,7 @@
                       "lr-item-suffix-rest-first (before): %s"
                       lr-item-suffix-rest-first))
 
+                    ;; EOF-markers are always a possible look-ahead
                     (unless lr-item-suffix-rest-first
                       (setq
                        lr-item-suffix-rest-first



reply via email to

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