All Projects → Strumenta → kolasu

Strumenta / kolasu

Licence: Apache-2.0 License
Kotlin Language Support – AST Library

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language
ANTLR
299 projects

Projects that are alternatives of or similar to kolasu

cppcombinator
parser combinator and AST generator in c++17
Stars: ✭ 20 (-55.56%)
Mutual labels:  parsing, ast, compilers
types-and-programming-languages
C++ Implementations of programming languages and type systems studied in "Types and Programming Languages" by Benjamin C. Pierce..
Stars: ✭ 32 (-28.89%)
Mutual labels:  compilers, interpreters
codeparser
Parse Wolfram Language source code as abstract syntax trees (ASTs) or concrete syntax trees (CSTs)
Stars: ✭ 84 (+86.67%)
Mutual labels:  parsing, ast
compiler-course-unipi
Lab of the course Languages, Compilers and Interpreters (Cod. 653AA) @ UNIPI
Stars: ✭ 18 (-60%)
Mutual labels:  compilers, interpreters
Down
Blazing fast Markdown / CommonMark rendering in Swift, built upon cmark.
Stars: ✭ 1,895 (+4111.11%)
Mutual labels:  parsing, ast
Escaya
An blazing fast 100% spec compliant, incremental javascript parser written in Typescript
Stars: ✭ 217 (+382.22%)
Mutual labels:  parsing, ast
Fortran-Tools
Fortran compilers, preprocessors, static analyzers, transpilers, IDEs, build systems, etc.
Stars: ✭ 31 (-31.11%)
Mutual labels:  compilers, transpilers
Libdparse
Library for lexing and parsing D source code
Stars: ✭ 91 (+102.22%)
Mutual labels:  parsing, ast
tiny-lang
tiny-lang — A different programming language. Supports a bunch of spoken languages.
Stars: ✭ 26 (-42.22%)
Mutual labels:  compilers, interpreters
markright
A customizable markdown parser in Elixir: pure pattern matching.
Stars: ✭ 14 (-68.89%)
Mutual labels:  parsing, ast
tree-hugger
A light-weight, extendable, high level, universal code parser built on top of tree-sitter
Stars: ✭ 96 (+113.33%)
Mutual labels:  parsing, ast
Antlr4
ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
Stars: ✭ 11,227 (+24848.89%)
Mutual labels:  parsing, antlr4
Yacep
yet another csharp expression parser
Stars: ✭ 107 (+137.78%)
Mutual labels:  parsing, ast
java-ast
Java Parser for JavaScript/TypeScript (based on antlr4ts)
Stars: ✭ 58 (+28.89%)
Mutual labels:  ast, antlr4
Graphql Go Tools
Tools to write high performance GraphQL applications using Go/Golang.
Stars: ✭ 96 (+113.33%)
Mutual labels:  parsing, ast
parcera
Grammar-based Clojure(script) parser
Stars: ✭ 100 (+122.22%)
Mutual labels:  ast, antlr4
Esprima
ECMAScript parsing infrastructure for multipurpose analysis
Stars: ✭ 6,391 (+14102.22%)
Mutual labels:  parsing, ast
Uaiso
A multi-language parsing infrastructure with an unified AST
Stars: ✭ 86 (+91.11%)
Mutual labels:  parsing, ast
lua-in-rust
The Lua programming language, implemented in Rust.
Stars: ✭ 76 (+68.89%)
Mutual labels:  compilers, interpreters
kataw
An 100% spec compliant ES2022 JavaScript toolchain
Stars: ✭ 303 (+573.33%)
Mutual labels:  parsing, ast

Kolasu

Maven Central javadoc Build Status

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 on its own. Kolasu strives to be usable and idiomatic also in Java projects.

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. It evolved over the time as it was used at Strumenta as part of open-source and commercial projects for building transpilers, interpreters, compilers, and more.

Using Kolasu in your project

Releases are published on Maven Central:

dependencies {
    compile "com.strumenta.kolasu:kolasu-core:1.3.4"
}

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].