STRong
		
		
		
		Jump to navigation
		Jump to search
		
STRong is a language made by User:Qawtykit to add more features to a string-rewriting paradigm.
 
Program Structure
Programs in STRong start with the initial string, followed by a newline. Then you write the program, which is read from top to bottom. If a find/replace finds multiple strings, all of them are replaced.
Commands and Expressions
Each command is ended with a newline
| Command | Description | Example usage | 
|---|---|---|
| 'string'replacement | Find and replace on the initial string | 'asdf'fasd | 
| :string:n | set variable nto string | :asdf:fasd | 
| !string!replacement!v | find and replace on variable v | !asdf!tyrant!fasd | 
| .n | define jump point named n | .asdf | 
| ^string^n | jump to jump point nif string is found in the initial string | ^fasd^asdf | 
| *...* | comment | *this will be ignored* | 
Jumping to label "end" terminates the program.
These are expressions placed within a string, they also work in the initial string:
| Expression | Description | Example usage | 
|---|---|---|
| ? | return line from input | 'p'? *replace p with input* | 
| # | return entire initial string | '#' *clear initial string* | 
| ☼ | any character, does not work in initial string | '!☼☼☼☼d'!☼☼☼☼f *replacement from distance away* | 
| str∞str | any amount of space can be between two strings | '[∞]'asdf *check for balanced brackets* | 
| (n) | return unicode character corresponding to n | (10)*newline* | 
| ~ | concatenate two string expressions | (10)~# | 
| n[string&string] | n% chance to return string on left, else return string on right | 50[heads&tails] *coin flip* | 
| {string} | string in curly brackets will not be removed when replaced, instead replacement will be placed to the right of it | '{a}'b *infinite loop*  | 
| <string> | string will be output to the console | '@'<Hello, World!> | 
Examples
Truth-machine
i
'i'? *Ask for input*
^0^zero *If the input is 0:*
^1^one *Whereas if the input is 1:*
^#^end
.one
'{i}'<1> *Output 1*
^1^one *Repeat infinitely*
.zero
'i'<0> *Output 0.*
.end *Terminate program*
Unary subtraction
a-b 'a'? *input sequence of 0s for unary number* 'b'? '-∞0'1 *convert every 0 on right into 1* .loop '01' ^01^loop '1'0 0'<0>