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

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

[elpa] externals/parser-generator ca85ef4 068/434: Created TODO items


From: ELPA Syncer
Subject: [elpa] externals/parser-generator ca85ef4 068/434: Created TODO items
Date: Mon, 29 Nov 2021 15:59:10 -0500 (EST)

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

    Created TODO items
---
 parser.el | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/parser.el b/parser.el
index c14f199..10f3db6 100644
--- a/parser.el
+++ b/parser.el
@@ -646,9 +646,28 @@
 ;; Algorithm 5.9, p. 389
 (defun parser-test--lr-items-for-grammar ()
   "Calculate set of valid LR(k) items for grammar."
-  (let ((lr-items))
+  (let ((S)
+        (marked-sets (make-hash-table :test 'equal))
+        (symbols (append (parser--get-grammar-non-terminals) 
(parser--get-grammar-terminals))))
+    (let ((e-set (parser--lr-items-for-prefix 'e)))
+      ;; TODO (1) Place V(e) in S. The set V(e) is initially unmarked.
+      )
+    (let ((found-unmarked t))
+      (while found-unmarked
+        (setq found-unmarked t)
+        ;; TODO (2) If a set of items a in S is unmarked, mark a by computing
+        ;; for each X in N u E, GOTO (a, X). (Algorithm 5.8 can be used here.)
+        ;; If a' = GOTO(a, X) is nonempty and is not already in S,
+        ;; then add a' to S as an unmarked set of items
+
+        ;; TODO (3) Repeat step (2) until all sets of items in S are marked.
+        ))
+
+    ;; Place V(e) in S
+    
+    
     ;; TODO Implement this
-    lr-items))
+    S))
 
 ;; Algorithm 5.8, p. 386
 (defun parser--lr-items-for-prefix (γ)



reply via email to

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