BhaiLang

A toy programming language written in Typescript

npm i -g bhailang

Playground

kalakkitteenga ponga ЁЯОЙ

Documentation

Bhailang is dynamically typed toy programming language, based on an inside joke, written in Typescript.

General
ро╡рогроХрпНроХроорпН роирогрпНрокро╛ is the entrypoint for the program and all program must end with роиройрпНро▒ро┐ роирогрпНрокро╛. Anything outside of it will be ignored.
This will be ignored

ро╡рогроХрпНроХроорпН роирогрпНрокро╛
// Write code here
роиройрпНро▒ро┐ роирогрпНрокро╛

This too
  
Variables
Variables can be declared using роЗродро╛ройрпН роирогрпНрокро╛.
ро╡рогроХрпНроХроорпН роирогрпНрокро╛
  роЗродро╛ройрпН роирогрпНрокро╛ a = 10;
  роЗродро╛ройрпН роирогрпНрокро╛ b = "two";
  роЗродро╛ройрпН роирогрпНрокро╛ c = 15;
  a = a + 1;
  b = 21;
  c *= 2;
роиройрпНро▒ро┐ роирогрпНрокро╛
  
Types
Numbers and strings are like other languages. Null values can be denoted using роТройрпНройрпБроорпЗропро┐ро▓рпНро▓рпИ роирогрпНрокро╛. sahi and galat are the boolean values.
ро╡рогроХрпНроХроорпН роирогрпНрокро╛
  роЗродро╛ройрпН роирогрпНрокро╛ a = 10;
  роЗродро╛ройрпН роирогрпНрокро╛ b = 10 + (15*20);
  роЗродро╛ройрпН роирогрпНрокро╛ c = "two";
  роЗродро╛ройрпН роирогрпНрокро╛ d = 'ok';
  роЗродро╛ройрпН роирогрпНрокро╛ e = роТройрпНройрпБроорпЗропро┐ро▓рпНро▓рпИ роирогрпНрокро╛;
  роЗродро╛ройрпН роирогрпНрокро╛ f = sahi;
  роЗродро╛ройрпН роирогрпНрокро╛ g = galat;
роиройрпНро▒ро┐ роирогрпНрокро╛
  
Built-ins
Use роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ to print anything to console.
ро╡рогроХрпНроХроорпН роирогрпНрокро╛
  роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "ро╡рогроХрпНроХроорпБроЩрпНроХ";
  роЗродро╛ройрпН роирогрпНрокро╛ a = 10;
  {
    роЗродро╛ройрпН роирогрпНрокро╛ b = 20;
    роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ a + b;
  }
  роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ 5, 'ok', роТройрпНройрпБроорпЗропро┐ро▓рпНро▓рпИ роирогрпНрокро╛ , sahi , galat;
роиройрпНро▒ро┐ роирогрпНрокро╛
  
Conditionals
Bhailang supports if-else-if ladder construct , роЗрокрпНрокроЯро┐ройрпНройро╛ роирогрпНрокро╛ block will execute if condition is sahi, otherwise one of the subsequently added роЗро▓рпНро▓ роТро░рпБро╡рпЗро│рпИ blocks will execute if their respective condition is sahi, and the роЕрокрпНрокроЯро┐ роЗро▓рпНро▓рпЗройрпНройро╛ block will eventually execute if all of the above conditions are galat.
ро╡рогроХрпНроХроорпН роирогрпНрокро╛
  роЗродро╛ройрпН роирогрпНрокро╛ a = 10;
  роЗрокрпНрокроЯро┐ройрпНройро╛ роирогрпНрокро╛ (a < 20) {
   роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "a is less than 20";
  } роЗро▓рпНро▓ роТро░рпБро╡рпЗро│рпИ ( a < 25 ) {
   роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "a is less than 25";
  } роЕрокрпНрокроЯро┐ роЗро▓рпНро▓рпЗройрпНройро╛ {
   роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "a is greater than or equal to 25";
  }
роиройрпНро▒ро┐ роирогрпНрокро╛
  
Loops
Statements inside роЗродрпБро╡ро░рпИроХрпНроХрпБроорпН роЪрпБродрпНродрпБ роирогрпНрокро╛ 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 рокрпЛродрпБроорпН роирогрпНрокро╛ to break the loop and роЕроЯрпБродрпНродродрпБ роирогрпНрокро╛ to continue within loop.
ро╡рогроХрпНроХроорпН роирогрпНрокро╛
  роЗродро╛ройрпН роирогрпНрокро╛ a = 0;
  роЗродрпБро╡ро░рпИроХрпНроХрпБроорпН роЪрпБродрпНродрпБ роирогрпНрокро╛ (a < 10) {
   a += 1;
   роЗрокрпНрокроЯро┐ройрпНройро╛ роирогрпНрокро╛ (a == 5) {
    роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "andar se роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ ", a;
    роЕроЯрпБродрпНродродрпБ роирогрпНрокро╛;
   }
   роЗрокрпНрокроЯро┐ройрпНройро╛ роирогрпНрокро╛ (a == 6) {
    рокрпЛродрпБроорпН роирогрпНрокро╛;
   }
   роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ a;
  }
  роЪрпКро▓рпНро▓рпБ роирогрпНрокро╛ "done";
роиройрпНро▒ро┐ роирогрпНрокро╛