[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 5150b91 075/434: Started working on lr
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 5150b91 075/434: Started working on lr-items for grammar function |
Date: |
Mon, 29 Nov 2021 15:59:12 -0500 (EST) |
branch: externals/parser-generator
commit 5150b91cc93ab02da66215c7487463c65cc89e40
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Started working on lr-items for grammar function
---
parser.el | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/parser.el b/parser.el
index 5fb6277..97e64d0 100644
--- a/parser.el
+++ b/parser.el
@@ -659,23 +659,25 @@
(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 parser--e-identifier)))
- ;; TODO (1) Place V(e) in S. The set V(e) is initially unmarked.
- )
+ ;;(1) Place V(e) in S. The set V(e) is initially unmarked.
+ (push `(,e-set nil) S))
(let ((found-unmarked t))
+
+ ;; (3) Repeat step (2) until all sets of items in S are marked.
(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
+ (setq found-unmarked nil)
+ (dolist (set S)
+ ;; (2) If a set of items a in S is unmarked
+ (unless (car (cdr set))
+ ;; TODO (2) 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
+ (dolist (symbol symbols)
+
+ )
+
+ (setq found-unmarked t)))))
+
S))
;; Algorithm 5.8, p. 386
- [elpa] externals/parser-generator 6d2e231 059/434: Added two more failing valid LR-set calculation tests, (continued)
- [elpa] externals/parser-generator 6d2e231 059/434: Added two more failing valid LR-set calculation tests, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 15dc472 067/434: Added TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 44eb5a3 062/434: Passing unit test for V(e) and V(S), ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a7d1cc0 070/434: Updated README, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3373881 085/434: More work on GOTO-table generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5957fad 076/434: First implementation of generating LR-items for grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7689ec5 086/434: More work, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c992a54 093/434: Added info in README.md about LR-items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4c75f65 101/434: Added TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 6ee548e 005/434: Updated README, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5150b91 075/434: Started working on lr-items for grammar function,
ELPA Syncer <=
- [elpa] externals/parser-generator 59aea4d 077/434: More tweaking new algorithm, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d0c9663 082/434: Passing test for distinct LR-items for grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7a48197 084/434: Removed obsolete variable, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7fe7318 087/434: Passed test for distinct LR-items for grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ba95bff 094/434: Started on new algorithm, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 6f524ed 108/434: Various stuff, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 79c06fd 113/434: Added error signal if no parser action or LR-item set is found, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator daf93e0 097/434: Added failing unit test for action tables generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 32263b7 074/434: Added cache to function which calculates LR-items for prefix, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 21164b6 064/434: Added documentation for (lr-items), ELPA Syncer, 2021/11/29