[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 7a3e653 390/434: Added test for testin
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 7a3e653 390/434: Added test for testing precedence of context-sensitive attribute |
Date: |
Mon, 29 Nov 2021 16:00:22 -0500 (EST) |
branch: externals/parser-generator
commit 7a3e653dd2006d11b13cea333bab87159908a2f2
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added test for testing precedence of context-sensitive attribute
---
test/parser-generator-lr-test.el | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 1e3de75..b09789e 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -249,7 +249,14 @@
((and
a-value
(not b-value))
- t))))
+ t)
+
+ ((and
+ (not a-value)
+ (not b-value))
+ nil)
+
+ )))
(parser-generator-lr-generate-parser-tables)
(should
(equal
@@ -341,6 +348,7 @@
`(,symbol ,(match-beginning 0) . ,(match-end 0)))))
(t (error "Unexpected input at %d!" index))))
token))))
+
(setq
parser-generator-lex-analyzer--get-function
(lambda (token)
@@ -373,6 +381,9 @@
(setq
parser-generator--context-sensitive-attributes
'(%prec))
+ (setq
+ parser-generator--global-declaration
+ nil)
(parser-generator-set-grammar
'(
(start input line exp)
@@ -396,7 +407,6 @@
("(" exp ")" (lambda(args) (nth 1 args)))))
start))
(parser-generator-process-grammar)
-
(should-error
(parser-generator-lr-generate-parser-tables))
(message "Grammar caused expected conflict 3")
@@ -441,6 +451,8 @@
;; * -> reduce 5.. causes expected (1+1)*2 = 4
(let ((buffer (generate-new-buffer "*buffer*")))
(switch-to-buffer buffer)
+
+ (kill-region (point-min) (point-max))
(insert "2+3*5\n")
(let ((parse (parser-generator-lr-parse)))
(should
@@ -452,11 +464,9 @@
(equal
17.0
translate)))
- (kill-buffer))
- (message "Passed correct precedence of 2+3*5 = 2+(3*5) = 17")
+ (message "Passed correct precedence of 2+3*5 = 2+(3*5) = 17")
- (let ((buffer (generate-new-buffer "*buffer*")))
- (switch-to-buffer buffer)
+ (kill-region (point-min) (point-max))
(insert "2*3+5\n")
(let ((parse (parser-generator-lr-parse)))
(should
@@ -468,8 +478,17 @@
(equal
16.0
translate)))
+ (message "Passed incorrect precedence of 2*3+5 => 2*(3+5) = 16")
+
+ (kill-region (point-min) (point-max))
+ (insert "-5+3\n")
+ (let ((translate (parser-generator-lr-translate)))
+ (should
+ (equal
+ -8.0
+ translate)))
+ (message "Passed incorrect precedence of -5+3 => -(5+3) = -8")
(kill-buffer))
- (message "Passed incorrect precedence of 2*3+5 => 2*(3+5) = 16")
;; Add global precedence, but it should not solve all errors
(setq
- [elpa] externals/parser-generator 97b5e59 381/434: Comparing precedence of last symbol of production with look-ahead, (continued)
- [elpa] externals/parser-generator 97b5e59 381/434: Comparing precedence of last symbol of production with look-ahead, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5ff13d2 382/434: Improvements in test for precedence, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9c30f34 385/434: More work on refactoring conflict resolution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 53fb785 395/434: Verified examples in documentation, added infix notation calculator example, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e447145 402/434: Added notes about setting to allow default conflict resolution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 201bcb1 405/434: Improved notes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator aad1a17 404/434: Removed unnecessary logic in LR(0) action-table generation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1b2a150 403/434: Added failing test for e-identifier in the middle of a rule, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator aa8a2bf 391/434: Work on the tests for the exported lr-parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a8c092d 386/434: More work on precedence logic, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7a3e653 390/434: Added test for testing precedence of context-sensitive attribute,
ELPA Syncer <=
- [elpa] externals/parser-generator 5cb63eb 399/434: Improve error message of invalid global declaration, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f9223ea 400/434: Added a flag to use shift conflict resolution in cases were precedence is missing, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ded7700 387/434: Added more test for infix precedence, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9e8b89b 392/434: More work on exporting LR-parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fc48311 409/434: Added test for FIRST calculation of multiple symbols and e-identifiers, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 6733b57 415/434: Added feature to move lex-analyzer forward, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9eca533 410/434: Added test and implementation of calculating FIRST on multiple symbols were first is a non-terminal that expands into an e-identifier, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ca21bcd 412/434: Shortened doc-string, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0a3f5f5 426/434: Added test for LR(1) PHP 8.0 match grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c9906f7 420/434: Move order of export of LR lex-analyzer, ELPA Syncer, 2021/11/29