/ekko

A experimental programming language with many temporal features

Primary LanguageJavaScriptMIT LicenseMIT

Logo

Ekko

A experimental programming language with many temporal features.

// Greetings

stdout <- "Hello, world"

Language Specification

See the file src/syntax/ekko.ohm for the grammar.

The language is very much in a rapid design phase right now. A language manual will be coming as soon as the basic ideas start to settle.

Building

Nodejs is required to build and run this project. Make sure you have a recent version of Node, since the source code uses a fair amount of very modern JavaScript.

Clone the repo, then run npm install.

You can then run npm test.

Usage

You can run this on the command line or use this as a module in a larger program.

Command line syntax:

node ekko.js <filename> <outputType>

The outputType indicates what you wish to print to standard output:

OptionDescription
astThe AST
analyzedThe decorated AST
optimizedThe optimized decorated AST
jsThe translation of the program to JavaScript

To embed in another program:

import { compile } from "ekko"

compile(programAsString, outputType)

where the outputType argument is as in the previous section.

Original Authors

@rtoal, @amandacmarques, @kirakira0

Contributing

We’re happy to take PRs. As usual, be nice when filing issues and contributing. We’d love to see any improvements you might have for the language and its implementation.

Make sure to run npm test before submitting the PR.