qscript icon indicating copy to clipboard operation
qscript copied to clipboard

A Simple Scripting Language

QScript

A Simple Scripting Language.

For last stable version, see v0.7.4

QScript is currently under development, and being redesigned under a new specification, see spec/spec.md.

Setting it up

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

dub add qscript

Look at the source/demo.d to see how to use QScript


Getting Started

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

  • spec/syntax.md - language specification
  • examples/ - Contains some scripts showing how to write scripts. // TODO write these

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=bin -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

// Most of these are not yet implemented

  1. Static typed
  2. Dynamic arrays
  3. Templates
  4. Conditional Compilation
  5. Compile Time Function Execution
  6. First class Functions
  7. Lambda Functions
  8. Function overloading
  9. Operator overloading
  10. Reference Data Types
  11. Structs
  12. Enums

Hello World

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

load(stdio);

fn main(){
	writeln("Hello World!");
}