<feed xmlns='http://www.w3.org/2005/Atom'>
<title>subex/main, branch main</title>
<subtitle>Substitute Expressions: DSL for string transformations</subtitle>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/'/>
<entry>
<title>Adds the character range mapping syntax</title>
<updated>2022-12-24T10:04:42+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-12-24T10:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=b2d1d965dee8cc2c1e063067d53a3c8e28a46d6c'/>
<id>b2d1d965dee8cc2c1e063067d53a3c8e28a46d6c</id>
<content type='text'>
Ranges of characters can be mapped with []

For example, capitalisation of a letter: [a-z=A-Z]
Caesar cipher shift of 1: [a-zA-Z=b-zaB-ZA]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ranges of characters can be mapped with []

For example, capitalisation of a letter: [a-z=A-Z]
Caesar cipher shift of 1: [a-zA-Z=b-zaB-ZA]
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the redundant regex implementation</title>
<updated>2022-12-24T10:03:56+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-12-24T10:03:56+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=ce2db2bc333ed938ec93d5ad0838f8cb720c4865'/>
<id>ce2db2bc333ed938ec93d5ad0838f8cb720c4865</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Changes main to read input from stdin. Prunes states that won't wouldn't ever reach the front of the state priority queue.</title>
<updated>2022-12-23T15:53:24+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-12-23T15:53:24+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=c19df3ff75e7693e38940f20a5f3b40931be424a'/>
<id>c19df3ff75e7693e38940f20a5f3b40931be424a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Expressions inside stores are now subexes instead of regexes</title>
<updated>2022-12-22T15:23:28+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-12-22T15:23:28+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=fb1f51d1da22f34509cf3fe1d174296d36a0f0ad'/>
<id>fb1f51d1da22f34509cf3fe1d174296d36a0f0ad</id>
<content type='text'>
This simplifies things by no longer needing a regex implementation
It also enables transforming text as it is being read into a slot
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplifies things by no longer needing a regex implementation
It also enables transforming text as it is being read into a slot
</pre>
</div>
</content>
</entry>
<entry>
<title>Adds try, maybe and join operators with !, ? and ; respectively</title>
<updated>2022-09-23T13:55:58+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-09-23T13:55:58+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=f3911888915f6aa96e6b28bd2a98a662faf20f47'/>
<id>f3911888915f6aa96e6b28bd2a98a662faf20f47</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Initial commit</title>
<updated>2022-09-21T20:05:34+00:00</updated>
<author>
<name>Charlie Stanton</name>
<email>charlie@shtanton.xyz</email>
</author>
<published>2022-09-21T20:05:34+00:00</published>
<link rel='alternate' type='text/html' href='https://shtanton.xyz/git/subex/commit/?id=0a8690993d572a50b95dd4f1c1903ed00ddb9c2b'/>
<id>0a8690993d572a50b95dd4f1c1903ed00ddb9c2b</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
</feed>
