<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/subex
Commit message (Collapse)AuthorAgeFilesLines
...
* Replaces the parent/child implementation for operators like store and sum ↵Charlie Stanton2023-04-193-168/+119
| | | | | | | | | with an output stack Previously a store state was a parent of another state machine that it would run inside of itself in order to capture the output to be stored. This was limited as the greedyness of the child would not be transferred to the parent. The new implementation gives states more control over the output state and turns it into a stack. By pushing to the stack before the child and popping afterwards, all of the child's output can be retrieved while the child is very much part of the complete machine.
* Adds casting strings to numbers in the sum operatorCharlie Stanton2023-04-192-13/+36
|
* Creates functions for compounding atoms back into values in the walk module ↵Charlie Stanton2023-04-181-73/+19
| | | | and uses them in subex/main
* Refactors store and sum states to use the new SubexParentState for states ↵Charlie Stanton2023-04-181-53/+104
| | | | that run machines within themselves
* Fixes bug where stores wouldn't work inside other stores sometimesCharlie Stanton2023-04-181-1/+1
| | | | Something like $a($b(test)..."$b") wouldn't work as expected, this works now
* Adds the sum operatorCharlie Stanton2023-04-183-9/+78
| | | | Currently doesn't parse strings as each atom is considered independantly. Instead individual characters in strings can be cast
* Removes try, maybe, maximise and minimiseCharlie Stanton2023-04-182-63/+1
| | | | These are no longer necessary and have been replaced by repeat
* Adds the repeat construct, obsoleting maximise, minimise, try, maybe and ↵Charlie Stanton2023-04-183-12/+151
| | | | | | probably more The repeat construct repeats a subex a number of times, this number is based on a provided list which is ordered by priority and can be unbounded.
* Fix bug where SubexStoreState is sometimes not a pointerCharlie Stanton2023-03-151-1/+1
|
* Renames TransducerOutput to OutputContent (and related types) and moves into ↵Charlie Stanton2023-03-054-29/+28
| | | | main/subexstate.go
* Changes the slot map so only runes can be used as slotsCharlie Stanton2023-03-052-7/+5
|
* Renames walk.Datum to walk.AtomCharlie Stanton2023-03-054-89/+105
|
* Refactors out terminator literal stuff into a separate parsing functionCharlie Stanton2023-03-051-117/+37
|
* Adds syntax to recognise and deal with starting and ending arrays, maps and ↵Charlie Stanton2023-02-261-0/+123
| | | | strings
* Replace append with walk.ConcatData in many places to fix bug to do with ↵Charlie Stanton2023-02-262-7/+7
| | | | | | semantics of append When doing append, be very careful as it does make changes in place to the underlying array of the slice which may affect other slices
* Converts subex output back into WalkValues and prints for easier debuggingCharlie Stanton2023-02-261-3/+60
|
* Modify subex to take JSON split into "data"Charlie Stanton2023-02-224-85/+137
| | | | | | Currently no way to reassemble the data on the other side Much of the potential data cannot be interacted with meaningfully, only the string functionality is implemented Should rename data to something else
* Introduces subex processingCharlie Stanton2023-02-195-0/+631
Doesn't integrate it at all yet