[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item
From: |
Christian Johansson |
Subject: |
[elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item |
Date: |
Thu, 12 May 2022 13:28:17 -0400 (EDT) |
branch: externals/parser-generator
commit fd2f90dd81317ac40a8483c86904cd2cde1e2b94
Author: Christian Johansson <christian@cvj.se>
Commit: Christian Johansson <christian@cvj.se>
Added TODO-item
---
test/parser-generator-ll-test.el | 111 +++++++++++++++++++++++++++++++++++++++
1 file changed, 111 insertions(+)
diff --git a/test/parser-generator-ll-test.el b/test/parser-generator-ll-test.el
index 0ad363b268..f8b92b2562 100644
--- a/test/parser-generator-ll-test.el
+++ b/test/parser-generator-ll-test.el
@@ -374,7 +374,117 @@
)
)
(parser-generator-process-grammar)
+ (let ((tables (parser-generator-ll--generate-tables)))
+ (message "tables: %S" tables)
+ '(
+ (
+ ((E2) (")"))
+ (
+ ((")") (e) nil)
+ (("+") ("+" T E2) ((")") ("+")))
+ )
+ )
+ (
+ ((E) (")"))
+ (
+ (("(") (T E2) ((")") ("+")))
+ (("a") (T E2) ((")") ("+")))
+ )
+ )
+ (
+ ((F) ("*"))
+ (
+ (("(") ("(" E ")") ((")")))
+ (("a") ("a") nil)
+ )
+ )
+ (
+ ((T2) ("+"))
+ (
+ (("*") ("*" F T2) (("+") ("*")))
+ (("+") (e) nil)
+ )
+ )
+ (
+ ((T) ("+"))
+ (
+ (("(") (F T2) (("+") ("*")))
+ (("a") (F T2) (("+") ("*")))
+ )
+ )
+ (
+ ((E2) ($))
+ (
+ (($) (e) nil)
+ (("+") ("+" T E2) (($) ("+")))
+ )
+ )
+ (
+ ((E) ($))
+ (
+ (("(") (T E2) (($) ("+")))
+ (("a") (T E2) (($) ("+")))
+ )
+ )
+ ))
+
(parser-generator-ll-generate-parser-tables)
+ (message
+ "parser-generator-ll--parsing-table: %S"
+ (parser-generator--hash-to-list
+ parser-generator-ll--parsing-table
+ t))
+ ;; Local-follow-should exceed k
+ '(
+ ("((E) ($))"
+ (
+ ("(\"a\")" (reduce (((T) ($)) ((E2) ("+"))) 0))
+ ("(\"(\")" (reduce (((T) ($)) ((E2) ("+"))) 0))
+ )
+ )
+ ("((E2) ($))"
+ (
+ ("(\"+\")" (reduce ("+" ((T) ($)) ((E2) ("+"))) 1))
+ ("($)" (reduce (e) 2))
+ )
+ )
+ ("((T) (\"+\"))"
+ (
+ ("(\"a\")" (reduce (((F) ("+")) ((T2) ("*"))) 3))
+ ("(\"(\")" (reduce (((F) ("+")) ((T2) ("*"))) 3))
+ )
+ )
+ ("((T2) (\"+\"))"
+ (
+ ("(\"+\")" (reduce (e) 5))
+ ("(\"*\")" (reduce ("*" ((F) ("+")) ((T2) ("*"))) 4))
+ )
+ )
+ ("((F) (\"*\"))"
+ (
+ ("(\"a\")" (reduce ("a") 7))
+ ("(\"(\")" (reduce ("(" ((E) (")")) ")") 6))
+ )
+ )
+ ("((E) (\")\"))"
+ (
+ ("(\"a\")" (reduce (((T) (")")) ((E2) ("+"))) 0))
+ ("(\"(\")" (reduce (((T) (")")) ((E2) ("+"))) 0))
+ )
+ )
+ ("((E2) (\")\"))"
+ (
+ ("(\"+\")" (reduce ("+" ((T) (")")) ((E2) ("+"))) 1))
+ ("(\")\")" (reduce (e) 2))
+ )
+ )
+ ("\"a\""(("(\"a\")" pop)))
+ ("\"+\"" (("(\"+\")" pop)))
+ ("\"*\"" (("(\"*\")" pop)))
+ ("\")\"" (("(\")\")" pop)))
+ ("\"(\"" (("(\"(\")" pop)))
+ ("$" (("($)" accept)))
+ )
;; (message "parser-generator-ll--parsing-table: %S"
parser-generator-ll--parsing-table)
(setq
parser-generator-lex-analyzer--function
@@ -399,6 +509,7 @@
'(0 3 6 0 3 7 5 2 5) ;; Example is 1-indexed '(1 4 7 1 4 8 5 8 6 3 6 3)
(parser-generator-ll-parse)))
(message "Passed example 5.12 p. 346-347")
+ ;; TODO Make this pass
(parser-generator-set-eof-identifier '$)
(parser-generator-set-e-identifier 'e)
- [elpa] externals/parser-generator 7d87a2d154 79/82: Implemented exported LL(k) and LL(1) parser, (continued)
- [elpa] externals/parser-generator 7d87a2d154 79/82: Implemented exported LL(k) and LL(1) parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 75323b10e5 81/82: Merge branch 'feature/llk-parser', Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator db91a5f203 82/82: Removed unused function, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 315e40eff8 10/82: More work on LL table generation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 34ab0f1718 21/82: More various tweaks, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 064bd259ff 26/82: Passing LLk validation tests, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator f0de6698b9 29/82: Added todo item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 97919972a7 35/82: Improved debug message, added TODO item, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator e55a3f8a37 38/82: Updated TODO items, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 7ee5504003 45/82: More work on LLk parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator fd2f90dd81 47/82: Added TODO-item,
Christian Johansson <=
- [elpa] externals/parser-generator b41b2dbffe 68/82: Removed debug output, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 566228f16c 71/82: More work on LLk translation, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 234a6ca2db 70/82: More work on LLk SDT, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator ff261d9a4e 75/82: Using stack for symbols value in SDT, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator de7c45c511 78/82: Started with LL-export functions, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5be162966b 80/82: Fixed byte-compilation issue in exported LL parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 2869417d78 31/82: Made new helper functions to make LL-parsing easier, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 23805731c1 34/82: More work on LL-parser, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 8cc2a5b315 44/82: More work on LLk parsing, Christian Johansson, 2022/05/12
- [elpa] externals/parser-generator 5aeee49bd0 48/82: Added another todo note, Christian Johansson, 2022/05/12