• Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created almost 5 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An esoteric Malayalam programming language

Mallu Script

Malluscript
GitHub Actions status GitHub pull requests GitHub issues GitHub issues

Malluscript

Malluscript is an esoteric scripting language based on manglish and malayalam memes. The language uses trending Malayalam memetic words as keywords. The language is not strictly type-safe and uses only two datatypes strings and integers. Currently, malluscript is on the development phase and undergoing vigorous changes. Always check the release section for pre-built binaries for the interpreter.

Note: For support please join our Discord.

Installation

Either download precompiled binaries from release page or clone this repository

git clone https://github.com/sreyas-sreelal/malluscript.git

Building

The interpreter can be compiled as follows

cd malluscript
cargo build --release

Note: You require rust compiler installed on your machine in order to compile the interpreter

Executing malluscript programs

Malluscript can be used in two ways

Interactive shell

To start the interactive shell, just run following in the terminal

./malluscript

Something like this would come

Mallu Script Version 0.1.0
>> 

Here you can start writing your malluscript codes on the way!

Run malluscript program files

Write the code in the file with .ms extension and execute it as follows

./malluscript file_name.ms

Language Syntax And Grammar

Basic arithmetic operations can be done using +,-,*,/,% (modulo). Every expression ends with ;. { and } introduces a new block like c like languages. Every keyword has alternate ones too, each with different dialects and also in Malayalam unicodes.

Basic I/O operations

  • Printing or writing to console is done as follows

    ezhuthuga "hello world";
    ezhuthuga variable;
    ezhuthuga "Onnum randum kottiyal " + 1+2 + " aanu"; 
    • Alternate Keywords
      • ezhuthuka
      • ezhuthuga
      • kanikuka
      • kanikuga
      • เดŽเดดเตเดคเตเด•
      • เด•เดพเดฃเดฟเด•เตเด•เตเด•
  • In order to get keyboard input from the user

    For integer inputs

    variable = akam_vangikuga;
    
    • Alternate Keywords
      • akam_vangikuga
      • akkam_vangikuga
      • เด…เด•เตเด•เด‚เดตเดพเด™เตเด™เดฟเด•เตเด•เตเด•

    For string inputs

    variable = vachakam_vangikuga;
    
    • Alternate Keywords
      • vachakam_vangikuga
      • vachakam_vangikuka
      • vachagam_vangikuga
      • vachagam_vangikuka
      • เดตเดพเดšเด•เด‚เดตเดพเด™เตเด™เดฟเด•เตเด•เตเด•

Datatypes and Storage

Malluscript is not strictly type-safe.The language, currently, supports only integer,float and string literals as datatypes.

To assign it some value and declare a variable

variable_name = 1;
second_var = "ente string";

Conditional Statements And Expressions

The conditional expression has the following syntax

i um 0 um thullyaman enkil {

} adhallengil {

}

The above snippet checks whether i equal to 0 and if yes the code in the first block will execute otherwise block defined by adhallengil will get executed.

In general

  • i um 0 um thullyaman enkil checks if i is equals to 0

  • i um 0 um thullyamalla enkil checks if i not equals to 0

  • i nekal 0 cheruthan enkil checks if 0 is less than i

  • i nekal 0 veluthan enkil checks if 0 is greater than i

    • Alternate Keywords
      • enkil
        • engil
        • เดŽเด™เตเด•เดฟเตฝ
      • thullyamalla
        • onnalla
        • เดคเตเดฒเตเดฏเดฎเดฒเตเดฒ
        • เด’เดจเตเดจเดฒเตเดฒ
      • thullyaman
        • onnan
        • เดคเตเดฒเตเดฏเดฎเดพเดฃเต
        • เด’เดจเตเดจเดพเดฃเต
      • um
        • เด‰เด‚
      • ne_kal
        • เดจเต†เด•เดพเตพ
      • veluthan
        • เดตเดฒเตเดคเดพเดฃเต
      • cheruthan
        • เดšเต†เดฑเตเดคเดพเดฃเต
      • adhallengil
        • adhallenkil
        • เด…เดคเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ

Agglutination of conditional statements

Conditional statements like thullyaman enkil can be agglutinated together like thullyamanenkil

Iterative Statements Or Loops

The loops in malluscript look as follows

0 nekal i veluthan enkil avarthikuga {
  i = i-1;
}
  • Alternative Keywords
    • aavarthikuga
    • avarthikuga
    • aavarthikuka
    • avarthikuka
    • เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•

Functions

The functions definition in malluscript are defined as follows.

ente_function(variable1,variable2) {
  ezhuthuga variable1 + variable2;
}

The functions can also return values.

factorial(n) {
    n um 0 um thullyaman enkil {
        kodukuga 1;   
    }
    kodukuga n * factorial<n-1>;
}
  • Alterative keywords for kodukuga
    • kodukuka
    • madakiayakuga
    • madakiayakuka
    • เด•เตŠเดŸเตเด•เตเด•เตเด•
    • เดฎเดŸเด•เตเด•เดฟเด…เดฏเดฏเตเด•เตเด•เตเด•

To call a function function name followed by angle brackets are used.

my_function<arg1,arg2>;

Example

A simple program to find factorial in malluscript would be

kanikuga "Input number:";
num = akam_vangikuga;
factorial = 1;

