Giter VIP home page Giter VIP logo

ayysee's Introduction

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. 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.

ayysee's People

Contributors

justinrubek avatar

Stargazers

 avatar  avatar

Watchers

 avatar

ayysee's Issues

Improved syntax

There is room for tweaking the existing syntax. Currently the syntax is inspired by a mix of languages, including predecessors like MScript and unrelated languages like Rust. The language has been designed to be fairly easy to parse and not have many complicated language features beyond what lalrpop makes easy.

goals

  • asm! construct
  • comments (//, /**/)
  • IC constants (nan, pi, pinf, ninf, etc)
  • Object types (GasType.Oxygen, etc)

Generate assembly code

Support for generating assembly is present, but it is not entirely correct in its implementation. In order for this issue to be marked complete it should be possible to generate a working program. Ideally there would be multiple programs that are usable in game.

Code generation was introduced in #4 and touched upon in #10 and #11

programs

This is a list of desired programs that should be possible to create. These should be added to the examples directory

  • greenhouse-regulator
  • battery-backup-regulator
  • gas-mixer

Planned features

  • Syntax definition and parsing
  • Stationeers MIPS instruction type definitions
  • #2

Additionally, once the initial steps of the project has been completed there will be more work to perform:

  • Optimizations
  • #3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.