[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator fce14ea 355/434: Fixed bug with contex
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator fce14ea 355/434: Fixed bug with context-sensitive attributes being lost in LR-item generation |
Date: |
Mon, 29 Nov 2021 16:00:14 -0500 (EST) |
branch: externals/parser-generator
commit fce14ea596693e26445571bc7175de25ccd30a22
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Fixed bug with context-sensitive attributes being lost in LR-item generation
---
parser-generator-lr.el | 16 ++++++++++++++--
parser-generator.el | 2 +-
test/parser-generator-lr-test.el | 3 ++-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index c2543b6..b84b914 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -1326,6 +1326,7 @@
(lr-item-suffix (nth 2 lr-item))
(lr-item-look-ahead (nth 3 lr-item))
(lr-item-suffix-first)
+ (lr-item-suffix-first-wo-attributes)
(lr-item-suffix-rest))
(setq
lr-item-suffix-first
@@ -1334,25 +1335,36 @@
lr-item-suffix-rest
(cdr lr-item-suffix))
+ ;; Remove potential attributes from symbol for comparison
+ (if
+ (listp lr-item-suffix-first)
+ (setq
+ lr-item-suffix-first-wo-attributes
+ (car lr-item-suffix-first))
+ (setq
+ lr-item-suffix-first-wo-attributes
+ lr-item-suffix-first))
+
(parser-generator--debug
(message "lr-item: %s" lr-item)
(message "lr-item-prefix: %s" lr-item-prefix)
(message "lr-item-suffix: %s" lr-item-suffix)
(message "lr-item-suffix-first: %s" lr-item-suffix-first)
+ (message "lr-item-suffix-first-wo-attributes: %s"
lr-item-suffix-first-wo-attributes)
(message "lr-item-suffix-rest: %s" lr-item-suffix-rest)
(message "lr-item-look-ahead: %s" lr-item-look-ahead))
;; (a) If [A -> a . XiB, u] is in V(X1,...,Xi-1)
(when
(equal
- lr-item-suffix-first
+ lr-item-suffix-first-wo-attributes
x)
;; Add [A -> aXi . B, u] to V(X1,...,Xi)
(let ((combined-prefix
(append
lr-item-prefix
- (list x))))
+ (list lr-item-suffix-first))))
(let ((lr-new-item-1))
(if
(=
diff --git a/parser-generator.el b/parser-generator.el
index e75424f..befa2ca 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -17,7 +17,7 @@
(defvar
parser-generator--debug
- nil
+ t
"Whether to print debug messages or not.")
(defvar
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 928f9f4..c29132a 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -179,7 +179,8 @@
(3 ((($) accept)))
(4 (((b) shift)))
(5 (((c) shift)))
- (6 ((($) reduce 1))))
+ (6 ((($) reduce 4)))
+ (7 ((($) reduce 1))))
(parser-generator-lr--get-expanded-action-tables))))
(message "Passed tests for (parser-generator-lr--generate-action-tables)"))
- [elpa] externals/parser-generator 17c36f8 309/434: Added cache to lr-items for prefix function, (continued)
- [elpa] externals/parser-generator 17c36f8 309/434: Added cache to lr-items for prefix function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b6e2e64 312/434: Passing tests after memory optimization of LR parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 61dfc74 310/434: Added TODO-item, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f371e2d 320/434: Added failing test for conflict, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 2eadec5 326/434: Shortened long doc comments, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 43f3bd4 332/434: Fixed issue were non-terminals named as emacs-lisp functions was not accepted in grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 8165c55 333/434: Conflicting grammar causes expected error, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator feaa9ff 338/434: Removed debug outputs, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator cf01b59 341/434: Fixed action-table generation with symbols with context-sensitive attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ae18945 353/434: Passing some calculations thanks to precedence / associativity, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fce14ea 355/434: Fixed bug with context-sensitive attributes being lost in LR-item generation,
ELPA Syncer <=
- [elpa] externals/parser-generator 2592481 361/434: Added TODO notes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 18b2f7b 365/434: Added context-sensitive precedence to infix example, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3170e8d 370/434: Context-sensitive precedence now avoids conflict-detection, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1be5fda 374/434: More work on support for conflict resolution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 8e462cf 378/434: Validated generated action and goto-tables after precedence modification, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 6a7343e 383/434: Started on refactoring precedence table generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 8013f69 384/434: Unit tests for testing precedence table generation now passes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e070522 396/434: Fixed broken link in documentation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5b95baf 401/434: More work on last feature, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4da88bf 406/434: Added another test for e-identifier in middle of rule, ELPA Syncer, 2021/11/29