0 um num um thullyamalla enkil avarthikuga {
    factorial = factorial * num;
    num = num -1;
}

kanikuga "Factoral is : " + factorial + "\n";

Same in pure Malayalam would be

เดŽเดดเตเดคเตเด• "เดฆเดฏเดตเดพเดฏเดฟ เดจเดฎเตเดชเตผ เดคเดฐเตเด•: ";
เดจเดฎเตเดชเตผ = เด…เด•เตเด•เด‚เดตเดพเด™เตเด™เดฟเด•เตเด•เตเด•;
เดซเดพเด•เตเดŸเต‹เดฑเดฟเดฏเตฝ = 1;

0 เด‰เด‚ เดจเดฎเตเดชเตผ เด‰เด‚ เดคเตเดฒเตเดฏเดฎเดฒเตเดฒ เดŽเด™เตเด•เดฟเตฝ {
  เดซเดพเด•เตเดŸเต‹เดฑเดฟเดฏเตฝ = เดซเดพเด•เตเดŸเต‹เดฑเดฟเดฏเตฝ * เดจเดฎเตเดชเตผ;
  เดจเดฎเตเดชเตผ = เดจเดฎเตเดชเตผ -1;
}

เดŽเดดเตเดคเตเด• "เดซเดพเด•เตเดŸเต‹เดฑเดฟเดฏเตฝ : " + เดซเดพเด•เตเดŸเต‹เดฑเดฟเดฏเตฝ + "\n";

More examples can be found in examples

Notes

The language as mentioned above is under the development phase and its structure can change overnight, suddenly. This language is not meant to disrespect anyone and wrote just for fun.

Any kind of contribution is always welcome. If you have any ideas or improvements to provide for this project open a pull request or if you have any difficulties using this language open an issue :)

More Repositories

1

Cosmic

Cosmic is a discord bot with multi functionality
Rust
72
star
2

samp-bcrypt

A bcrypt plugin for samp in Rust.
Rust
56
star
3

tgconnector

Telegram connector for samp
Rust
38
star
4

cirilla

Multipurpose telegram bot
Go
31
star
5

SS-Gang-System-SQLITE

SS Gang System for SA-MP
Pawn
27
star
6

samp-ai-chatbot

An ai chat bot for samp using aiml,pyaiml,pawn,flask
Pawn
16
star
7

PacPaw

Pawn package manager for SA-MP
Python
14
star
8

forum-py

Unofficial SA-MP forum api
Python
11
star
9

search-pawn-package

vscode extension providing suggestion for pawn dependencies by using pawndex api
TypeScript
10
star
10

pawn-scraper

Web scraping with HTML parsers and querying with CSS selectors in pawn (WIP)
Rust
10
star
11

matheval

pawn library for evaluating mathematical expressions
SourcePawn
9
star
12

rs-plugin-boilerplate

Boilerplate for developing SA-MP plugins in Rust
Rust
7
star
13

omprs-gdk

Rust SDK to write open.mp game modes
Rust
7
star
14

samp-chatbot-plugin

A natural language processing plugin for making chatbots.
Rust
6
star
15

omprs

Write open.mp gamemode in Rust
C++
6
star
16

torrent-rs

libtorrent bindings for rust
Rust
5
star
17

Cender

File sharing application built in c
C
4
star
18

server-list-fix

SA-MP client server list fix but written in Rust
Rust
4
star
19

minihttp

A simple and lightweight http client lib for rust
Rust
3
star
20

imgcode

Convert image to gcode instructions in rust.
Rust
3
star
21

nightcore-maker-api

Backend api service for nightcore maker using iris,ffmpeg
Go
3
star
22

acoustino

Generate Arduino code to play tones from MusicXML through piezo buzzer
Rust
3
star
23

SS_Encryptor

c++ encrypter security model script.
C++
2
star
24

Epsilon

python implementation of epsilon project
Python
2
star
25

entrega

An universal ecommerce backend service.
Rust
2
star
26

os-rs

Just a minimal kernel wrote for experimenting and practice.
Rust
1
star
27

arch-dotfiles

dot files of my arch setup
Shell
1
star
28

express-blog

An react app providing user interface for my express-blog-api
TypeScript
1
star
29

Egg-Catcher-C-plus-plus-Game-Dos-Version

Old egg catcher game model in c++
C++
1
star
30

BINGO

C
1
star
31

Voca

Voice assistant in Python
Python
1
star
32

Hooked_Random_For_C-plus-plus

This build hooks random function in stdlib to accept one params as to find random of range.
C
1
star
33

personal-page

My personal webpage
JavaScript
1
star
34

youtube2mp3

Qt based youtube 2 mp3 converting software
Python
1
star
35

express-blog-api

An api service for express blog
Go
1
star
36

Best-Freeroam-Ever-GM

Freeroam Gamemode for SAMP
Pawn
1
star
37

uniscan

Just a mirror of uniscan project
Perl
1
star
38

AOC-Solutions

Advent of code solutions
Rust
1
star
39

imgcode-rs

Image to gcode converter for raster images
Rust
1
star
40

SudokuSolver

C++ application to solve sudoku puzzles
C++
1
star
41

pawn-test

Pawn
1
star
42

plagiarism-checker

JavaScript
1
star