Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bjoernloetters/macrowave


https://github.com/bjoernloetters/macrowave

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/zen-pie/macrowave.svg?branch=master)](https://travis-ci.org/zen-pie/macrowave)
[![Build status](https://ci.appveyor.com/api/projects/status/o3dhn8q7m4xu6ahg/branch/master?svg=true)](https://ci.appveyor.com/project/keddelzz/macrowave/branch/master)

# macrowave

Macrowave is a Scala library, which brings scanner and parser generators to the 21st century.

Tools like [Lex], [Flex], [Bison] and [YACC] are well known among compiler engineers.
One disadvantage of those tools is that the creation (generation) of scanners and parsers doesn't belong to the actual
process of compilation.
Using macros, the generation of the scanners and parsers can be achieved via meta-programming.
Thus, the disadvantage will disappear.

Macrowave allows to define a parsing expression grammar, which gets transformed into a regular automaton for
tokenization and a table driven LALR(1)-parser.

## Building macrowave
The project macrowave is built with [SBT] 0.13.12 or later and its master branch with [Scala] 2.11.8.

To build the project:
- Install [SBT] and [Scala].
- Clone this project and `cd` into the root directory of the cloned repository.
- Run
- `sbt compile` to build the project
- `sbt test` to run the unit tests

## Using macrowave
- TODO: Nothing to use, yet!

## Trivia
The name "macrowave" is obviously a play on "macros" and "microwave".

## Authors
- [keddelzz](https://github.com/keddelzz)
- [kuchenkruste](https://github.com/kuchenkruste)

[Bison]: http://dinosaur.compilertools.net/bison/
[Flex]: http://dinosaur.compilertools.net/flex/
[Lex]: http://dinosaur.compilertools.net/lex/
[SBT]: http://www.scala-sbt.org/
[Scala]: https://www.scala-lang.org/
[YACC]: http://dinosaur.compilertools.net/yacc/