aiscript

Creator: coderz1093

Last updated:

0 purchases

aiscript Image
aiscript Images
Add to Cart

Description:

aiscript

AiScript for Dart #



AiScript parser and interpreter for Dart. Based on the reference implementation (syuilo/aiscript). This library has a very similar API to the original.
AiScript is a lightweight scripting language that was designed to run on top of JavaScript. For more information, check out the original repo's Getting started guide (en)
This package also contains a command line REPL program in bin/repl.dart
Implementation details #

Core:v will correspond to the latest AiScript version that this is compatible with (not the library's actual version).
Currently fully compatible with: AiScript v0.16.0
Mostly acts the same as the original implementation. If you find any differences, please report it as a bug (unless explicitly specified below).
Similar to the original, the API of this library is still unstable. Please be careful when upgrading to a new minor version (e.g. 0.1.0 -> 0.2.0) as breaking API changes might be present.

Non-standard behaviors #

Out of range array assignments are allowed for now. Empty spots will be filled with null values.
Null safety: All functions must return a Value object. If a function doesn't need to return a value, it must still return a NullValue object.
Number values are passed to functions as a copy. Other types of values are marked as final and cannot be changed once initialized.
Modules are supported through an unofficial extension. You can import modules in your script using the require() function. This feature can be disabled by setting the disableExtensions parameter to true when creating an Interpreter.
Nested namespaces are allowed.
Error values act similar to and can be used as string values. However, you cannot perform string operations on them.

API reference #
View on pub.dev
Examples #
See /example for more examples.
import 'package:aiscript/aiscript.dart';

void main() async {
// Create the parser
final parser = Parser();

// Parse the script
final ParseResult res = parser.parse('<: "Hello world!"');

// Create the interpreter state with the print function (optional)
final state = Interpreter({}, printFn: print);

// (Optional) Set the preprocessed source of the program
// This will be used for error messages
state.source = res.source;

// Finally, execute the script
await state.exec(res.ast); // Output: Hello world!
}
copied to clipboard
License #
MIT
This project's test suite contains code from syuilo/aiscript which also uses the same license.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.