dhakehurst / net.akehurst.language

Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maven Central npm Generic badge

AGL: A Grammar Language (or maybe Akehurst Grammar Language!)

Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc)

There are many parser technologies, frameworks, generators, libraries that already exist. When I first started this one in about 2007 there was none that met all the requirements that I have. It has taken me several years (too many) to finally reach the stage where I am happy to publish it. (mostly because it was a home project and not worked on very frequently until the last couple of years, 2017/2018).

My Requirements:

  • Simple grammar for defining a language with no restrictions -- i.e. should support left & right recursive rules,
  • Useable in Java and Javascript (other platforms/languages a bonus but not essential)
  • No need to worry about keyword/identifier clashes
  • Interpreted at runtime, i.e. no generate parser step.
  • Supports families of languages, i.e. grammar composition/extension

Other

Articles

TODO

lots:

  • performance improvements
  • PT is not always what one expects

Build

There are currently a number of failing tests, these indicate things to be fixed, and desired performance improvements. To build locally the latest version, use assemble or publishToMavenLocal.

> cd net.akehurst.language
> ./gradlew clean assemble

About

Generic Language (DSL) support for kotlin multiplatform (parser, syntax-analyser, formatter, processor, etc)

License:Apache License 2.0


Languages

Language:Kotlin 97.0%Language:ANTLR 1.8%Language:Rascal 0.5%Language:Java 0.4%Language:PEG.js 0.2%Language:JavaScript 0.1%Language:BASIC 0.0%