<- Back to shtanton's homepage
aboutsummaryrefslogtreecommitdiff
path: root/main
Commit message (Collapse)AuthorAgeFilesLines
* Change output subex internals to allow structuresCharlie Stanton2024-04-075-21/+265
| | | | Also add substitute register syntactic sugar
* Add main testsCharlie Stanton2024-03-302-24/+80
|
* Completely remove the path spaceCharlie Stanton2024-03-293-84/+19
| | | | 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-194-62/+14
| | | | introduces unit testing
* Adds the json_array IO formatCharlie Stanton2023-05-121-3/+3
|
* Move reading and writing of tokens into a separate package to prepare for ↵Charlie Stanton2023-05-122-12/+15
| | | | other input and output formats
* Add labels and branches with the : and b commandsCharlie Stanton2023-04-263-2/+54
|
* Store stred programs as a flat list of commands with no nesting, using a new ↵Charlie Stanton2023-04-263-56/+114
| | | | jump command to simulate command blocks
* Add Y and Z registersCharlie Stanton2023-04-263-1/+33
|
* 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
* Now uses a buffered output for writing to improve performanceCharlie Stanton2023-04-251-1/+2
|
* 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-242-49/+38
| | | | | | own JSON parser and serialiser These changes improve performance
* All registers are now lists of atoms instead of lists of valuesCharlie Stanton2023-04-212-19/+30
| | | | 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
* Add a and A commands for global substitutionCharlie Stanton2023-04-212-4/+12
|
* Add ^xyz^ as a shorthand for ="xyz"= in subexCharlie Stanton2023-04-211-1/+1
|
* Adds some shorthands for substituting the beginning and end of the path registerCharlie Stanton2023-04-202-16/+53
|
* Replaces the inflexible delete all with separate DeleteValue and DeletePath ↵Charlie Stanton2023-04-202-4/+10
| | | | commands
* Add a shorthand for subexes that start and end with `, ~, = or "Charlie Stanton2023-04-201-1/+7
|
* Adds a substitute path command: SCharlie Stanton2023-04-203-52/+44
|
* Remove filters and various commands that are no longer wantedCharlie Stanton2023-04-206-720/+4
| | | | These have all been made redundant by the incredible substitute command
* Remove the need for a semicolon after each commandCharlie Stanton2023-04-202-11/+3
|
* Add commands to append to and swap with the path and X registersCharlie Stanton2023-04-202-1/+33
|
* Adds the noop command 'o'Charlie Stanton2023-04-191-0/+2
|
* Upgrades the substitute command to also act as a filterCharlie Stanton2023-04-192-4/+20
| | | | 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-192-28/+34
| | | | | | 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-194-5/+58
|
* Modify subex to take JSON split into "data"Charlie Stanton2023-02-221-13/+1
| | | | | | 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
* Move JSON serialising, deserialising and walking code into a separate packageCharlie Stanton2023-02-196-381/+80
|
* Removes obsolete subex code from main/main.goCharlie Stanton2023-02-191-580/+0
|
* Introduces subex processingCharlie Stanton2023-02-191-4/+5
| | | | Doesn't integrate it at all yet
* Adds the or operator |Charlie Stanton2022-09-211-2/+34
|
* Implements the first version of subexCharlie Stanton2022-09-211-0/+564
|
* Adds some new commandsCharlie Stanton2022-09-214-16/+309
|
* Adds new filtersCharlie Stanton2022-08-273-41/+87
| | | | | | | | - Begin terminals - End terminals - All terminals - Negate - AND
* Adds a bunch of new path pattern featuresCharlie Stanton2022-08-264-44/+101
| | | | | | - Bracketting in expressions - OR with | - Optional with ?
* Refactors some stuff and adds lexing and parsingCharlie Stanton2022-08-268-123/+593
|
* Initial commitCharlie Stanton2022-08-235-0/+588
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