Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Completely rewrites the JSON parser to make more extensive use of slices and ↵ | Charlie Stanton | 2023-04-25 | 2 | -137/+317 | |
| | | | | decrease the number mallocs | |||||
* | Separates JSON parsing code into its own file | Charlie Stanton | 2023-04-25 | 2 | -278/+285 | |
| | ||||||
* | Refactor Atom and Value code out of walk.go and into separate files | Charlie Stanton | 2023-04-25 | 3 | -174/+185 | |
| | ||||||
* | Fixes more README formatting | Charlie Stanton | 2023-04-25 | 1 | -2/+2 | |
| | ||||||
* | Fix README markdown formatting | Charlie Stanton | 2023-04-25 | 1 | -6/+6 | |
| | ||||||
* | Adds a draft README | Charlie Stanton | 2023-04-25 | 1 | -0/+166 | |
| | ||||||
* | Make state.path immutable so it can be a reference instead of copied, ↵ | Charlie Stanton | 2023-04-25 | 2 | -12/+1 | |
| | | | | improving performance | |||||
* | Now uses a buffered output for writing to improve performance | Charlie Stanton | 2023-04-25 | 2 | -20/+24 | |
| | ||||||
* | Improves performance of pruneStates by modifying states in place | Charlie Stanton | 2023-04-25 | 1 | -5/+7 | |
| | ||||||
* | Refines storing and loading to use ids generated when the subex is compiled ↵ | Charlie Stanton | 2023-04-25 | 5 | -70/+120 | |
| | | | | instead of the runes | |||||
* | Simplify the OutputStack, improves performance by simplifying from an ↵ | Charlie Stanton | 2023-04-24 | 1 | -25/+21 | |
| | | | | interface to a single struct | |||||
* | Adds a check to end subex execution early if no viable branches remain | Charlie Stanton | 2023-04-24 | 1 | -0/+3 | |
| | ||||||
* | Improves performance of reading JSON strings | Charlie Stanton | 2023-04-24 | 1 | -42/+39 | |
| | ||||||
* | WalkItems are now made of Atoms instead of WalkValues, and I have rolled my ↵ | Charlie Stanton | 2023-04-24 | 3 | -295/+417 | |
| | | | | | | own JSON parser and serialiser These changes improve performance | |||||
* | Remove redundant subex/main.main function | Charlie Stanton | 2023-04-24 | 1 | -49/+0 | |
| | ||||||
* | Replaces the interfaces implementation of Atom with a tagged union based ↵ | Charlie Stanton | 2023-04-21 | 5 | -82/+157 | |
| | | | | implementation | |||||
* | Replace implementation of Atomise to improve performance | Charlie Stanton | 2023-04-21 | 1 | -16/+29 | |
| | ||||||
* | All registers are now lists of atoms instead of lists of values | Charlie Stanton | 2023-04-21 | 2 | -19/+30 | |
| | | | | This is to reduce the amount of translating between them that needs to be done | |||||
* | Improves performance by being more explicit about memory allocation in walk.go | Charlie Stanton | 2023-04-21 | 1 | -29/+32 | |
| | ||||||
* | Changes the implementation of Atomise and Compound to no longer use goroutines | Charlie Stanton | 2023-04-21 | 4 | -123/+80 | |
| | | | | This results in a massive performance boost, ~4x speedup | |||||
* | Add :xyz: replacement syntax that removes whatever is before it and inserts ↵ | Charlie Stanton | 2023-04-21 | 3 | -5/+41 | |
| | | | | whatever is inside it | |||||
* | Adds String methods to all SubexASTs for debugging purposes | Charlie Stanton | 2023-04-21 | 1 | -0/+51 | |
| | ||||||
* | Add a and A commands for global substitution | Charlie Stanton | 2023-04-21 | 2 | -4/+12 | |
| | ||||||
* | Radically changes precedences so concatenation is now the strongest | Charlie Stanton | 2023-04-21 | 1 | -13/+13 | |
| | | | | We'll see if this sticks | |||||
* | Add ^xyz^ as a shorthand for ="xyz"= in subex | Charlie Stanton | 2023-04-21 | 2 | -8/+19 | |
| | ||||||
* | Add subex syntax to copy across booleans, numbers, strings and values | Charlie Stanton | 2023-04-21 | 3 | -1/+137 | |
| | ||||||
* | Adds some shorthands for substituting the beginning and end of the path register | Charlie Stanton | 2023-04-20 | 2 | -16/+53 | |
| | ||||||
* | Properly exports all SubexASTs | Charlie Stanton | 2023-04-20 | 2 | -59/+59 | |
| | ||||||
* | Replaces the inflexible delete all with separate DeleteValue and DeletePath ↵ | Charlie Stanton | 2023-04-20 | 2 | -4/+10 | |
| | | | | commands | |||||
* | Add ~xyz~ shorthand for =`xyz`= | Charlie Stanton | 2023-04-20 | 1 | -1/+10 | |
| | ||||||
* | Add a shorthand for subexes that start and end with `, ~, = or " | Charlie Stanton | 2023-04-20 | 1 | -1/+7 | |
| | ||||||
* | Fix bug that would crash if given an empty subex | Charlie Stanton | 2023-04-20 | 1 | -1/+5 | |
| | ||||||
* | Remove the @, ~ and # syntax for terminal literals | Charlie Stanton | 2023-04-20 | 1 | -30/+0 | |
| | ||||||
* | Replaces the start and end terminals of strings with a single terminal, with ↵ | Charlie Stanton | 2023-04-20 | 2 | -16/+17 | |
| | | | | " as a literal for it | |||||
* | Change output syntax to =xyz= instead of "xyz" | Charlie Stanton | 2023-04-20 | 1 | -3/+3 | |
| | | | | This frees up " to be used for a string terminal literal | |||||
* | Adds a substitute path command: S | Charlie Stanton | 2023-04-20 | 3 | -52/+44 | |
| | ||||||
* | Adds non-string literal syntax to subex | Charlie Stanton | 2023-04-20 | 2 | -0/+89 | |
| | ||||||
* | Remove filters and various commands that are no longer wanted | Charlie Stanton | 2023-04-20 | 6 | -720/+4 | |
| | | | | These have all been made redundant by the incredible substitute command | |||||
* | Remove the need for a semicolon after each command | Charlie Stanton | 2023-04-20 | 2 | -11/+3 | |
| | ||||||
* | Add commands to append to and swap with the path and X registers | Charlie Stanton | 2023-04-20 | 2 | -1/+33 | |
| | ||||||
* | Adds the noop command 'o' | Charlie Stanton | 2023-04-19 | 1 | -0/+2 | |
| | ||||||
* | Adds casting all other types to strings by simply putting them in a string | Charlie Stanton | 2023-04-19 | 1 | -0/+8 | |
| | ||||||
* | Upgrades the substitute command to also act as a filter | Charlie Stanton | 2023-04-19 | 2 | -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 register | Charlie Stanton | 2023-04-19 | 1 | -1/+17 | |
| | ||||||
* | Replaces the workspace with 3 distinct registers: path, value and xreg | Charlie Stanton | 2023-04-19 | 3 | -28/+65 | |
| | | | | | | 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 nothing | Charlie Stanton | 2023-04-19 | 5 | -5/+66 | |
| | ||||||
* | Changes the parsing API for subex to be more suitable to being part of a ↵ | Charlie Stanton | 2023-04-19 | 3 | -54/+60 | |
| | | | | larger program | |||||
* | Adds a dummy method to atom so the compiler checks that only valid atoms are ↵ | Charlie Stanton | 2023-04-19 | 2 | -11/+27 | |
| | | | | allowed | |||||
* | Adds the NOT operator | Charlie Stanton | 2023-04-19 | 3 | -0/+41 | |
| | ||||||
* | Adds the reciprocal operator | Charlie Stanton | 2023-04-19 | 3 | -0/+51 | |
| |