Introduction
A programming language specifically designed such that ASTs generated by markov chain are likely to produce programs with meaningful effect
— mcc (@mcclure111) `July 11, 2015 <https://twitter.com/mcclure111/status/619713910552133632>`__
Xenoglossia is a simple string manipulation language, akin to sed. It
was created with the goal of producing surprising, fun-to-read programs
which can be generated in novel manners by a computer.
An introduction to the language and its syntax can be found in the
design document <https://github.com/mistydemeo/xenoglossia/blob/master/doc/design.md>
, and the documentation of the
builtin functions can currently be found in the docstrings of the
builtins module <https://github.com/mistydemeo/xenoglossia/blob/master/xenoglossia/builtins.py>
.
Usage
Xenoglossia will install an executable named xg
. To run a program,
call xg --input STRING "xenoglossia program"
; for example:
.. code:: sh
xg --input "This is the input string" "sub 'input' 'output'"
You can also pipe input into stdin:
.. code:: sh
echo "This is the input string" | xg "sub 'input' 'output'"
Sample programs
Replace two words in a sentence:
::
gsub "favorite" "favourite" gsub "color" "colour"
Rearrange the words in a sentence, then capitalize the new sentence:
::
burst " " shuffle capitalize