33 lines
842 B
Markdown
33 lines
842 B
Markdown
# Peppermint C89 port
|
|
|
|
This directory is a clean native C89 implementation of the language behavior
|
|
present in the original TypeScript interpreter.
|
|
|
|
Original project: https://github.com/lainq/peppermint
|
|
|
|
Implemented subset:
|
|
|
|
- `let name := expression` bindings
|
|
- integer and floating-point literals
|
|
- quoted strings with basic escapes
|
|
- `+`, `-`, `*`, `/`, and `%`
|
|
- string concatenation with `+`
|
|
- `#` comments and line-oriented programs
|
|
- `@argv` and `@argv:N`
|
|
- `@env:NAME` and `@exit`
|
|
|
|
The original repository also contains a separate Brainfuck compiler/runtime;
|
|
that is not silently folded into this first language-core port.
|
|
|
|
## Build
|
|
|
|
Requires only a C compiler with C89 support:
|
|
|
|
```sh
|
|
make
|
|
./peppermint smoke.ppm hello
|
|
```
|
|
|
|
The build uses `-std=c89 -pedantic` and has no TypeScript, Node.js, Beef, or
|
|
third-party runtime dependency.
|