- 26 Jun, 2018 4 commits
-
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
This allows a more flexible implementation for the functor-expression parser and other conveniences. This commit doesn't remove the old types but temporarily adds new ones with a different name. This is to simplify the transition to the new types.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
-
- 25 Jun, 2018 4 commits
-
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
This means that "names" (e.g node labels for FixedProduct) are now parsed with the `lexeme` combinator (which consumes trailing whitespace).
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
This improves parser errors by a wide margin, but requires all functor expressions to be distinguishable with one token look ahead. This is currently the case, but we may need to reconsider this issue.
-
- 19 Jun, 2018 2 commits
-
-
Hans-Peter Deifel authored
This should reduce the build time in CI drastically.
-
Hans-Peter Deifel authored
-
- 18 Jun, 2018 1 commit
-
-
Hans-Peter Deifel authored
Switches from X^G to G^X. The former would have been the syntax for a mapping from the monoid, not into the monoid...
-
- 12 Jun, 2018 7 commits
-
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
Unfortunately, moving the GHC-extension declaration to the cabal file broke our doctests...
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
We now try to parse each functor and backtrack if necessary. This allows individual functors to begin with the same symbol.
-
Hans-Peter Deifel authored
I use some extensions so often that it's tedious to put them into each individual file.
-
Hans-Peter Deifel authored
-
- 11 Jun, 2018 1 commit
-
-
Hans-Peter Deifel authored
This switches the parser for functor expressions (not yet morphisms) from a YAML based one to a custom one, making those expressions much more readable and giving individual functors greater flexibility to define their own syntax.
-
- 05 Jun, 2018 9 commits
-
-
Hans-Peter Deifel authored
processQueue was missing a 'while' loop around everything. With this, the algorithm computes the correct result for example/example.yaml.
-
Hans-Peter Deifel authored
Yeah... leaving FIXMEs in the code and wondering why it doesn't work.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
The refinement algorithm is now complete, but (of course) sill buggy.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
This will be used to return the final result of the overall algorithm.
-
Hans-Peter Deifel authored
They are needed by both 'Partition' and 'RefinablePartition' types.
-
Hans-Peter Deifel authored
This represents an immutable partition of states into blocks.
-
- 04 Jun, 2018 11 commits
-
-
Hans-Peter Deifel authored
This is the function that threads each queue element through split until the queue is empty.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
Everything should be Queue-ready now.
-
Hans-Peter Deifel authored
This adds queue awareness to the initialization phase of the algorithm and adds all initial sorted blocks into a global queue.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
This check was previously done in the lumping algorithm and the BlockQueue implementation itself would just silently fail if the check wasn't done. Now it's moved to a more appropriate place.
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
-
Hans-Peter Deifel authored
A queue for sorted blocks that has O(1) membership test, enqueue and dequeue.
-
Hans-Peter Deifel authored
The type `h` was only needed to make instance resolution unambiguous, but type application can do that, too.
-
- 03 Jun, 2018 1 commit
-
-
Hans-Peter Deifel authored
This completes phase 3 of split(). What's left is the queue handling and actually testing the code (which isn't possible until the queue is implemented).
-