[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator 40907b7 257/434: white-space fixes
From: |
ELPA Syncer |
Subject: |
[elpa] externals/parser-generator 40907b7 257/434: white-space fixes |
Date: |
Mon, 29 Nov 2021 15:59:52 -0500 (EST) |
branch: externals/parser-generator
commit 40907b7aed3c66bcf1b57cfc9f541f98fcbc3fda
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
white-space fixes
---
parser-generator.el | 69 ++++++++++++++++++++++++++++++++++---------
test/parser-generator-test.el | 2 +-
2 files changed, 56 insertions(+), 15 deletions(-)
diff --git a/parser-generator.el b/parser-generator.el
index bffb37b..62a9f3b 100644
--- a/parser-generator.el
+++ b/parser-generator.el
@@ -1272,7 +1272,9 @@
(while stack
(let ((stack-topmost (pop stack)))
(parser-generator--debug
- (message "stack-topmost: %s" stack-topmost))
+ (message
+ "stack-topmost: %s"
+ stack-topmost))
(let ((input-tape-index (car stack-topmost))
(first-length (car (cdr stack-topmost)))
(first (car (cdr (cdr stack-topmost))))
@@ -1283,7 +1285,10 @@
(< first-length k))
(let ((symbol (nth input-tape-index input-tape)))
(parser-generator--debug
- (message "symbol index: %s from %s is: %s" input-tape-index
input-tape symbol))
+ (message
+ "symbol index: %s from %s is: %s"
+ input-tape-index
+ input-tape symbol))
(cond
((parser-generator--valid-e-p symbol)
@@ -1307,13 +1312,26 @@
(parser-generator--debug
(message "non-terminal symbol: %s" symbol))
(let ((symbol-f-set))
+
+ ;; Load the pre-generated F-set
+ ;; if it's the first symbol and we are using
+ ;; E-FREE-FIRST then use separate hash-table
(if (and
disallow-e-first
(= first-length 0))
- (setq symbol-f-set (nth 1 (gethash symbol
parser-generator--f-free-sets)))
- (setq symbol-f-set (nth 1 (gethash symbol
parser-generator--f-sets))))
+ (setq
+ symbol-f-set
+ (nth 1
+ (gethash
+ symbol
+ parser-generator--f-free-sets)))
+ (setq
+ symbol-f-set
+ (nth 1
+ (gethash symbol parser-generator--f-sets))))
(parser-generator--debug
(message "symbol-f-set: %s" symbol-f-set))
+
(if (and
(not symbol-f-set)
disallow-e-first
@@ -1321,7 +1339,8 @@
(progn
(parser-generator--debug
(message
- "stopped looking since non-terminal starts with
e-identifier: %s" symbol-f-set))
+ "stopped looking since non-terminal starts with
e-identifier: %s"
+ symbol-f-set))
(setq keep-looking nil))
;; Handle this scenario here were a non-terminal can
result in different FIRST sets
@@ -1335,14 +1354,27 @@
(alternative-tape-index (1+
input-tape-index)))
(parser-generator--debug
(message "alternative-first: %s"
alternative-first))
- (push `(,alternative-tape-index
,alternative-first-length ,alternative-first) stack)))
- (setq symbol-f-set-index (1+
symbol-f-set-index)))))
+ (push
+ `(
+ ,alternative-tape-index
+ ,alternative-first-length
+ ,alternative-first)
+ stack)))
+ (setq
+ symbol-f-set-index
+ (1+ symbol-f-set-index)))))
(parser-generator--debug
(message "main-symbol-f-set: %s" (car symbol-f-set)))
- (setq first-length (+ first-length (length (car
symbol-f-set))))
- (setq first (append first (car symbol-f-set))))))))
- (setq input-tape-index (1+ input-tape-index)))
+ (setq
+ first-length
+ (+ first-length (length (car symbol-f-set))))
+ (setq
+ first
+ (append first (car symbol-f-set))))))))
+ (setq
+ input-tape-index
+ (1+ input-tape-index)))
(when (> first-length 0)
;; If length exceeds k, strip trailing symbols
@@ -1364,11 +1396,20 @@
;; (message "first-after-fill: %s" first)
)
(parser-generator--debug
- (message "push to first-list: %s to %s" first first-list))
- (push first first-list))))))
+ (message
+ "push to first-list: %s to %s"
+ first
+ first-list))
+ (push
+ first
+ first-list))))))
- (setq first-list (parser-generator--distinct first-list))
- (setq first-list (sort first-list 'parser-generator--sort-list))
+ (setq
+ first-list
+ (parser-generator--distinct first-list))
+ (setq
+ first-list
+ (sort first-list 'parser-generator--sort-list))
first-list)))
;; Definition at p. 343
diff --git a/test/parser-generator-test.el b/test/parser-generator-test.el
index cdd5a0a..410b39a 100644
--- a/test/parser-generator-test.el
+++ b/test/parser-generator-test.el
@@ -790,8 +790,8 @@
(parser-generator-test--valid-terminal-p)
;; Algorithms
- (parser-generator-test--e-free-first)
(parser-generator-test--first)
+ (parser-generator-test--e-free-first)
(parser-generator-test--follow))
- [elpa] externals/parser-generator 439d894 228/434: Passed all LR k=1 tests with more work on generalized solution, (continued)
- [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, 2021/11/29
- [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 <=
- [elpa] externals/parser-generator 37d9fcb 260/434: Improved documentation, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 08b696f 267/434: Fixed typo in doc about token, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator b80fc6e 264/434: Updated README, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 1b9d8db 268/434: Improved wording about lexical analysis, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 3615fad 276/434: Fixed issue with lex-analyzer in LR(0) Parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 732cd78 282/434: Constants and variables are exported correctly, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator cbf9e07 278/434: Added documentation about LR(0) Parser, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator af71d8b 285/434: Lex-analyzer is now exported, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator 500d082 284/434: Added Lex-Analyzer Rest Function to export, ELPA Syncer, 2021/11/29
- [elpa] externals/parser-generator cf42e67 288/434: Exported parser passes test, ELPA Syncer, 2021/11/29