Bhailang is dynamically typed toy programming language, based on an inside joke, written in Typescript.
General
hi bhai
is the entrypoint for the program and all program must end with bye bhai
. Anything outside of it will be ignored.
This will be ignored
hi bhai
 
bye bhai
This too
  
Variables
Variables can be declared using bhai ye hai
.
hi bhai
  bhai ye hai a = 10;
  bhai ye hai b = "two";
  bhai ye hai c = 15;
  a = a + 1;
  b = 21;
  c *= 2;
bye bhai
  
Types
Numbers and strings are like other languages. Null values can be denoted using nalla
. sahi
and galat
are the boolean values.
hi bhai
  bhai ye hai a = 10;
  bhai ye hai b = 10 + (15*20);
  bhai ye hai c = "two";
  bhai ye hai d = 'ok';
  bhai ye hai e = nalla;
  bhai ye hai f = sahi;
  bhai ye hai g = galat;
bye bhai
  
Built-ins
Use bol bhai
to print anything to console.
hi bhai
  bol bhai "Hello World";
  bhai ye hai a = 10;
  {
    bhai ye hai b = 20;
    bol bhai a + b;
  }
  bol bhai 5, 'ok', nalla , sahi , galat;
bye bhai
  
Conditionals
Bhailang supports if-else-if ladder construct , agar bhai
block will execute if condition is sahi
, otherwise one of the subsequently added nahi to bhai
blocks will execute if their respective condition is sahi
, and the warna bhai
block will eventually execute if all of the above conditions are galat
.
hi bhai
  bhai ye hai a = 10;
  agar bhai (a < 20) {
   bol bhai "a is less than 20";
  } nahi to bhai ( a < 25 ) {
   bol bhai "a is less than 25";
  } warna bhai {
   bol bhai "a is greater than or equal to 25";
  }
bye bhai
  
Loops
Statements inside jab tak bhai
blocks are executed as long as a specified condition evaluates to sahi
. If the condition becomes galat
, statement within the loop stops executing and control passes to the statement following the loop. Use bas kar bhai
to break the loop and agla dekh bhai
to continue within loop.
hi bhai
  bhai ye hai a = 0;
  jab tak bhai (a < 10) {
   a += 1;
   agar bhai (a == 5) {
    bol bhai "andar se bol bhai ", a;
    agla dekh bhai;
   }
   agar bhai (a == 6) {
    bas kar bhai;
   }
   bol bhai a;
  }
  bol bhai "done";
bye bhai
  
Function
Define function using apna funda
then the funcrtion name and parameters within ( ), blocks are executed and the return value can be provided using rakh le bhai
.
hi bhai
 apna funda test(c){
  bol bhai c;
  rakh le bhai "return bhi "+c;
 }
 bol bhai test("kam kiya bhai");
bye bhai
  
Class
Define Class using samajh le bhai
then the class name, inside you can provide constructor as janam
and access class member functions and variables with iska
similar to "this" pointer in most languages.
hi bhai
 samajh le bhai kutta{
  bhai ye hai nam;
  apna funda janam(nam){
   iska.nam = nam;
   bol bhai iska.nam,":kau kau";
  }
  apna funda bhouk(){
   bol bhai iska.nam+":bhou bhou";
  }
 }
 bhai ye hai jimmi = kutta("jimmi");
 jimmi.bhouk();
 bol bhai "iska name hai",jimmi.nam;
bye bhai