Skip to content

/ᐠ。ꞈ。ᐟ\ MewMew Programming Language - Program in Cats' Language

License

Notifications You must be signed in to change notification settings

bauripalash/mewmew

Repository files navigation

/ᐠ。ꞈ。ᐟ\ MewMew Programming Language

MewMew is dead. Checkout Mewl, program in cats' language

. . C/C++ CI Version 0.2b

Give a Star 🌟 to this project to support this project

/ᐠ。ꞈ。ᐟ\ MewMew 🐱 is an Esoteric Just for Fun programming language. You can program in cats' language with MewMew. Have Fun!

🎉 Get Started

😸 Integers

There's no concept of numbers (eg. 1 2 3 4 100) in MewMew, instead we use mews. 1 mew is equal to 1 , therefor mewmew = 2 , mewmewmew = 3 , mewmewmewmewmewmewmewmewmewmew = 10 and mew-mew = 0. (You got the Idea, right)

😸 Operators

MewMew supports a few types of operators =>

  • + -> Addition
  • - -> Subtraction
  • * -> Multiplication
  • / -> Division
  • ** -> Power
  • ~ -> Absolute Value
  • - -> Unary Minus
  • > -> Greater than
  • >= -> Greater than equal to
  • < -> Less than
  • <= -> Less than equal to
  • == -> Is Equal to
  • != -> Not Equal to
  • & -> And
  • | -> Or
  • % -> Modulus (Remainder)

😸 Identifiers

MewMew identifiers must start with an m and can contain zero or more consecutive _ and w. e cannot be used , because the interpreter can confuse it with a mew number.

😸 Assignment

ID = Expression

IDs will follow the rules of identifiers (above mentioned)

😸 Print aka. Meow Say

There's no keyword , to print we use the :: symbol, for example ::mewmew + mewmew outputs 4

😸 Print Char

Same as print , there's no keyword. It prints the ASCII char from the mew number given

::$ ####(mew) * mewmewmewmewmewmewmew + mewmew , Output = H

😸 If

CONDITION ? TRUTH_BODY ;

If statement of mewmew is very similar to ternary expression of C/C++.

😸 If Else

CONDITION ? TRUTH_BODY : ELSE_BODY ;

😸 Repeat Loop aka. Meow Loop

@TIMES : BODY ;

Where TIMES can be any mew number , and the BODY will be executed TIMES times.

😸 Scratch Functions

#MEWNUMBER (The '#' can be 1 to 5 consecutive times )

  • 1 # calculates square root of the expression
  • 2 # returns 2 times the given expression
  • 3 # returns 5 times the given expression
  • 4 # returns 10 times the given expression
  • 5 # returns 100 times the given expression

😸 Scan (Read Mew or Traditional Number from Stdin)

ID << ;

Where ID is an variable identifier. The user will be prompted for a formal or mewmew number.

😸 Comments

//

To write a comment , start the sentence with //

🎁 Example Programs:

(Two Examples are provided in the repo)

//Addition

m = mewmew + mewmewmew;
::m;

OUTPUT: 5
// Print All Numbers Divisible by 2 under 100
m = mew;
@#####(mew):
    m % mewmew == mew - mew ? ::m;;
    m = m+mew;

;

[TODO] □ Build the whole thing again □ Ditch C++, use plain C

📑 NOTEs:

  • MewMew is an esoteric language , it was never intended to be used for mainstream programming.
  • MewMew is only tested on Linux device (Ubuntu 18.04 x86_64). Building on Windows or MacOS should not be difficult , Please let me know , if you build it on either Windows or MacOs.

🔨 Building Yourself

🔩 Required

  • ANTLR4 JAR
  • ANTLR4 (C++) RUNTIME
  • GCC/G++
  • CMake

🔧 How to Build

  • Download & Setup ANTLR4 JAR (JAVA Runtime is Required to run ANTLR4)
  • Download ANTLR4 C++ Runtime , compile and setup
  • Fork , Clone this Repository
  • mkdir build && cd build
  • cmake ..
  • If Things are good. You'll have a executable binary file called mewmew