<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/subex/subexast.go
Commit message (Collapse)AuthorAgeFilesLines
* Huge refactor to a more value based system, doing away with terminals. Also ↵Charlie Stanton2023-07-191-110/+186
| | | | introduces unit testing
* Update subex , literal to no longer include terminalsCharlie Stanton2023-04-261-3/+3
|
* Refines storing and loading to use ids generated when the subex is compiled ↵Charlie Stanton2023-04-251-45/+68
| | | | instead of the runes
* Replaces the interfaces implementation of Atom with a tagged union based ↵Charlie Stanton2023-04-211-2/+2
| | | | implementation
* Add :xyz: replacement syntax that removes whatever is before it and inserts ↵Charlie Stanton2023-04-211-0/+13
| | | | whatever is inside it
* Adds String methods to all SubexASTs for debugging purposesCharlie Stanton2023-04-211-0/+51
|
* Add subex syntax to copy across booleans, numbers, strings and valuesCharlie Stanton2023-04-211-0/+49
|
* Properly exports all SubexASTsCharlie Stanton2023-04-201-52/+52
|
* Adds non-string literal syntax to subexCharlie Stanton2023-04-201-0/+6
|
* Adds the NOT operatorCharlie Stanton2023-04-191-0/+15
|
* Adds the reciprocal operatorCharlie Stanton2023-04-191-0/+15
|
* Adds the negate operatorCharlie Stanton2023-04-191-0/+14
| | | | Negates all of the numbers produced by its content subex
* Combines sum and product into an arithmetic state that contains a function ↵Charlie Stanton2023-04-191-2/+4
| | | | | | for it's operation Creates arithmetic.go which will house all of these functions
* Adds product/and operatorCharlie Stanton2023-04-191-4/+16
|
* Replaces a few instances of SubexStates with pointers as they should beCharlie Stanton2023-04-191-1/+1
| | | | This potentially avoids bugs/errors and also improves the performance of pruning
* Replaces the parent/child implementation for operators like store and sum ↵Charlie Stanton2023-04-191-7/+9
| | | | | | | | | 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 the sum operatorCharlie Stanton2023-04-181-0/+12
| | | | 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-181-54/+0
| | | | These are no longer necessary and have been replaced by repeat
* Adds the repeat construct, obsoleting maximise, minimise, try, maybe and ↵Charlie Stanton2023-04-181-11/+67
| | | | | | 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.
* Renames TransducerOutput to OutputContent (and related types) and moves into ↵Charlie Stanton2023-03-051-1/+1
| | | | main/subexstate.go
* Renames walk.Datum to walk.AtomCharlie Stanton2023-03-051-6/+21
|
* Modify subex to take JSON split into "data"Charlie Stanton2023-02-221-3/+6
| | | | | | 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-191-0/+163
Doesn't integrate it at all yet