Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | Changes parser so the storing operator is postfix instead of prefix | Charlie Stanton | 2023-04-19 | 1 | -14/+10 | |
| | ||||||
* | Replaces the parent/child implementation for operators like store and sum ↵ | Charlie Stanton | 2023-04-19 | 3 | -168/+119 | |
| | | | | | | | | | 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 casting strings to numbers in the sum operator | Charlie Stanton | 2023-04-19 | 3 | -31/+109 | |
| | ||||||
* | Creates functions for compounding atoms back into values in the walk module ↵ | Charlie Stanton | 2023-04-18 | 2 | -73/+98 | |
| | | | | and uses them in subex/main | |||||
* | Refactors store and sum states to use the new SubexParentState for states ↵ | Charlie Stanton | 2023-04-18 | 1 | -53/+104 | |
| | | | | that run machines within themselves | |||||
* | Fixes bug where stores wouldn't work inside other stores sometimes | Charlie Stanton | 2023-04-18 | 1 | -1/+1 | |
| | | | | Something like $a($b(test)..."$b") wouldn't work as expected, this works now | |||||
* | Adds the sum operator | Charlie Stanton | 2023-04-18 | 3 | -9/+78 | |
| | | | | Currently doesn't parse strings as each atom is considered independantly. Instead individual characters in strings can be cast | |||||
* | Removes try, maybe, maximise and minimise | Charlie Stanton | 2023-04-18 | 2 | -63/+1 | |
| | | | | These are no longer necessary and have been replaced by repeat | |||||
* | Adds the repeat construct, obsoleting maximise, minimise, try, maybe and ↵ | Charlie Stanton | 2023-04-18 | 3 | -12/+151 | |
| | | | | | | 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. | |||||
* | Fix bug where SubexStoreState is sometimes not a pointer | Charlie Stanton | 2023-03-15 | 1 | -1/+1 | |
| | ||||||
* | Fixes strings being wrapped in quotes twice when outputting | Charlie Stanton | 2023-03-15 | 1 | -2/+2 | |
| | ||||||
* | Renames TransducerOutput to OutputContent (and related types) and moves into ↵ | Charlie Stanton | 2023-03-05 | 4 | -29/+28 | |
| | | | | main/subexstate.go | |||||
* | Changes the slot map so only runes can be used as slots | Charlie Stanton | 2023-03-05 | 2 | -7/+5 | |
| | ||||||
* | Renames walk.Datum to walk.Atom | Charlie Stanton | 2023-03-05 | 5 | -98/+114 | |
| | ||||||
* | Refactors out terminator literal stuff into a separate parsing function | Charlie Stanton | 2023-03-05 | 1 | -117/+37 | |
| | ||||||
* | Adds syntax to recognise and deal with starting and ending arrays, maps and ↵ | Charlie Stanton | 2023-02-26 | 1 | -0/+123 | |
| | | | | strings | |||||
* | Replace append with walk.ConcatData in many places to fix bug to do with ↵ | Charlie Stanton | 2023-02-26 | 3 | -7/+11 | |
| | | | | | | semantics of append When doing append, be very careful as it does make changes in place to the underlying array of the slice which may affect other slices | |||||
* | Converts subex output back into WalkValues and prints for easier debugging | Charlie Stanton | 2023-02-26 | 2 | -3/+92 | |
| | ||||||
* | Modify subex to take JSON split into "data" | Charlie Stanton | 2023-02-22 | 6 | -100/+167 | |
| | | | | | | 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 package | Charlie Stanton | 2023-02-19 | 7 | -381/+396 | |
| | ||||||
* | Removes obsolete subex code from main/main.go | Charlie Stanton | 2023-02-19 | 1 | -580/+0 | |
| | ||||||
* | Introduces subex processing | Charlie Stanton | 2023-02-19 | 6 | -4/+636 | |
| | | | | Doesn't integrate it at all yet | |||||
* | Adds the or operator | | Charlie Stanton | 2022-09-21 | 1 | -2/+34 | |
| | ||||||
* | Implements the first version of subex | Charlie Stanton | 2022-09-21 | 1 | -0/+564 | |
| | ||||||
* | Adds some new commands | Charlie Stanton | 2022-09-21 | 4 | -16/+309 | |
| | ||||||
* | Adds new filters | Charlie Stanton | 2022-08-27 | 3 | -41/+87 | |
| | | | | | | | | - Begin terminals - End terminals - All terminals - Negate - AND | |||||
* | Adds a bunch of new path pattern features | Charlie Stanton | 2022-08-26 | 4 | -44/+101 | |
| | | | | | | - Bracketting in expressions - OR with | - Optional with ? | |||||
* | Refactors some stuff and adds lexing and parsing | Charlie Stanton | 2022-08-26 | 8 | -123/+593 | |
| |