[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 8092c58 334/434: Added global declarat
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 8092c58 334/434: Added global declaration to unit test |
Date: |
Mon, 29 Nov 2021 16:00:10 -0500 (EST) |
branch: externals/parser-generator
commit 8092c58162baa44133ff78cf40a1069d35e80d76
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added global declaration to unit test
---
test/parser-generator-lr-test.el | 51 +++++++++++++++++++++++++++++++++++++---
1 file changed, 48 insertions(+), 3 deletions(-)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 3277b3e..b5d1513 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -489,7 +489,8 @@
(setq
parser-generator--e-identifier
'%empty)
- (parser-generator-set-look-ahead-number 1)
+ (parser-generator-set-look-ahead-number
+ 1)
(parser-generator-set-grammar
'(
(start input line exp)
@@ -535,13 +536,57 @@
token))))
(setq
parser-generator-lex-analyzer--get-function
- (lambda (token)
- (car token)))
+ (lambda (token) (car token)))
+
(parser-generator-process-grammar)
(should-error
(parser-generator-lr-generate-parser-tables))
(message "Grammar caused expected error")
+ ;; Add precedence to resolve conflicts
+ (setq
+ parser-generator--context-sensitive-attributes
+ '(%prec))
+ (setq
+ parser-generator--global-attributes
+ '(%left %precedence %right))
+ (setq
+ parser-generator--global-declaration
+ '(
+ (%left "-" "+")
+ (%left "*" "/")
+ (%precedence NEG)
+ (%right "^")
+ ))
+ (parser-generator-set-grammar
+ '(
+ (start input line exp)
+ ("+" "-" "*" "/" "^" "(" ")" "\n" NUM)
+ (
+ (start input)
+ (input
+ %empty
+ (input line))
+ (line
+ "\n"
+ (exp "+" (lambda(args) (message "%s" args))))
+ (exp
+ NUM
+ (exp "+" exp (lambda(args) (+ (nth 0 args) (nth 2 args))))
+ (exp "-" exp (lambda(args) (- (nth 0 args) (nth 2 args))))
+ (exp "*" exp (lambda(args) (* (nth 0 args) (nth 2 args))))
+ (exp "/" exp (lambda(args) (/ (nth 0 args) (nth 2 args))))
+ ("-" (exp (%prec NEG)) (lambda(args) (- (nth 1 args))))
+ (exp "^" exp (lambda(args) (expt (nth 0 args) (nth 2 args))))
+ ("(" exp ")" (lambda(args) (nth 1)))))
+ start))
+ (parser-generator-process-grammar)
+
+ ;; TODO Should work now
+ (parser-generator-lr-generate-parser-tables)
+ (message "Grammar now passes thanks to precedence rules")
+
+ ;; TODO Test functionality here (then move to translate test)
(let ((buffer (generate-new-buffer "*buffer*")))
(switch-to-buffer buffer)
(kill-region (point-min) (point-max))
- [elpa] externals/parser-generator 3657a68 427/434: Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator, (continued)
- [elpa] externals/parser-generator 3657a68 427/434: Merge branch 'master' of git.cvj.se:/home/git/emacs-parser-generator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 2481361 425/434: Improved readme, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e59baa8 416/434: Added move feature of lex-analyzer into exported LR lex-analyzer, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 29568c3 428/434: Added support for copyright text in exported LR-parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4a3a51d 434/434: Added FSF copyright headers, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 24f3fb9 419/434: Lex-analyzer peek look-ahead does not affect global state, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f5a5801 421/434: Clarified lex-analyzer exporting necessities, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 9a3240b 314/434: Fixed bug with error throwing on false lr item sets, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5f13406 319/434: More work on supporting LR-grammar with precedence attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 989e79e 331/434: More debugging, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 8092c58 334/434: Added global declaration to unit test,
ELPA Syncer <=
- [elpa] externals/parser-generator 778b96f 335/434: More work on global precedence declaration, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0523eeb 336/434: More work on global precedence, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0aed7b0 339/434: More work on global precedence in LR(k) parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b84ed5e 342/434: Fixed issue with infix calculator translation test, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f449039 346/434: More debugging, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 34f95b3 351/434: More debugging infix calculator, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bb82646 356/434: More debugging, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b040d9b 357/434: Tests for infix calculator working, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4404424 367/434: Added test for parsing context-sensitive attributes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 2ad866c 371/434: Context-sensitive attribute are now tested through specified comparison function, ELPA Syncer, 2021/11/29