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

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

[elpa] externals/parser-generator ab0559d 060/434: More work


From: ELPA Syncer
Subject: [elpa] externals/parser-generator ab0559d 060/434: More work
Date: Mon, 29 Nov 2021 15:59:08 -0500 (EST)

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

    More work
---
 parser.el | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/parser.el b/parser.el
index af5ac0d..6544898 100644
--- a/parser.el
+++ b/parser.el
@@ -586,11 +586,6 @@
                 (when (> first-length 0)
                   (push first first-list))))))
         (setq first-list (sort first-list 'parser--sort-list))
-        (when (and
-               (not first-list)
-               (= (length β) 1)
-               (eq (car β) 'e))
-          (setq first-list '((e))))
         first-list))))
 
 ;; Definition at p. 343
@@ -685,13 +680,21 @@
                     (when (parser--valid-non-terminal-p rhs-first)
                       (let ((rhs-rest (append (cdr rhs) suffix)))
                         (let ((rhs-rest-first (parser--first rhs-rest)))
+                          (parser--debug
+                           (message "rhs-rest-first: %s" rhs-rest-first))
+                          (unless rhs-rest-first
+                            (setq rhs-rest-first (list nil)))
                           (let ((sub-production (parser--get-grammar-rhs 
rhs-first)))
 
                             ;; For each production with B as LHS
                             (dolist (sub-rhs sub-production)
+                              (parser--debug
+                               (message "sub-rhs: %s" sub-rhs))
 
                               ;; For each x in FIRST(αu)
                               (dolist (f rhs-rest-first)
+                                (parser--debug
+                                 (message "f: %s" f))
 
                                 ;; Add [B -> . β, x] to v-set(e), provided it 
is not already there
                                 (unless (gethash `(e ,rhs-first nil ,sub-rhs 
,f) lr-item-exists)
@@ -740,6 +743,8 @@
                       (when (parser--valid-non-terminal-p lr-item-suffix-first)
 
                         (let ((lr-item-suffix-rest-first (parser--first 
lr-item-suffix-rest)))
+                          (unless lr-item-suffix-rest-first
+                            (setq lr-item-suffix-rest-first (list nil)))
                           (let ((sub-production (parser--get-grammar-rhs 
lr-item-suffix-first)))
 
                             ;; For each production with B as LHS



reply via email to

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