MEMESCRIPT ~ memeful scripting

pompom454

pompom454

Well-known member
MEMESCRIPT: The Ultimate Meme-Based Programming Language (and the one you didn't know you needed (and probably the one you don't need))

? What is MEMESCRIPT?


MEMESCRIPT is a revolutionary programming language that combines the power of coding with the dankness of memes. It's designed to make programming both fun and intuitive for the meme-savvy developer.

? Features

? Basic Syntax
- Programs start with `MUCH START` and end with `VERY END`
- Comments start with `BRUH`
- Variables are declared with `HAS A`
- Print with `SHOW ME`
- Take input with `GIMME`
- Program sections: `CHAPTER` and `END CHAPTER`
- Constants: `FOREVER`
- Break statement: `YEET OUTTA HERE`
- Continue statement: `KEEP GOING FAM`

? Data Types
- Strings: `WORDS`
- Integers: `NUMBAH`
- Floats: `DECIMUL`
- Booleans: `TROOF`
- Null: `EMPTY BRAIN`
- Arrays: `SQUAD`
- Any type: `WHATEVER`

➗ Operators
- Addition: `STONKS`
- Subtraction: `NOT STONKS`
- Multiplication: `THICC`
- Division: `SMOL`
- Equality: `CHEEMS`
- Not equal: `NO U`
- Modulo: `LEFTOVERS`
- Increment: `LEVEL UP`
- Decrement: `OOF`
- AND: `BIG BRAIN TIME`
- OR: `EITHER WAY`
- NOT: `BAMBOOZLE`
- Calculate pi (1,000 digits): `GODSPEED GODSEND()`
- Almost equal to: `BALLTZE` (can be used with `BALL BALL` and `CHEEMS`)
- Asymptotically equal: `BALL BALL` (can be used with `BALLTZE` and `CHEEMS`)
- Comparison of functions: `THE VIRGIN` and `THE CHAD` (don't use `CHEEMS`, `BALLTZE`, or `BALL BALL` to compare functions)

? Control Structures
- If: `YO CHECK IT`
- Else: `NAH BRUH`
- While loop: `KEEP ROLLIN`
- For loop: `DO IT AGAIN`
- Switch: `VIBE CHECK`
- Case: `MOOD`
- Default: `LAST RESORT`

? Functions
- Declare a function: `HOW TO`
- Return: `YEET`
- Main function: `IT DO BE LIKE THAT`
- Nil function: `LEGO DISASSEMBLE()`

? Object-Oriented Programming
- Class declaration: `GANG`
- Method declaration: `CAN DO`
- Inheritance: `COPY PASTA`

? Importing
- Import: `BRING THE BOYS`
- Export: `SHARE THE WEALTH`

?️ Error Handling
- Try-Catch: `YOLO` and `FAIL`
- Debugging: `OH MY GAWD`

? Package Management (FREEZE COOPER)
- Install: `FREEZE COOPER STEAL package_name`
- Uninstall: `FREEZE COOPER DISAPPEAR package_name`
- Update: `FREEZE COOPER REFRESH package_name`
- List packages: `FREEZE COOPER LOOT`

? Audio Playback
- Play audio: `RAYMAN SINGS SEXBOMB(file_path)`
- Stop audio: `YO FONE LINGING(audio_obj)`
- Increase volume: `EARRAPE(audio_obj, volume_increase)`
- Decrease volume: `SHUT UP TAILS(audio_obj, volume_decrease)`

? Game Development (SRB2 Lua Interpretation)
- Interpret SRB2 Lua: `ADDONS DETECTED NO CAN USED SAVE FILES(lua_script_path)`
- Supports SRB2 userdata structures like `mobj_t`, `player_t`, `mobjinfo_t`, `sfxinfo_t`

? File Operations
- Download file: `ITS MY SONIC OC PLS DONT STEAL(url)`
- Edit readable text files (mostly compatible with .meme extension): `BENTLEY IS A FRICKING HACKER SO LET HIM ACCESS OR ELSE HE IS GONNA BEAT THE CRAP OUTTA YOU AND HACK IT HIMSELF`

? Random Selection
- Get random message: `KELLY AYOTTE BAD JOYCE CRAIG BAD YADDA YADDA YADDA()`
- Random number: `RNG JESUS`

? Built-in Functions
- Length of array/string: `HOW LONG`
- Maximum: `BIGGEST CHUNGUS`
- Minimum: `SMOLEST BOI`
- Round number: `NO DECIMAL ZONE`
- Current time: `WHAT TIME IS IT`

? Coding Environment Rules
  1. If a function call "()" is the last element on a line, don't add a semicolon or other terminator.
  2. When using the `YO CHECK IT` (if) statement, always include curly braces "{}", even for single-line blocks.
  3. Don't use parentheses around condition expressions in `YO CHECK IT` or `KEEP ROLLIN` statements.
  4. Always declare variables with `HAS A` before using them. Attempting to use an undeclared variable will result in an error.
  5. When defining a function with `HOW TO`, separate parameters with commas, but don't use parentheses around the parameter list.
  6. In `SQUAD` (array) declarations, use square brackets "[]" and separate elements with commas.
  7. Don't mix data types within a `SQUAD`. All elements should be of the same type.
  8. When using the increment operator `LEVEL UP`, place it after the variable name, not before.
  9. When collecting a package using `FREEZE COOPER`, you CANNOT use `STEAL` to update a package. If so, you'll mess up any dependencies requiring that package. Use `REFRESH` instead.
  10. While using `ITS MY SONIC OC PLS DONT STEAL`, it's only limited to http/https GET requests, and cannot be used with anything like buss, onion domains, etc.
  11. `CHEEMS` cannot be used to compare functions. Nor can `BALL BALL` or `BALLTZE`. If used, it'll throw a crash or "bad argument to blah blah blah got nil". Use `THE VIRGIN` and `THE CHAD` to define the comparison of functions.
  12. You can ignore the `MUCH START` and `VERY END` requirement when debugging. Use `OH MY GAWD START` and `OH MY GAWD END` instead.
  13. Do not use `KELLY AYOTTE BAD JOYCE CRAIG BAD YADDA YADDA YADDA()` for number sorting. Instead use `RNG JESUS`.

? Example

Code:
MUCH START


HOW TO FACTORIAL HAS A NUMBAH n
    YO CHECK IT n CHEEMS 0
        YEET 1
    NAH BRUH
        YEET n THICC FACTORIAL(n NOT STONKS 1)


IT DO BE LIKE THAT
    SHOW ME "GIMME A NUMBAH FOR FACTORIAL:"
    HAS A NUMBAH x
    GIMME x


    SHOW ME "THE FACTORIAL IS: " STONKS FACTORIAL(x)
VERY END

? Contributing

We welcome contributions! Feel free to submit questions, feature requests, etc. Also, can someone make a compiler and interpreter??? AND PRETTY MUCH EVERYTHING ELSE???

? License

MEMESCRIPT is released under the... eh, DO WHAT YOU WANT!

Remember, with great memes comes great responsibility. Code on, memers!

? OH MY GAWD!!! THE ULTIMATE DEBUGGING TOOL!!!!!

`OH MY GAWD` is more than just a debugging tool, chump. It's a gold mine!

`OH MY GAWD`'s features

1. Error Logging

You can log errors with a humorous twist using:
Code:
OH MY GAWD START
    BRUH "Something went wrong!"
    SHOW ME "Error: " + ERROR_MESSAGE
OH MY GAWD END

2. Variable Inspection

Inspect the value of variables using:
Code:
OH MY GAWD START
    SHOW ME "Current Value of NUMBAH: " + MY_NUMBAH
    SHOW ME "Current State of SQUAD: " + HOW LONG MY_SQUAD
OH MY GAWD END

3. Conditional Alerts

Set up alerts for specific conditions:
Code:
OH MY GAWD START
    YO CHECK IT MY_NUMBAH CHEEMS 0
        SHOW ME "OH MY GAWD! NUMBAH cannot be zero!"
    NAH BRUH
        SHOW ME "All good, fam!"
OH MY GAWD END

4. Debugging Functions

Create debugging functions that can be reused throughout your code:
Code:
HOW TO DEBUG_MY_CODE()
    OH MY GAWD START
        SHOW ME "Debugging in progress..."
        YO CHECK IT SOME_VAR CHEEMS EMPTY BRAIN
            SHOW ME "Warning: Some_var is empty!"
        YO CHECK IT ANOTHER_VAR CHEEMS 42
            SHOW ME "Oh my gawd! Another_var has the secret number!"
        YEET
    OH MY GAWD END

IT DO BE LIKE THAT
    DEBUG_MY_CODE()
VERY END

Example Usage​

Here’s how you might use the `OH MY GAWD` section in a simple program:
Code:
MUCH START

HAS A NUMBAH = 10
HAS A SQUAD = [1, 2, 3]

HOW TO CHECK_VALUES()
    OH MY GAWD START
        SHOW ME "Checking values..."
        YO CHECK IT NUMBAH CHEEMS 0
            SHOW ME "OH MY GAWD! NUMBAH cannot be zero!"
        NAH BRUH
            SHOW ME "NUMBAH is all good!"
        SHOW ME "SQUAD length: " + HOW LONG SQUAD
    OH MY GAWD END

CHECK_VALUES()

VERY END
Yup. That's `OH MY GAWD`.
 
Last edited:
Top