[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator f621e77 161/434: Preparations for test
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator f621e77 161/434: Preparations for testing incremental parse |
Date: |
Mon, 29 Nov 2021 15:59:32 -0500 (EST) |
branch: externals/parser-generator
commit f621e77c49a69f7c84062f1d0bae267b4af1a1f0
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Preparations for testing incremental parse
---
parser-generator-lr.el | 8 +++----
test/parser-generator-lr-test.el | 49 ++++++++++++++++++++++++++++++++++++----
2 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 39b1ea4..fe29519 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -700,11 +700,11 @@
(when next-index
(push production-lhs pushdown-list)
- (push next-index pushdown-list)))))
+ (push next-index pushdown-list)
- (push
- `(,parser-generator-lex-analyzer--index ,pushdown-list)
- pushdown-list-history)))))
+ (push
+ `(,parser-generator-lex-analyzer--index
,pushdown-list)
+ pushdown-list-history)))))))))
((equal action-match '(accept))
;; (d) If f(u) = accept, we halt and declare the string
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index 4d6aae2..cc02538 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -223,9 +223,9 @@
(message "Passed tests for (parser-generator-lr--items-valid-p)"))
-(defun parser-generator-lr-test--parse ()
- "Test `parser-generator-lr--parse'."
- (message "Started tests for (parser-generator-lr--parse)")
+(defun parser-generator-lr-test-parse ()
+ "Test `parser-generator-lr-parse'."
+ (message "Started tests for (parser-generator-lr-parse)")
(parser-generator-set-grammar '((Sp S) (a b) ((Sp S) (S (S a S b)) (S e))
Sp))
(parser-generator-set-look-ahead-number 1)
@@ -319,6 +319,42 @@
(message "Passed test with terminals as string, invalid syntax")
+ ;; TODO Add incremental parse here
+
+ (setq
+ parser-generator-lex-analyzer--function
+ (lambda (index)
+ (let* ((string '(("a" 1 . 2) ("a" 2 . 3) ("b" 3 . 4) ("b" 4 . 5)))
+ (string-length (length string))
+ (max-index index)
+ (tokens))
+ (while (and
+ (< (1- index) string-length)
+ (< (1- index) max-index))
+ (push (nth (1- index) string) tokens)
+ (setq index (1+ index)))
+ (nreverse tokens))))
+
+ (let ((history (nth 2 (parser-generator-lr--parse))))
+ (message "History: %s" history)
+
+ (let ((input-tape-index (car (nth 2 history)))
+ (pushdown-list (car (cdr (nth 2 history)))))
+ ;; (let ((parser-generator-lr--parse
+ ;; input-tape-index
+ ;; pushdown-list
+ ;; output-history
+ ;; translation-history
+ ;; pushdown-list-history))
+ (message "input-tape-index: %s" input-tape-index)
+ (message "pushdown-list: %s" pushdown-list)))
+
+ (message "Passed tests for (parser-generator-lr--parse)"))
+
+(defun parser-generator-lr-test-translate ()
+ "Test `parser-generator-lr-translate'."
+ (message "Started tests for (parser-generator-lr-translate)")
+
;; Test translation with terminals as strings here
(let ((buffer (generate-new-buffer "*a*")))
@@ -418,7 +454,9 @@
(kill-buffer buffer))
(message "Passed test with translation 2")
- (message "Passed tests for (parser-generator-lr--parse)"))
+ ;; TODO Add incremental translation here
+
+ (message "Passed tests for (parser-generator-lr-translate)"))
(defun parser-generator-lr-test ()
"Run test."
@@ -428,7 +466,8 @@
(parser-generator-lr-test--items-valid-p)
(parser-generator-lr-test--generate-goto-tables)
(parser-generator-lr-test--generate-action-tables)
- (parser-generator-lr-test--parse))
+ (parser-generator-lr-test-parse)
+ (parser-generator-lr-test-translate))
(provide 'parser-generator-lr-test)
- [elpa] externals/parser-generator e89a740 138/434: Fixed bug with goto-table generation were tokens were strings, (continued)
- [elpa] externals/parser-generator e89a740 138/434: Fixed bug with goto-table generation were tokens were strings, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c667e18 121/434: Work on shift action in parsing algorithm, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator fab7e46 128/434: Fixed link to LRk grammar, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bd06863 132/434: LR-parser now uses lex-analyzer for parsing, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d14d427 140/434: Moved more about lex-analysis to separate document, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1613e89 146/434: Added lex-analyzer get function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 5c8a7a5 147/434: Preparations for SDT support, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 0e54a88 148/434: Optimized away one global variable, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 60e9c8a 153/434: Preparations for translation-support in LR-parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7ba32ff 154/434: Only save translation if it produces anything, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator f621e77 161/434: Preparations for testing incremental parse,
ELPA Syncer <=
- [elpa] externals/parser-generator 944819d 163/434: More debugging incremental parsing, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 668e738 164/434: More work on tests for incremental parse, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator ac7a9ab 168/434: Added TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a18a23d 172/434: Updated info about SDT and SA, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d6afd0b 180/434: Added TODO items, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator bbcb22f 182/434: Optimized memory usage for f-sets, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e2f4347 183/434: More work on f-set generation with e-identifiers, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 046e239 187/434: Passing first 3 complex tests for first, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 4811521 185/434: Various tweakings, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 7b6c1dc 186/434: First function passing first complex grammar test, ELPA Syncer, 2021/11/29