Skip to content

Furlang is a toy language based on LLVM and ANTLR4, developed in Kotlin

License

Notifications You must be signed in to change notification settings

Cach30verfl0w/furlang

Repository files navigation

Furlang

Furlang is a toy programming language developed by Cach30verfl0w for learning Compiler Engineering and working with the LLVM API, completely designed in Kotlin/Native. This repository contains the complete toolchain with embeddable compiler, IntelliJ Idea Plugin, Gradle Plugin and parser frontend.

Credits and Dependencies

This project would not have been possible or much more complicated without the work of the following people and projects listed below.

  • Marc-André Moreau's LLVM prebuilt repository (GitHub) providing prebuilts for the CInterop module for the LLVM usage on Kotlin/Native (MIT License)
  • Alexander Hinze's help with a few design choices in the language itself and some ANTLR4 knowledge (some of the grammar is copied/inspired from the Ferrous Compiler Parser-Lexer Frontend Vanadium)
  • The syntax of the language is heavily inspired by the Kotlin programming language and other parts are inspired by the Rust programming language
Name Author License
The LLVM Project LLVM Apache 2.0 with exceptions
ANTLR Kotlin Runtime Strumenta Apache 2.0 and BSD-3-Clause
ANTLR4 Intellij Adapter ANTLR Project BSD 2-Clause
IntelliJ Platform Gradle Plugin JetBrains Apache License 2.0
Gradle Download Task Michel Krämer Apache License 2.0
Mordant Aj Alt Apache License 2.0
kotlin-logging Ohad Shai Apache License 2.0
clikt Aj Alt Apache License 2.0
kotlinx-io Kotlin Apache License 2.0

About

Furlang is a toy language based on LLVM and ANTLR4, developed in Kotlin

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published