[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 6f524ed 108/434: Various stuff
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 6f524ed 108/434: Various stuff |
Date: |
Mon, 29 Nov 2021 15:59:19 -0500 (EST) |
branch: externals/parser-generator
commit 6f524ed74a6cafb31d94e595f9f2816cf4489f90
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Various stuff
---
parser-lr.el | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/parser-lr.el b/parser-lr.el
index 87fb667..ed1f8dd 100644
--- a/parser-lr.el
+++ b/parser-lr.el
@@ -56,8 +56,11 @@
;; Where u is in (T U e)*k
(dolist (state states)
(let ((lr-item)
- (lr-item-index 0))
- (while (< lr-item-index lr-items-length)
+ (lr-item-index 0)
+ (continue-loop t))
+ (while (and
+ (< lr-item-index lr-items-length)
+ continue-loop)
(setq lr-item (nth lr-item-index lr-items))
;; (message "lr-item: %s" lr-item)
(cond
@@ -102,6 +105,7 @@
((eq state 'reduce)
;; (b) f(u) = reduce i if [A -> B ., u] is in a and A ->
B is production i in P, i > 1
(when (and
+ (nth 0 lr-item)
(nth 1 lr-item)
(not (nth 2 lr-item)))
(let ((u (nth 3 lr-item)))
@@ -129,14 +133,16 @@
(puthash hash-key t added-actions)
;; TODO Save in action table accept action for e
(push (list (parser--e-identifier) 'accept)
action-table)
- (setq found-action t)))))
+ (setq found-action t)
+ (setq continue-loop nil)))))
((eq state 'error)
(unless found-action
(message "%s -> 'error" lr-item)
;; TODO Save error action here?
;; TODO (d) f(u) = error otherwise
- ))
+ )
+ (setq continue-loop nil))
)
(setq lr-item-index (1+ lr-item-index)))))))
- [elpa] externals/parser-generator 7689ec5 086/434: More work, (continued)
- [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, 2021/11/29
- [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 <=
- [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
- [elpa] externals/parser-generator ccaf4b5 080/434: More stuff, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bdbedf4 078/434: Suffixes in LR-items that only contain e-identifier are now set as nil, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0e075d7 081/434: Fixed issue with algorithm 5.9, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fe6037b 088/434: Generating valid GOTO-table, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d5284b5 091/434: Added algorithm 5.10, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0304b78 092/434: Added a unit-test to invalidate LR-items, ELPA Syncer, 2021/11/29