AuburnSounds / wren-port

A port of the Wren programming language to D. Because why not.
Other
17 stars 1 forks source link
dlang interpreter wren wren-language

wren-port

Wren is a small, fast, class-based concurrent scripting language. wren-port is a port of the Wren programming language implementation to D, intended for embedding. This is useful is you want a nothrow @nogc fast interpreter in your D application.

The original Wren implementation is here.

Changes from original

1. Build information

System.isDebugBuild allows to know if the -debug flag was used to build Wren, in case you want to disable some sort of live-scripting at release.

2. Float literal terminal character

1.0f, 2L and 2.0F are valid Wren double literals in this fork. This helps sharing bits of code between D and Wren.

3. $ operator

The new $ operator is calling a host-provided function. This allow to query entities with a nice syntax.

Example:

($"_imageKnob").hasTrail = false

4. Optional trailing semicolons

This feature can be enabled in WrenConfiguration (default = disabled).

config.acceptsTrailingSemicolons = true;

When enabled, imports, statements, and variable declarations MAY end with a single trailing semicolon.

var a = 2;                          // VAR-DECL [;]
a = 7;                              // STATEMENT [;]
import "beverages";                 // IMPORT STRING [;]
import "beverages" for Coffee, Tea;

This help porting between D and Wren in practice.

This translation was performed by int3 Systems and sponsored by Auburn Sounds.