1.0.4 • Published 5 months ago

temp-rublang v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

Note: This version is temporary and will be replaced with rublang after 24 hours.

Running

  • To run a rub file: npx rub <FILENAME>
  • Or you can use repl mode: npx rub

Rublang

Rublang is a simple programming language based on javascript. Install this Vscode extension for syntax highlighting.

Note: For now we don't support Arrays and While Loops

Variables

Mutable variables are like this:

store x = 0;

You can also write constant variables:

estore x = 5;

Note: you can only use semicolons in variables and for loops

Numbers

You can create numbers like this:

store foo = 5;
store bar = 7;
store result = bar - foo;

Strings

strings are like this:

store foo = "Hello World!";

Note: you can't use " ' " for strings;

Booleans

booleans are simple:

store foo = true;
store bar = false;

Null

store foo = null; // null
store bar; // null

Objects

You can write objects like this:

store foo = 56;
estore x = {
    simple: "Hello World!",
    complex: {
        num: foo - 30
    }
}

say(x.simple)
say(x.complex.num)

Binary expressions

This is binary expressions that supports:

OperatorSupported Types
+Number
-Number
*Number
/Number
%Number
==All
!=All
&&All
||All
<All
>All

Types

Type
Number
Boolean
String
Object

If Statements

If Statements are like this:

store x = 5;

if (x == 5) {
    say("x is 5")
} otherwise if (x == 6) {
    say("x is 6")
} otherwise {
    say("x isn't 5 or 6")
}

For Loops

And For Loop:

for (store i = 0; i < 10; i = i + 1) {
    say(i)
}

Comments

// This is Encrypted Store.
estore x = "Not Changeable".

Functions

func add(x, y) {
    x + y
}
say(add(5, 8))

in rublang we don't have return keyword it's means only returns the last one.

func add(x, y) {
    x - y // This donsn't works
    x + y
}

Native Functions

There is some native functions in rublang:

NameDescription
sayprints a value
timeget the time
connect (Coming Soon)connects strings

Thanks to tylerlaceby for the step by step guide.