kolasu

Framework to support building languages with Kotlin

License

License

GroupId

GroupId

me.tomassetti
ArtifactId

ArtifactId

kolasu
Last Version

Last Version

0.2.2
Release Date

Release Date

Type

Type

jar
Description

Description

kolasu
Framework to support building languages with Kotlin
Project URL

Project URL

https://github.com/ftomassetti/kolasu
Source Code Management

Source Code Management

https://github.com/ftomassetti/kolasu.git

Download kolasu

How to add to project

<!-- https://jarcasting.com/artifacts/me.tomassetti/kolasu/ -->
<dependency>
    <groupId>me.tomassetti</groupId>
    <artifactId>kolasu</artifactId>
    <version>0.2.2</version>
</dependency>
// https://jarcasting.com/artifacts/me.tomassetti/kolasu/
implementation 'me.tomassetti:kolasu:0.2.2'
// https://jarcasting.com/artifacts/me.tomassetti/kolasu/
implementation ("me.tomassetti:kolasu:0.2.2")
'me.tomassetti:kolasu:jar:0.2.2'
<dependency org="me.tomassetti" name="kolasu" rev="0.2.2">
  <artifact name="kolasu" type="jar" />
</dependency>
@Grapes(
@Grab(group='me.tomassetti', module='kolasu', version='0.2.2')
)
libraryDependencies += "me.tomassetti" % "kolasu" % "0.2.2"
[me.tomassetti/kolasu "0.2.2"]

Dependencies

compile (5)

Group / Artifact Type Version
org.antlr : antlr4-runtime jar 4.7.2
org.jetbrains.kotlin : kotlin-stdlib jar 1.3.20
org.jetbrains.kotlin : kotlin-reflect jar 1.3.20
com.fifesoft : rsyntaxtextarea jar 2.5.8
com.fifesoft : autocomplete jar 2.5.8

test (3)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-test jar 1.3.20
org.jetbrains.kotlin : kotlin-test-junit jar 1.3.20
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Kolasu

Build Status Gitter

Kolasu supplies the infrastructure to build a custom, possibly mutable, Abstract Syntax Tree (AST) using Kotlin. In particular it can be integrated easily with ANTLR, but it can also be used without.

It stands for Kotlin Language Support.

Features

Extend your AST classes from Node to get these features:

  • Navigation: utility methods to traverse, search, and modify the AST
  • Printing: print the AST as XML, as JSON, as a parse tree

Classes can have a name, and classes can reference a name. Utilities for resolving these references are supplied.

Kolasu tries to be non-invasive and implements this functionality by introspecting the AST. All properties, and therefore the whole tree structure, will be detected automatically.

Origin

Kolasu was born as a small framework to support building languages using ANTLR and Kotlin.

Using Kolasu in your project

Releases are published on Bintray:

repositories {
    maven { url 'https://maven.pkg.github.com/strumenta/strumenta-oss-maven' }
}

dependencies {
    compile "com.strumenta:kolasu:1.0.5"
}

Snapshots are published on JitPack.

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile "com.github.strumenta:kolasu:master"
}

How to format code

Run:

./gradlew ktlintFormat

Projects using Kolasu

Kolasu is used in several internal and commercial projects developed at Strumenta.

It is also used in an open-source project named Jariko. Jariko is an interpreter for RPG running on the JVM.

Publishing

To publish releases you need to set the environment variables GPR_USER and GPR_API_KEY.

Versions

Version
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0