[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 47fb35e 229/434: More work on a more g
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 47fb35e 229/434: More work on a more generalized LR Parser |
Date: |
Mon, 29 Nov 2021 15:59:47 -0500 (EST) |
branch: externals/parser-generator
commit 47fb35eb4727f62dc0845bf3dcd0f6ddf22eb869
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
More work on a more generalized LR Parser
---
parser-generator-lr.el | 13 +++++++------
test/parser-generator-lr-test.el | 36 ++++++++++++++++++------------------
2 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/parser-generator-lr.el b/parser-generator-lr.el
index 4048b33..369b4eb 100644
--- a/parser-generator-lr.el
+++ b/parser-generator-lr.el
@@ -261,7 +261,7 @@
(parser-generator--debug
(message "Set already exists in: %s" goto))
(push
- `(,(car symbol) ,goto)
+ `(,symbol ,goto)
goto-table-table))
(parser-generator--debug
@@ -272,7 +272,7 @@
;; then add a' to S as an unmarked set of items
(push
- `(,(car symbol) ,lr-item-set-new-index)
+ `(,symbol ,lr-item-set-new-index)
goto-table-table)
(push
`(,lr-item-set-new-index ,prefix-lr-items)
@@ -821,8 +821,8 @@
;; there is no next input symbol or g(a) is undefined, halt
;; and declare error.
- (let ((a (list (car look-ahead)))
- (a-full (list (car look-ahead-full))))
+ (let ((a look-ahead)
+ (a-full look-ahead-full))
(let ((goto-table
(gethash
table-index
@@ -837,7 +837,7 @@
searching-match
(< goto-index goto-table-length))
(let ((goto-item (nth goto-index goto-table)))
- (let ((goto-item-symbol (list (car goto-item)))
+ (let ((goto-item-symbol (car goto-item))
(goto-item-next-index (car (cdr goto-item))))
(push goto-item-symbol possible-look-aheads)
@@ -850,6 +850,7 @@
(setq searching-match nil))))
(setq goto-index (1+ goto-index)))
+
(parser-generator--debug
(message "next-index: %s" next-index))
@@ -972,7 +973,7 @@
searching-match
(< goto-index goto-table-length))
(let ((goto-item (nth goto-index goto-table)))
- (let ((goto-item-symbol (list (car goto-item)))
+ (let ((goto-item-symbol (car goto-item))
(goto-item-next-index (car (cdr
goto-item))))
(parser-generator--debug
(message "goto-item: %s" goto-item)
diff --git a/test/parser-generator-lr-test.el b/test/parser-generator-lr-test.el
index f54d4d0..79b537a 100644
--- a/test/parser-generator-lr-test.el
+++ b/test/parser-generator-lr-test.el
@@ -65,13 +65,13 @@
(should
(equal
- '((0 ((S 1)))
- (1 ((a 2)))
- (2 ((S 3)))
- (3 ((a 4) (b 5)))
- (4 ((S 6)))
+ '((0 (((S) 1)))
+ (1 (((a) 2)))
+ (2 (((S) 3)))
+ (3 (((a) 4) ((b) 5)))
+ (4 (((S) 6)))
(5 nil)
- (6 ((a 4) (b 7)))
+ (6 (((a) 4) ((b) 7)))
(7 nil))
(parser-generator--hash-to-list
parser-generator-lr--goto-tables)))
@@ -140,13 +140,13 @@
(should
(equal
- '((0 ((S 1)))
- (1 ((a 2)))
- (2 ((S 3)))
- (3 ((a 4) (b 5)))
- (4 ((S 6)))
+ '((0 (((S) 1)))
+ (1 (((a) 2)))
+ (2 (((S) 3)))
+ (3 (((a) 4) ((b) 5)))
+ (4 (((S) 6)))
(5 nil)
- (6 ((a 4) (b 7)))
+ (6 (((a) 4) ((b) 7)))
(7 nil))
(parser-generator--hash-to-list
parser-generator-lr--goto-tables)))
@@ -182,13 +182,13 @@
(should
(equal
- '((0 ((S 1)))
- (1 (("a" 2)))
- (2 ((S 3)))
- (3 (("a" 4) ("b" 5)))
- (4 ((S 6)))
+ '((0 (((S) 1)))
+ (1 ((("a") 2)))
+ (2 (((S) 3)))
+ (3 ((("a") 4) (("b") 5)))
+ (4 (((S) 6)))
(5 nil)
- (6 (("a" 4) ("b" 7)))
+ (6 ((("a") 4) (("b") 7)))
(7 nil))
(parser-generator--hash-to-list parser-generator-lr--goto-tables)))
(message "Passed GOTO-tables with tokens as strings")
- [elpa] externals/parser-generator f4ba363 031/434: Improved README.md, (continued)
- [elpa] externals/parser-generator f4ba363 031/434: Improved README.md, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 744fdf6 174/434: Added TODO item, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator d360e8a 176/434: Added failing unit test for FIRST function with starting e-identifier, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator c1cdf20 197/434: Fixed issue with lex analyzer reached end of input, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 446cbe9 217/434: Refactored unit tests and separated k=2 case, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1818b9d 199/434: Added error in action-tables generation if no accept action is found, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 54857e4 220/434: Added failing unit test for translation via LRk, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a96ab3a 222/434: More debugging LR k > 1, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 783ea61 227/434: Added translation-symbol-table to incremental parser and translater, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 439d894 228/434: Passed all LR k=1 tests with more work on generalized solution, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 47fb35e 229/434: More work on a more generalized LR Parser,
ELPA Syncer <=
- [elpa] externals/parser-generator 9b6e076 231/434: Using lowercase epsilon for e-identifier comment, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 01173e2 230/434: Added EOF identifier, passing all unit tests, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator a76bb98 240/434: Added comments, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3807a72 237/434: Added failing unit test for LR-items k=2, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 40473d3 252/434: Fixed bug with data in full look-ahead in parse function, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator e1315c3 246/434: Updated so E-FREE-FIRST(x) only uses E-FREE-FIRST on first symbol, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 53ae129 245/434: Commented out useless code, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 24e96cb 261/434: Improved description of LRk, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 40907b7 257/434: white-space fixes, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 37d9fcb 260/434: Improved documentation, ELPA Syncer, 2021/11/29