summaryrefslogtreecommitdiff
path: root/chain/src/plan.org
diff options
context:
space:
mode:
authorJSDurand <mmemmew@gmail.com>2023-02-27 12:36:41 +0800
committerJSDurand <mmemmew@gmail.com>2023-02-27 12:36:41 +0800
commitfbaa420ed550e9c3e7cdc09d4a8ec22bfbd782a6 (patch)
treefad9722825bb3fa796dd52c3fd4a8bf46b958cf9 /chain/src/plan.org
parentafad02bdff111ecccb0077b9c989e869723c231c (diff)
before a major refactor
I decide to adopt a new approach of recording and updating item derivation forests. Since this affects a lot of things, I decide to commit before the refactor, so that I can create a branch for that refactor.
Diffstat (limited to 'chain/src/plan.org')
-rw-r--r--chain/src/plan.org16
1 files changed, 7 insertions, 9 deletions
diff --git a/chain/src/plan.org b/chain/src/plan.org
index 02e14c9..520ba8f 100644
--- a/chain/src/plan.org
+++ b/chain/src/plan.org
@@ -2,18 +2,17 @@
#+AUTHOR: Durand
#+DATE: <2022-11-18 Ven 19:57>
-* Things to do [6/9]
+* Things to do [9/9]
- [X] Implement builders for graphs
- [X] Find sets of the first terminals for each non-terminal, in the
grammar module.
-- [-] Collect various grammars for testing. [5/6]
+- [X] Collect various grammars for testing. [5/5]
+ [X] One simple grammar
+ [X] Notes
+ [X] Parentheses
+ [X] Pathelogical left-recursive
+ [X] Pathelogical right-recursive
- + [ ] Pathelogically ambiguous
# More should be added
- [X] NFA [4/4]
+ [X] Add regular expression into NFA.
@@ -79,14 +78,13 @@
lack of this step might be the root cause of the failure of the
previous version of this project.
+ [X] Test atoms
-- [-] Implement semiring. [2/5]
+- [X] Implement semiring. [4/4]
+ [X] Define the trait.
+ [X] Define items and rules for the chain-rule parser, as an
item-based description.
- + [ ] Implement the boolean semiring.
- + [ ] Implement the natural number semiring.
- + [ ] Implement the free semiring.
-- [-] Implement languages. [5/6]
+ + [X] Implement the natural number semiring.
+ + [X] Implement the free semiring.
+- [X] Implement languages. [6/6]
+ [X] First define a trait with the expected behaviours.
+ [X] Then implement them as doubly labelled graphs.
+ [X] Each edge in the chain-rule machine needs to be labelled also
@@ -94,7 +92,7 @@
of those "plugs"!
+ [X] Then implement finding derivatives by use of the chain rule.
+ [X] Handle Semirings
- + [-] Tests
+ + [X] Tests
- [X] Miscellaneous [1/1]
+ [X] Implement a function for NFA that checks if a given predicate
is satisfied for each edge label.