<- Back to shtanton's homepage
summaryrefslogtreecommitdiff
path: root/main/main.go
Commit message (Collapse)AuthorAgeFilesLines
* Changes main to read input from stdin. Prunes states that won't wouldn't ↵Charlie Stanton2022-12-231-6/+28
| | | | ever reach the front of the state priority queue.
* Expressions inside stores are now subexes instead of regexesCharlie Stanton2022-12-221-0/+5
| | | | | This simplifies things by no longer needing a regex implementation It also enables transforming text as it is being read into a slot
* Initial commitCharlie Stanton2022-09-211-0/+86
Parses and executes substitute expressions (subexes) So far subex has the following operations: - Concatenation of a and b with ab - Or with | - Repeat maximally with * - Repeat minimally with - - Copy a specific character 'a' - Copy any character '.' - Store text matching a regex into slot 's': `$s(regex)` - Output text in "" including loading from slots with '$' Regexes support all the same operations as subexes minus storing and outputting This first implementation gives very little thought to efficiency Example: ./main 'according to all known laws of aviation' '$1(.-)$m(( .* )| ).*"$m$1"' This swaps the first and last words of the input string