branch: externals/parser-generator
commit 40473d3df88378f2d64fec08b66d79308d5b5432
Author: Christian Johansson <christ...@cvj.se>
Commit: Christian Johansson <christ...@cvj.se>

    Fixed bug with data in full look-ahead in parse function
---
 parser-generator-lr.el | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 5e0183c..498623a 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -905,7 +905,7 @@
             (look-ahead-full))
 
         ;; Save token stream indexes in separate variable if needed later
-        (setq look-ahead-full (nreverse look-ahead))
+        (setq look-ahead-full look-ahead)
 
         ;; Create simplified look-ahead for logic below
         (setq look-ahead nil)
@@ -913,9 +913,11 @@
           (if (listp look-ahead-item)
               (push (car look-ahead-item) look-ahead)
             (push look-ahead-item look-ahead)))
+        (setq look-ahead (nreverse look-ahead))
 
         (parser-generator--debug
-         (message "look-ahead: %s" look-ahead))
+         (message "look-ahead: %s" look-ahead)
+         (message "look-ahead-full: %s" look-ahead-full))
 
         (let ((table-index
                (car pushdown-list)))
@@ -941,9 +943,14 @@
                       (< action-index action-table-length))
                 (let ((action (nth action-index action-table)))
                   (let ((action-look-ahead (car action)))
-                    (push action-look-ahead possible-look-aheads)
-                    (when (equal action-look-ahead look-ahead)
-                      (setq action-match (cdr action)))))
+                    (push
+                     action-look-ahead
+                     possible-look-aheads)
+                    (when (equal
+                           action-look-ahead
+                           look-ahead)
+                      (setq action-match
+                            (cdr action)))))
                 (setq action-index (1+ action-index)))
 
               (unless action-match

Reply via email to