Skip to content

A domain-specific language for Stationeers which compiles into IC10

License

Notifications You must be signed in to change notification settings

dbidwell94/stationeers_lang

Repository files navigation

Slang Language Documentation

Slang is a high-level programming language that compiles to IC10 assembly for Stationeers. It provides a familiar C-like syntax while targeting the limited instruction set of in-game IC10.

Quick Links

Overview

Slang aims to reduce the time spent writing IC10 assembly by providing:

  • Familiar syntax - C-like declarations, control flow, and expressions
  • Device abstraction - Named device bindings with property access
  • Automatic register allocation - No manual register management
  • Built-in functions - Math operations and device I/O as function calls
  • Temperature literals - Native support for Celsius, Fahrenheit, and Kelvin

Example

device gasSensor = "d0";
device airCon = "d1";

const TARGET_TEMP = 20c;

loop {
    yield();
    airCon.On = gasSensor.Temperature > TARGET_TEMP;
}

This compiles to IC10 that monitors temperature and controls an air conditioner.

Project Status

Slang is under active development. It may produce suboptimal code for complex programs. It is not a replacement for IC10, for performance-critical or large scripts, hand-written IC10 may still be preferred.

About

A domain-specific language for Stationeers which compiles into IC10

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published