npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mama-lang

v0.1.6

Published

mama aida akta heavvyyy joss akta programming language mama

Downloads

17

Readme

Mama Lang 🚀

Mama Lang Playground Mama Npm Package

I grew up in Dhaka, Bangladesh 🇧🇩, where "Mama" 🗣️, which literally translates to your mom's brother, is often used by friends as a form of endearment. The closest comparison I can find is how some people would use the word "homie" 🤝 in the US. I spent countless days and nights ☕🌙, sipping tea in the stands of Abahani Field in Dhanmondi 4 or at Paribagh with friends when I was in high school 🏫👥. During these gatherings, if we had kept a tally, I believe collectively we must have uttered the word mama well over a hundred times.

So when I saw this: bhai-lang https://github.com/DulLabs/bhai-lang 💡, I was inspired to write my own implementation! To start with right now we just convert .mama files to .js and then run them with node and so anything that you could do in javascript land you can do it in mama lang.

Future State 🚀

I am however playing around with the idea of making its own lexer, interpreter and parser so it can just be its own thing! If you want to work on it the code is inside mama-lang_v2 directory!

Feel free to open up PR(s) and contribute! 😄

Playground 🚀🎮

Check out the Mama Lang Playground to write and run your .mama code in a fun and interactive environment! Whether you're taking your first steps into programming or just want to have a laugh with friends, the playground makes it easy to experiment with Mama Lang right in your browser. No installation required, just code and go! 😄👨‍💻

Installation 💻

npm install -g mama-lang

Usage 📝

Create a new file (boltesi.mama)

bol toh mama ("kire mama!");

Run 🚀

mama boltesi.mama

Output 🖨️

kire mama!

Documentation 📚

Variables 📊

Variables can be declared using mama aida hoilo;

mama aida hoilo day = "Sunday";
mama aida hoilo temperature = 25;
mama aida hoilo isSunny = haw mama;
mama aida hoilo counter = 0;

Types 🔠

Numbers and strings are like other languages. Null values can be denoted using kisuina mama. haw mama and nah mama are the boolean values.

 mama aida hoilo a = 10;
 mama aida hoilo b = 10 + (15*20);
 mama aida hoilo c = "duita";
 mama aida hoilo d = 'acha thikasey';
 mama aida hoilo e = kisuina mama;
 mama aida hoilo f = haw mama;
 mama aida hoilo g = nah mama;

Built-ins 🛠️

Use bol toh mama to print anything to the console.

bol toh mama ("Hello World");
mama aida hoilo manushJon = 5;
mama aida hoilo koiGhontaKoraLagbe = 8;
mama aida hoilo shobMilayaKotoKhonLagbe = manushJon * koiGhontaKoraLagbe;
bol toh mama("Shob miliya koto ghonta kamla khatesi amra hoilo = " + shobMilayaKotoKhonLagbe);

Conditionals 🔄

mama-lang supports the if-else-if ladder construct, jodi mama block will execute if the condition is haw mama, otherwise one of the subsequently added nah hoile mama blocks will execute if their respective condition is haw mama, and the akdom e nah hoile block will eventually execute if all of the above conditions are nah mama.

jodi mama (temperature > 30) {
  bol toh mama ("Gorom lagtese mama, AC chalao mama!");
} nah hoile mama (temperature < 20) {
  bol toh mama ("Thanda lagtese mama, sweater porum mama!");
} akdom e nah hoile {
  bol toh mama ("Aajke weather besh comfortable, mama!");
}

Loops 🔁

Statements inside jotokhon porjonto mama blocks are executed as long as a specified condition evaluates to haw mama. If the condition becomes nah mama, the statement within the loop stops executing and control passes to the statement following the loop. Use thamis mama to break the loop and tarpor er tah dekh mama to continue within the loop.

  mama aida hoilo a = 0;
  jotokhon porjonto mama (a < 10) {
   a += 1;
   jodi mama (a == 5) {
    bol toh mama("loop er bhitor theke boltesi mama ", a);
    tarpor er tah dekh mama;
   }
   jodi mama (a == 6) {
    thamis mama;
   }
   bol toh mama(a);
  }
  bol toh mama("done");

Functions ⚙️

You can define a function using the mama kam da hoilo syntax, followed by the function name and parameters in parentheses. The function body is enclosed in curly braces.

mama kam da hoilo jog(a,b){
    de toh mama (a+b);
}

In this example, a function named jog is defined with two parameters, a and b. The function body adds these parameters and returns the result using de toh mama.

bol toh mama(jog(5,7))

Function Output 🔄

Functions in Mama Lang can return values using the de toh mama statement. The returned value can be assigned to a variable or used directly in expressions.

mama kam da hoilo multiply(x, y) {
    de toh mama (x * y);
}

mama aida hoilo result = multiply(3, 4);
bol toh mama("The result is: " + result);

In this example, the multiply function returns the product of its parameters, and the result is assigned to the result variable and printed.