whydia is a small embeddable scripting language

Overview

whydia is a small embeddable scripting language

It's inspired by Javascript, Lox, Lua, Python, Rust and more

Reference

Overview

Declaring variables using let

let hello = 4;

Semicolons are needed :)

let test = 5;
let another = 4;

The language has strings, numbers, arrays, objects and null and booleans

let string = "hallo";
let number = 4; 
let array = [];
let object = {};
let _null = null;
let bool = true;

You access properties on objects using .

let obj = {};
obj.hi = "hi!";

There is the print statement to print a value, but this will be removed

let name = "nils";
print name;

Functions are first class

let obj = {};
obj.hello = helloFn;
obj.hello();

Functions are declared using fn

fn greet(name) {
    return "hello, " + name;
}

Functions are closures

Comments using #

# hi!

Multiline comments using ## until ##

##
hi
comment
##

There are many native functions, that can easily be customized and added/removed by the host

# rocket game
turnRocketLeft(29);
turnRocketRight(32);

# chat bot
message.respond("hi");

# dangerous http requests
fn callback(html) {
    print(html);
}
fetch("https://github.com/adiyenuubarii", callback);

Basic arithmetic and boolean logic is available

let a = 5;
let b = 5;
print(a + b / b * b - a % b);
print(true and false or false or true and false);

Loops and conditionals

5 { print("yeet"); break; } # no for loops for now, but will be added (probably like python) }">
let x = true;
if x {
    print("true!");
} else {
    print("false :(");
}

loop {
    while 1 > 5 {
        print("yeet");
        break;
    }
    # no for loops for now, but will be added (probably like python)
}

Pattern matching!

print "our thing didn't match here", { x, y } => print "we got it! " + x, "test" => print "string 'test'", other => print "something else: " + other, }">
# design is still wip

let obj = {};
obj.x = 5;
obj.y = "hey";

match obj {
    { no } => print "our thing didn't match here",
    { x, y } => print "we got it! " + x,
    "test" => print "string 'test'",
    other => print "something else: " + other,
}

whydia is dynamically and strongly typed

Detail

Reserved Keywords

Statements

fn let if else loop while for break (print temporary)

Values

true false null

Operators

not and or

Operators

== >= > <= < != + - * / %

You might also like...
👾 Run WebAssembly (WASM-4) games on small devices (like PyBadge)
👾 Run WebAssembly (WASM-4) games on small devices (like PyBadge)

👾 gamgee Run WebAssembly (WASM-4) games on small devices. Gamgee is a WASM-4 games emulator written in Rust and designed to be executed on devices wi

A script language like Python or Lua written in Rust, with exactly the same syntax as Go's.

A script language like Python or Lua written in Rust, with exactly the same syntax as Go's.

Tyrade: a pure functional language for type-level programming in Rust

A pure functional language for type-level programming in Rust

An OOP programming language I am making by following Crafting Interpreters.

horba An OOP programming language I am making by following Crafting Interpreters. https://craftinginterpreters.com/ I intend it to have a somewhat C-s

A dynamically typed, interpreted, stack-based language.

Stacc A dynamically typed, interpreted, stack-based language. How does it work? Each call-frame/scope has its own variables and stack, so you can get/

Yet Another Programming Language

Yet Another Programming Language

🐱‍👤 Cross-language static library for accessing the Lua state in Garry's Mod server plugins

gmserverplugin This is a utility library for making Server Plugins that access the Lua state in Garry's Mod. Currently, accessing the Lua state from a

luau bindings for the Rust programming language

🌔 luau-rs Luau bindings for the Rust programming language using bindgen ⚠️ Disclaimer This does not provide bindings for everything as luau does not

Program analysis playground for a simple, imperative language
Program analysis playground for a simple, imperative language

Proggers Proggers is a program analysis playground for a simple, imperative language. Features Numerical analysis using abstract interpretation Type-c

Owner
Adi Yenuubarii
I am this. This is me
Adi Yenuubarii
A small scripting language running on V8.

Rook A small scripting language running on V8. After spending a few hours playing with V8, it seems like the only way to make this work is by transpil

Ryan Chandler 2 Dec 16, 2022
Embeddable ED in rust

Add-ED The standard editor, now as a library Some time ago I decided to write an ED clone with syntax highlighting. On my way to that goal I needed to

null 4 Sep 30, 2022
A shell scripting language

Slash The system level language for getting the job done. Detailed documentation is available on the Slash site Motivation Bash is an awesome shell, b

null 27 Jun 17, 2022
An interactive scripting language where you can read and modify code comments as if they were regular strings

An interactive scripting language where you can read and modify code comments as if they were regular strings. Add and view text-based visualizations and debugging information inside your source code file.

Sumeet Agarwal 13 Apr 28, 2022
Lagoon is a dynamic, weakly-typed and minimal scripting language. 🏞

Lagoon is a dynamic, weakly-typed and minimal scripting language. It draws inspiration from a handful of modern languages including JavaScript, Rust and PHP.

Ryan Chandler 25 Jul 5, 2022
A forth-inspired, bytecode-compiled scripting language for Anachro Powerbus

Anachro Forth (core) Anachro Forth is a forth-inspired, bytecode-compiled scripting language for Anachro Powerbus platform. Use Case The intended use

null 14 May 27, 2022
A simple programming language made for scripting inspired on rust and javascript.

FnXY Programming Language Quick move: CONTRIBUTING | LICENSE What? FnXY is a simple programming language made for scripting inspired on rust and javas

null 2 Nov 27, 2021
Sol is a lightweight language primarily designed for scripting environments

☀️ Sol A dynamically-typed (for now) and procedural programming language. About Sol is a lightweight language primarily designed for scripting environ

Joshua 3 Jul 25, 2022
Arrowdantic is a small Python library backed by a mature Rust implementation of Apache Arrow

Welcome to arrowdantic Arrowdantic is a small Python library backed by a mature Rust implementation of Apache Arrow that can interoperate with Parquet

Jorge Leitao 52 Dec 21, 2022
A small application to convert a 3D model in .obj format into HTML and CSS

obj-to-html is a small application that converts a 3D model in .obj format into HTML and CSS that will display that model in a web browser, spinning a

Andrea 7 Dec 30, 2022