All Projects → Nafees10 → qscript

Nafees10 / qscript

Licence: MIT License
A Simple Scripting Language

Programming Languages

d
599 projects

Projects that are alternatives of or similar to qscript

RVM
Rcore Virtual Machine
Stars: ✭ 59 (+73.53%)
Mutual labels:  virtual-machine
Windows-11-VPS
😎😘 Free Windows 11 VPS for 4 Hours ! Easy Method!
Stars: ✭ 70 (+105.88%)
Mutual labels:  virtual-machine
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (+82.35%)
Mutual labels:  virtual-machine
vein
🔮⚡️Vein is an open source high-level strictly-typed programming language with a standalone OS, arm and quantum computing support.
Stars: ✭ 31 (-8.82%)
Mutual labels:  virtual-machine
ModSecurityCRS
Implementation of ModSecurity, Core Rule Set (CRS) on Apache server. ModSecurity, sometimes called Modsec, is an open-source web application firewall. ModSecurity was installed and configured on an Ubuntu VM using Virtual Box
Stars: ✭ 24 (-29.41%)
Mutual labels:  virtual-machine
birsh
virsh replacement in bash
Stars: ✭ 14 (-58.82%)
Mutual labels:  virtual-machine
kcs
Scripting in C with JIT(x64)/VM.
Stars: ✭ 25 (-26.47%)
Mutual labels:  virtual-machine
Zen
Zen is a general purpose programming language designed to build simple, reliable and efficient programs.
Stars: ✭ 24 (-29.41%)
Mutual labels:  virtual-machine
nolimix86
LLVM-based x86 emulator with support for unlimited virtual registers, used before the register allocation pass
Stars: ✭ 19 (-44.12%)
Mutual labels:  virtual-machine
PhantasmaChain
Blockchain with native storage and smart contract integration.
Stars: ✭ 74 (+117.65%)
Mutual labels:  virtual-machine
jaws
Jaws is an invisible programming language! Inject invisible code into other languages and files! Created for security research -- see blog post
Stars: ✭ 204 (+500%)
Mutual labels:  virtual-machine
hematita
A memory safe Lua interpreter
Stars: ✭ 118 (+247.06%)
Mutual labels:  virtual-machine
azure-vm-pricing
Mass-pricing of VMs on Azure based on CPU cores count and memory.
Stars: ✭ 14 (-58.82%)
Mutual labels:  virtual-machine
vm-automation
VirtualBox automation using Python
Stars: ✭ 1 (-97.06%)
Mutual labels:  virtual-machine
tsharkVM
tshark + ELK analytics virtual machine
Stars: ✭ 51 (+50%)
Mutual labels:  virtual-machine
8BitComputer
A simple 8 bit computer emulator in C++.
Stars: ✭ 18 (-47.06%)
Mutual labels:  virtual-machine
Lubuntu-VirtualBox
Lubuntu Bionic 18.04.5 Minimal and Full virtual machines. VirtualBox OVA files less than 400 MB and 1GB respectively
Stars: ✭ 25 (-26.47%)
Mutual labels:  virtual-machine
khufu
A template language for incremental-dom or DSL for javascript views
Stars: ✭ 19 (-44.12%)
Mutual labels:  virtual-machine
Breath OS
An OS for breathing? My DIY OS
Stars: ✭ 17 (-50%)
Mutual labels:  virtual-machine
lust
A parser, compiler, and virtual machine evaluator for a minimal subset of Lua; written from scratch in Rust.
Stars: ✭ 120 (+252.94%)
Mutual labels:  virtual-machine

QScript

A Simple Scripting Language.

This version is currently under development, and has several bugs, use v0.7.4

Setting it up

To add QScript to your dub package or project, run this in your dub package's directory:

dub add qscript

After adding that, look at the source/demo.d to see how to use the QScript class to execute scripts.


Getting Started

To get started on using QScript, see the following documents:

  • spec/architecture.md - How qscript works under the hood. Don't bother if you wont be using advanced stuff.
  • spec/libraries.md - Built in QScript libraries. // TODO write this
  • spec/syntax.md - describes QScript's syntax and more.
  • source/standalone.d- A demo usage of QScript in D langauage.
  • examples/ - Contains some scripts showing how to write scripts.

The code is thoroughly documented. Separate documentation can be found here.

Building

QScript comes with a standalone configuration, so it can be used without being first integrated into some program as a library.
You can build it using:

dub build qscript -c=standalone -b=release

You can use this executable to run scripts, inspect the generated AST for script, or the generated NaVM bytecode:

./qscript /path/to/script # execute a script

./qscript --ast /path/to/script # pretty print AST for script

./qscript --bcode /path/to/script # print NaVM bytecode for script

Features

  1. Dynamic arrays
  2. Static typed
  3. Function overloading
  4. References (pointers, but a bit simplified)
  5. Structs
  6. Enums
  7. Global Variables
  8. Importing libraries (script can be loaded as library too)

Hello World

This is how a hello world would look like in QScript. For more examples, see examples/.

import qscript_stdio;

function void main(){
	writeln ("Hello World!");
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].