<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/main/command.go
Commit message (Collapse)AuthorAgeFilesLines
* Fix FullMerge command so it can work on non-structure valuesCharlie Stanton2024-05-021-1/+5
|
* Add full merge commandCharlie Stanton2024-04-231-2/+31
|
* Fix bug where next command doesn't consume the inputCharlie Stanton2024-04-211-0/+2
|
* Modify merge to no longer read a new valueCharlie Stanton2024-04-211-16/+8
| | | | Now just merges the last two values in the space
* Add substitute next commandsCharlie Stanton2024-04-211-3/+70
|
* Add merge commandCharlie Stanton2024-04-071-0/+34
|
* Change output subex internals to allow structuresCharlie Stanton2024-04-071-0/+144
| | | | Also add substitute register syntactic sugar
* Completely remove the path spaceCharlie Stanton2024-03-291-57/+9
| | | | The new design uses deeply nested values in the value space instead.
* Huge refactor to a more value based system, doing away with terminals. Also ↵Charlie Stanton2023-07-191-6/+6
| | | | introduces unit testing
* Move reading and writing of tokens into a separate package to prepare for ↵Charlie Stanton2023-05-121-4/+5
| | | | other input and output formats
* Add labels and branches with the : and b commandsCharlie Stanton2023-04-261-0/+12
|
* Store stred programs as a flat list of commands with no nesting, using a new ↵Charlie Stanton2023-04-261-17/+83
| | | | jump command to simulate command blocks
* Add Y and Z registersCharlie Stanton2023-04-261-0/+24
|
* Completely rewrites the JSON parser to make more extensive use of slices and ↵Charlie Stanton2023-04-251-1/+1
| | | | decrease the number mallocs
* Make state.path immutable so it can be a reference instead of copied, ↵Charlie Stanton2023-04-251-1/+1
| | | | improving performance
* Refines storing and loading to use ids generated when the subex is compiled ↵Charlie Stanton2023-04-251-3/+3
| | | | instead of the runes
* WalkItems are now made of Atoms instead of WalkValues, and I have rolled my ↵Charlie Stanton2023-04-241-16/+13
| | | | | | own JSON parser and serialiser These changes improve performance
* All registers are now lists of atoms instead of lists of valuesCharlie Stanton2023-04-211-14/+17
| | | | This is to reduce the amount of translating between them that needs to be done
* Changes the implementation of Atomise and Compound to no longer use goroutinesCharlie Stanton2023-04-211-10/+3
| | | | This results in a massive performance boost, ~4x speedup
* Replaces the inflexible delete all with separate DeleteValue and DeletePath ↵Charlie Stanton2023-04-201-3/+7
| | | | commands
* Adds a substitute path command: SCharlie Stanton2023-04-201-11/+32
|
* Remove filters and various commands that are no longer wantedCharlie Stanton2023-04-201-60/+0
| | | | These have all been made redundant by the incredible substitute command
* Add commands to append to and swap with the path and X registersCharlie Stanton2023-04-201-1/+25
|
* Upgrades the substitute command to also act as a filterCharlie Stanton2023-04-191-3/+8
| | | | Substitute now captures the command after it and only runs it if the substitution is a success
* Implements subex substitutions for the value registerCharlie Stanton2023-04-191-1/+17
|
* Replaces the workspace with 3 distinct registers: path, value and xregCharlie Stanton2023-04-191-24/+25
| | | | | | workspace contained a list of WalkItems, pairs of paths and values. The new system can still hold a list of values but only one path, which is in itself a list of values. The X register is miscellaneous. All 3 hold a list of values (which are JSON tokens)
* Adds parsing substitute commands, though executing them currently does nothingCharlie Stanton2023-04-191-0/+8
|
* Move JSON serialising, deserialising and walking code into a separate packageCharlie Stanton2023-02-191-18/+22
|
* Adds some new commandsCharlie Stanton2022-09-211-4/+16
|
* Refactors some stuff and adds lexing and parsingCharlie Stanton2022-08-261-15/+69
|
* Initial commitCharlie Stanton2022-08-231-0/+38
No parsing yet, but the execution is not bad Commands: - Print value - Toggle terminal (switch between array and map) - Filter command Filters: - Path filter Path filters are compiled from a regex like AST