Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | Fixes internal error messages for arithmetic functions | Charlie Stanton | 2023-04-19 | 1 | -4/+4 |
| | |||||
* | Adds the negate operator | Charlie Stanton | 2023-04-19 | 3 | -0/+49 |
| | | | | Negates all of the numbers produced by its content subex | ||||
* | Combines sum and product into an arithmetic state that contains a function ↵ | Charlie Stanton | 2023-04-19 | 3 | -115/+101 |
| | | | | | | for it's operation Creates arithmetic.go which will house all of these functions | ||||
* | Adds product/and operator | Charlie Stanton | 2023-04-19 | 3 | -22/+87 |
| | |||||
* | Adjusts the sum operator to act as boolean OR when all inputs are booleans | Charlie Stanton | 2023-04-19 | 1 | -5/+15 |
| | |||||
* | Replaces a few instances of SubexStates with pointers as they should be | Charlie Stanton | 2023-04-19 | 2 | -2/+2 |
| | | | | This potentially avoids bugs/errors and also improves the performance of pruning |