Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/justinrubek/ayysee
A custom programming language for Stationeers integrated circuits
https://github.com/justinrubek/ayysee
compiler flake language nix nix-flake rust stationeers
Last synced: 10 days ago
JSON representation
A custom programming language for Stationeers integrated circuits
- Host: GitHub
- URL: https://github.com/justinrubek/ayysee
- Owner: justinrubek
- License: mit
- Created: 2023-05-04T17:33:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-18T04:01:47.000Z (7 months ago)
- Last Synced: 2024-10-12T05:25:44.289Z (26 days ago)
- Topics: compiler, flake, language, nix, nix-flake, rust, stationeers
- Language: Rust
- Homepage: https://justinrubek.github.io/ayysee/
- Size: 396 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ayysee
https://justinrubek.github.io/ayysee
See example programs in the `examples` directory.
## about
`ayysee` is a language for writing programs that will run on ICs in [Stationeers](https://store.steampowered.com/app/544550/Stationeers/).
The ICs use an assembly language based on MIPS to allow for programmable logic in game.
Writing and refactoring programs can be a tedious and error-prone process.
Additionally there is a limitation on the number of lines of code available so having a higher level representation that can be full of comments and quality of life language features is beneficial.Making a compiler for Stationeers MIPS has been done before, but none of the existing projects seem to work properly to the level that I can use them.
Having tried to use a few I have yet to succeed in replacing any of my IC programs due to bugs in the output and restrictions on syntax.
As a result `ayysee` was created to be a playground for practicing making a programming language and to write more robust programs for the game.`ayysee` is currently in development, so there is little to no functionality that can be used in game.
Development will focus first on building an AST that can support the operations needed before emitting any assembly.