BroLang

BROLANG

A toy programming language written in Typescript

npm i -g brolang-cli

Playground

Perfect bro 🎉

Documentation

Brolang is dynamically typed toy programming language built for tech bros.

General
bro listen is the entrypoint for the program and all program must end with bro done. Anything outside of it will be ignored.
This will be ignored

bro listen
// Write code here
bro done

This too
  
Variables
Variables can be declared using bro remember.
bro listen
  bro remember a = 10;
  bro remember b = "two";
  bro remember c = 15;
  a = a + 1;
  b = 21;
  c *= 2;
bro done
  
Types
Numbers and strings are like other languages. Null values can be denoted using nothing. correct and wrong are the boolean values.
bro listen
  bro remember a = 10;
  bro remember b = 10 + (15*20);
  bro remember c = "two";
  bro remember d = 'ok';
  bro remember e = nothing;
  bro remember f = correct;
  bro remember g = wrong;
bro done
  
Built-ins
Use bro say to print anything to console.
bro listen
  bro say "Hello World";
  bro remember a = 10;
  {
    bro remember b = 20;
    bro say a + b;
  }
  bro say 5, 'ok', nothing , correct , wrong;
bro done
  
Conditionals
Bhailang supports if-else-if ladder construct , bro if block will execute if condition is correct, otherwise one of the subsequently added bro otherwise if blocks will execute if their respective condition is correct, and the bro otherwise block will eventually execute if all of the above conditions are wrong.
bro listen
  bro remember a = 10;
  bro if (a < 20) {
   bro say "a is less than 20";
  } bro otherwise if ( a < 25 ) {
   bro say "a is less than 25";
  } bro otherwise {
   bro say "a is greater than or equal to 25";
  }
bro done
  
Loops
Statements inside bro when blocks are executed as long as a specified condition evaluates to correct. If the condition becomes wrong, statement within the loop stops executing and control passes to the statement following the loop. Use bro stop to break the loop and bro skip to continue within loop.
bro listen
  bro remember a = 0;
  bro when (a < 10) {
   a += 1;
   bro if (a == 5) {
    bro say "tech bro", a;
    bro skip;
   }
   bro if (a == 6) {
    bro stop;
   }
   bro say a;
  }
  bro say "done";
bro done
  
Functions
Statements inside bro create task task_name block are stored for later execution. bro execute task task_name, will execute the function. Where task_name is the name of the function.
bro listen
  bro remember name = "BroLang";
  bro create task printName {
   bro say "Executing the function";
   bro say name;
  }
  bro execute task printName;
bro done