Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/liraymond04/awa5_rs

An AWA5.0 CLI tool written in Rust (btw)
https://github.com/liraymond04/awa5_rs

assembler awa5-0 command-line esolang interpretor jelly-hoshiumi parser phase-connect rust

Last synced: 3 months ago
JSON representation

An AWA5.0 CLI tool written in Rust (btw)

Awesome Lists containing this project

README

        

# AWA5.RS

An [AWA5.0](https://github.com/TempTempai/AWA5.0) CLI tool written in Rust (btw)

Runs as an AWA5.0 interpreter for Awatisms with file extension `.awasm` and Awatalk with file extension `.awa`

Can also run as an assembler for Awatisms and Awatalk to object files, and assembled object files with extension `.o` can be run by the interpreter

## Installation

To install or build from source, you will need to have `rust` or `rustup` installed

```bash
# using Arch Linux's package manager
$ sudo pacman -S rust # or rustup
```

If you installed `rustup`, you need to install a toolchain

```bash
$ rustup toolchain install latest
```

### With Cargo

You can install from crates.io using cargo

```bash
$ cargo install awa5_rs
```

And then run from the command line

```bash
$ awa5_rs --help
```

### From source

Or clone this repository and build it from source using cargo

```bash
$ git clone https://github.com/liraymond04/awa5_rs.git
$ cd awa5_rs
$ cargo build
$ ./target/debug/awa5_rs # you can also build and run with `cargo run`, and you can pass flags with `cargo run -- --help` for example
```

### Web builds

You need Emscripten or [emsdk](https://github.com/emscripten-core/emsdk) installed

```bash
$ cd examples/wasm/raylib
$ cargo build --target wasm32-unknown-emscripten
$ cd target/wasm32-unknown-emscripten/debug
$ emrun index.html # opens the web build on localhost:6931, which can be opened in a browser
```

## Usage

```
Usage: awa5_rs [OPTIONS] [input]

Arguments:
[input] File to interpret or convert

Options:
-o, --output Output to file with new format .awasm .awa .o
-s, --string String to interpret or convert
--awasm Parse string as awasm
--awa Parse string as awatalk
-p, --path Search paths separated by ';' for shared libraries
-i, --include Include paths separated by ';' for source files
-h, --help Print help
-V, --version Print version
```