NodeScript 1.1.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package NodeScript --version 1.1.6
                    
NuGet\Install-Package NodeScript -Version 1.1.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NodeScript" Version="1.1.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NodeScript" Version="1.1.6" />
                    
Directory.Packages.props
<PackageReference Include="NodeScript" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NodeScript --version 1.1.6
                    
#r "nuget: NodeScript, 1.1.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=NodeScript&version=1.1.6
                    
Install as a Cake Addin
#tool nuget:?package=NodeScript&version=1.1.6
                    
Install as a Cake Tool

NodeScript

Tests Benchmark NuGet Version

NodeScript is a rudimentary programming language designed to function on 'nodes', intended for use in puzzle games. Find more details here

Nodes

  • Input nodes will continuously attempt to send the next line. It has only one output.
  • Regular nodes can take in one string at a time, process it and send it to a set number of outputs. Each node can store a single string in mem. mem is the only variable which will persist between executions.
  • Combiner nodes can merge multiple inputs into one output. It offers no options to choose which string goes through first, picking whatever comes first.
  • Output nodes will consume the lines sent to it, storing it in a string.

Features

  • Basic arithmetic and boolean logic
  • Variables - All variables are global in scope
  • Indexing
    • Element_of: v[i]
    • Slice: v[i:j]
  • Basic control flow (if-else)
  • Native functions for things like:
    • String manipulation
    • Data conversion and parsing
  • Dynamic typing between:
    • string
    • string[]
    • int
    • bool

Notably, there are NO loops within the scripting itself. No while. No for. Execution will occur line by line and will only start when a node receives an input string to be processed.

Syntax

Every line contains a single statement. All statements will start with a relevant keyword for the operation.

  • SET: Sets a variable to a certain value. Variables do not need to be declared. Syntax: SET <variable_name>, <expression>
  • PRINT: Sends a string to a specific output node, denoted by an index. Syntax: PRINT <output_idx>, <expression>
  • RETURN: Ends the program (until the next input comes). Syntax: RETURN
  • IF: Executes the following code if the given expression is true. Syntax IF <expression>
  • ELSE: Executes the following code if the previous if statement was false. Syntax ELSE
  • ENDIF: Marks the end of the IF clause. Either ends the IF code section or the ELSE code section. Only one is needed per IF/ELSE statement. Syntax ENDIF
  • NOP: Does nothing. Helpful for synchronizing the timing of multiple nodes. Syntax NOP
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.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
1.2.0 96 2/22/2025
1.1.6 81 2/22/2025
1.1.5 83 2/7/2025
1.1.4 101 9/2/2024
1.1.3 82 9/2/2024
1.1.2 92 8/31/2024
1.1.1 89 8/30/2024
1.1.0 101 8/28/2024
1.0.4 100 8/27/2024
1.0.3 97 8/26/2024
1.0.2 109 8/25/2024
1.0.1 113 8/24/2024
1.0.0 123 8/24/2024

40% performance increase by removing the need for stack resizing