A Trumpian-syntax Turing-complete interpreted language.
Boot.dev Hackahton 2025
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠋⠉⡉⣉⡛⣛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠄⠄⠄⠄⠄⢀⣸⣿⣿⡿⠿⡯⢙⠿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡿⠄⠄⠄⠄⠄⡀⡀⠄⢀⣀⣉⣉⣉⠁⠐⣶⣶⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠁⣿⣿⣀⠈⠿⢟⡛⠛⣿⠛⠛⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡆⠄⠄⠄⠄⠄⠈⠁⠰⣄⣴⡬⢵⣴⣿⣤⣽⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡇⠄⢀⢄⡀⠄⠄⠄⠄⡉⠻⣿⡿⠁⠘⠛⡿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⡿⠃⠄⠄⠈⠻⠄⠄⠄⠄⢘⣧⣀⠾⠿⠶⠦⢳⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣶⣤⡀⢀⡀⠄⠄⠄⠄⠄⠄⠻⢣⣶⡒⠶⢤⢾⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⡿⠟⠋⠄⢘⣿⣦⡀⠄⠄⠄⠄⠄⠉⠛⠻⠻⠺⣼⣿⠟⠋⠛⠿⣿⣿
⠋⠉⠁⠄⠄⠄⠄⠄⠄⢻⣿⣿⣶⣄⡀⠄⠄⠄⠄⢀⣤⣾⣿⣿⡀⠄⠄⠄⠄⢹
⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢻⣿⣿⣿⣷⡤⠄⠰⡆⠄⠄⠈⠉⠛⠿⢦⣀⡀⡀⠄
⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⢿⣿⠟⡋⠄⠄⠄⢣⠄⠄⠄⠄⠄⠄⠄⠈⠹⣿⣀
⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠘⣷⣿⣿⣷⠄⠄⢺⣇⠄⠄⠄⠄⠄⠄⠄⠄⠸⣿
⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠹⣿⣿⡇⠄⠄⠸⣿⡄⠄⠈⠁⠄⠄⠄⠄⠄⣿
⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢻⣿⡇⠄⠄⠄⢹⣧⠄⠄⠄⠄⠄⠄⠄⠄⠘
Disclaimer: This is not political. I'm not american. No hate or love, just memes.
A lot of people are saying, and I mean A LOT of people, that this is the BEST fizzBuzz they have ever seen. Nobody has seen a fizzBuzz like this. It's unbelievable. Believe me.
fizzBuzz.covfefe
MAKE_IT_BIG fizzBuzz(n) {
LOOK x IS 0!
KEEP_WINNING (x <= n) {
BELIEVE_ME (x % 3 == 0) AND (x % 5 == 0) {
BING("fizzBuzz")!
} BUT_MAYBE (x % 3 == 0) {
BING("fizz")!
} BUT_MAYBE (x % 5 == 0) {
BING("buzz")!
} FAKE_NEWS {
BING(x)!
}
LOOK x IS x + 1!
}
}
fizzBuzz(15)!
Running CovfefeScript is VERY SIMPLE. The SIMPLEST. It's so easy, even a child could do it.
You can build it yourself like a WINNER. It's a beautiful thing.
// First, you build the interpreter, a strong interpreter.
go build -o covfefescript cmd/covfefescript/main.go
// Then, run your beautiful code. You'll love it.
./covfefescript examples/helloWorld.covfefe
Or you can use NPM. SAD! It's a disaster.
npm install -g @yurikdotdev/covfefescript
You can also run CovfefeScript in interactive mode. It's a beautiful thing, very interactive. Just type your code and see what happens. It's so good, so fast.
// Just run the interpreter without a file. It's that simple.
./covfefescript
// or run the binary from npm
covfefescript
A lot of people are saying we have the BEST SYNTAX. It's so clear, so concise. It's the most beautiful syntax.
All real statements, the ones that DO THINGS, the important ones, they MUST end with an exclamation point (!). It shows STRENGTH. It's not optional. We don't do optional.
Sometimes you have to deal with FAKE NEWS from the media. It's disgusting. You can put it in comments. We know the truth.
// This is fake news. You know it. I know it.
// Everybody knows it. It's a total witch hunt.
FAKE_CODE
This code? Totally fake.
Nobody even runs this stuff.
It's just here to confuse the losers and haters.
SAD
You declare variables with LOOK. It's how you find the TRUTH. There are many GREAT types of variables. These are just labels, by the way, not keywords. The language itself is VERY SMART. It knows the type. It's brilliant.
// TWEET
LOOK economy IS "booming"!
// MONEY
LOOK small_loan IS 1000000!
// TRUTH
LOOK my_hater IS LOSER!
LOOK my_hand IS YUGE!
// COVFEFE (null)
LOOK empty_val IS COVFEFE!
// COLLUTION
LOOK my_team IS [ "the best", "people", "a beautiful wall" ]!
// PROPERTY
LOOK my_deal IS {
"name": "The Art of the Deal",
"rating": "tremendous"
}!
You use BELIEVE_ME for an if statement. If that's not true, and sometimes it's not, you try BUT_MAYBE (else if). Everything else is FAKE_NEWS (else). SAD!
LOOK your_breath IS "good"!
BELIEVE_ME your_breath == "good" {
BING("It's the best breath, very best.")!
} BUT_MAYBE your_breath != "good" {
BING("Do you mind if I sit back a little? ")!
} FAKE_NEWS {
BING("Because your breath is very bad.")!
}
Just like the other languages, the ones that are okay, you can use AND. I know it, you know it. Everyone knows it.
You use KEEP_WINNING to start a loop. It's a C-style loop because it's a WINNING STYLE. The BEST STYLE. We only do winning.
LOOK j IS 0!
KEEP_WINNING (j < 20) {
BELIEVE_ME j == 17 {
IT_WAS_RIGGED! // break
}
BELIEVE_ME j % 4 == 0 {
LOOK j IS j + 1!
TIRED_OF_WINNING! // continue
}
BING(j)!
LOOK j IS j + 1!
}
We have the BEST MATH. I love math, nobody does math like this. It's simple, it's effective, it's winning math.
LOOK a IS 5!
LOOK b IS 3!
LOOK sum IS a + b!
BING("5 + 3 =", sum)!
LOOK diff IS a - b!
BING("5 - 3 =", diff)!
LOOK prod IS a * b!
BING("5 * 3 =", prod)!
LOOK quotient IS a / b!
BING("5 / 3 =", quotient)!
LOOK rem IS a % b!
BING("5 % 3 =", rem)!
LOOK big_number_calc IS a + b * 2 - 1!
BING("Complex calc:", big_number_calc)!
As you have probably guessed, and you're very smart for guessing, you use MAKE_IT_BIG to start a function. It is SO GOOD, SO SIMPLE. It's the best function declaration. You use GIVE_ME to return a value. It's a beautiful thing.
MAKE_IT_BIG buildTheWall(height, material) {
GIVE_ME "My ideal wall is a " + height + " feet wall made of " + material + ". Beautiful."!
}
LOOK my_wall IS buildTheWall("five", "solid gold")!
BING(my_wall)!
We have the BEST BUILT-INS. More are coming. They're going to be huge.
- BING(...)!: Prints to the console. Very powerful. Very direct.
This project draws heavily from Writing an Interpreter in Go by Thorsten Ball, some portions of the code closely follow examples from the book, adapted to fit the project’s goals and constraints.
MIT