ISB 0.2.0
dotnet add package ISB --version 0.2.0
NuGet\Install-Package ISB -Version 0.2.0
<PackageReference Include="ISB" Version="0.2.0" />
<PackageVersion Include="ISB" Version="0.2.0" />
<PackageReference Include="ISB" />
paket add ISB --version 0.2.0
#r "nuget: ISB, 0.2.0"
#addin nuget:?package=ISB&version=0.2.0
#tool nuget:?package=ISB&version=0.2.0
Interactive Small Basic (ISB)
Interactive Small Basic (ISB) is a simple scripting language derived from Microsoft Small Basic.
Background
ISB is a light-weight solution to support the following scenarios:
- As an in-game scripting language, to be embedded in Unity games.
- As a shell scripting language, to provide a command-line interface where simple code can be executed to control the host system.
ISB is implemented in C# as the original Microsoft Small Basic does.
Usage
In your .Net project, add the NuGet package of ISB:
dotnet add package ISB
Now you are ready to create an instance of the ISB engine to compile and run BASIC code. For example, here is a C# program that runs ISB:
using System.Collections.Generic;
using ISB.Runtime;
using ISB.Utilities;
namespace test
{
class Program
{
static void Main(string[] args)
{
var engine = new Engine("test");
string code = "print(\"Hello, World!\")";
engine.Compile(code, true);
if (engine.HasError)
{
ReportErrors(engine.ErrorInfo.Contents);
return;
}
engine.Run(true);
if (engine.HasError)
{
ReportErrors(engine.ErrorInfo.Contents);
return;
}
}
private static void ReportErrors(IReadOnlyList<Diagnostic> diagnostics)
{
foreach (var diagnostic in diagnostics)
{
System.Console.WriteLine(diagnostic.ToDisplayString());
}
}
}
}
Unity Integration
ISB can be embedded in Unity projects as an in-game scripting language.
ISB supports running as a Unity coroutine so that the execution of ISB code won't block the main loop, no multi-threading needed.
See Unity Integration Demos for example code.
More Info
See ISB's git repo https://github.com/wixette/isb for more details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net5.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.2.0 | 198 | 12/6/2021 |
0.1.4 | 5,029 | 11/24/2021 |
0.1.3 | 191 | 11/6/2021 |
0.1.2 | 167 | 11/4/2021 |
0.1.1-preview20211104063319 | 199 | 11/4/2021 |