We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Surprised look
Surprised look is an esolang based on another esolang called :o which was made in 2008 and may have been described in #esoteric around August 2008.
Much like the previous esolang, Surprised look has been made so that you can hypothetically describe it as a strongly typed, tree-based version of Thue. However, the original had a notably different grammar, which may mean that Surprised look, unlike :o, is not actually a strongly typed, tree-based version of Thue so much as a mockery of one.
Surprised look Grammar
To understand how Surprised look works, you have to start with words. Unlike the original, the characters which a word contains are not explicitly defined, only the characters which are not part of a word. Specifically, the space, tab, newline, exclamation point, parentheses, dash (em-dash, en-dash, hyphen), colon, semicolon, quotation mark, comma, period, and question mark are guaranteed to be "post-word punctuation" and therefore not parts of words.
Meanwhile, an underscore is the default "anti-post-word punctuation" which can surround a single character of post-word punctuation or anti-post-word punctuation to add it to a string. Anti-post-word punctuation can also be used to form words consisting entirely of characters which wouldn't otherwise be in words. If a single instance of anti-word punctuation exists (i.e. there isn't another instance of anti-word punctuation two characters before or after), it is treated as a normal character.
The exact scope of what counts as post-word punctuation and anti-post-word punctuation is implementation dependent in the sense that more examples can be added to each base list.
Words have to be separated from each other by post-word punctuation of some sort. "Following" words are separated from the previous words by one or more instances of post-word punctuation.
Words with more ASCII characters between 65 and 90 inclusive act as "types" for following words with one fewer such letter which aren't separated from this word by other words with a different number of capitalized letters. For example, Surprised look is analyzed as the word look which has the type Surprised. The word is seen as the same as a word with corresponding ASCII characters between 97 and 122 inclusive, though switching between these can be useful to indicate type relationships.
As soon as a closed graph (as opposed to a tree) would be created by a specific word, everything after the start of that word is seen as the initial string rather than a rule. In every case, words in the initial string can be randomly replaced by their children in the tree structure. The post-word punctuation surrounded by anti-post-word punctuation corresponds to the normal characters in the initial string which would have corresponded to those characters.
For example,
Surprised look:jane-see?spot...?: ---run;:;:;surprised
is analyzed as a tree with a single parent (surprised) which has many children (look, jane, see, spot, run) and an initial string of "surprised" which can be replaced with any of those children.
It is considered "tree-based" because the words are organized based on a tree structure. It is considered strongly typed because the same word can have "different" parents, but this is analyzed as two instances of children (having different "types") which then mean that this doesn't form a closed loop. Essentially, it is reanalyzing "strongly typed" as "you can have int foo and char foo which have the same name but different types". You could argue this is actually antithetical to that, and my only answer would be "... Yeah, okay, dang it."
Unlike Thue, input and output are impossible unless you count the final string as output.