<- Back to shtanton's homepage
summaryrefslogtreecommitdiff
path: root/main/parse.go
Commit message (Collapse)AuthorAgeFilesLines
* Expressions inside stores are now subexes instead of regexesCharlie Stanton2022-12-221-1/+1
| | | | | This simplifies things by no longer needing a regex implementation It also enables transforming text as it is being read into a slot
* Adds try, maybe and join operators with !, ? and ; respectivelyCharlie Stanton2022-09-231-6/+23
|
* Initial commitCharlie Stanton2022-09-211-0/+141
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