https://github.com/neandertech/quickmaffs
https://github.com/neandertech/quickmaffs
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/neandertech/quickmaffs
- Owner: neandertech
- Created: 2022-08-05T13:01:42.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-05T08:58:25.000Z (over 2 years ago)
- Last Synced: 2025-03-24T15:21:56.557Z (about 1 year ago)
- Language: Scala
- Size: 708 KB
- Stars: 13
- Watchers: 1
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Quickmaffs
A small arithmetic language and set of tooling, intended to demonstrate
how easy it is to write Language Servers using [Langoustine](https://github.com/neandertech/langoustine)
and [Jsonrpclib](https://github.com/neandertech/jsonrpclib).
Through the magic of rabbit holes, the project has a batch interpreter and
a REPL as well for some reason.
[Scala 3](https://docs.scala-lang.org/scala3/book/introduction.html#),
[Scala CLI](https://scala-cli.virtuslab.org),
[Cats-effect 3](https://typelevel.org/cats-effect/),
[FS2](https://fs2.io/#/)
## Pre-requisites
1. Ensure you have [Scala CLI](https://scala-cli.virtuslab.org) installed
## Build
* LSP: `make lsp`
* Batch interpreter: `make interpreter`
* REPL: `make repl`
Everything: `make all`
## Usage
LSP: configure your editor to use `bin/lsp` as a language server for `*.qmf` files

REPL: `bin/repl`

Interpreter
