Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Coffeebird

Build Status

A DSL that compiles to RBLang.

RBLang is Rainbird's XML based language which is used to define concepts, relationships, and rules to solve complex decision making problems. Coffeebird replicates all of the features of RBLang without the visual noise of XML.

Syntax

Full syntax documentation can be found here.

concept Person (type: string)
concept Country (type: string)
concept Language (type: string)

rel Person - speaks - Language
rel Person - lives in - Country
rel Country - national language - Language

Language("English")
Language("French")
Language("German")
Country("England")
Country("France")

"England" - national language - "English" (cf: 100)
"France" - national language - "French"

// This is a comment
speaks (cf: 75, minimumRuleCertainty: 60) {
  %S - lives in - %COUNTRY;
  %COUNTRY - national language - %O;
}

CLI

You can install coffeebird globally to invoke the transpiler from the command line.

Install it globally from NPM

npm i coffeebird -g

Usage

coffeebird [input]

transpile a file to RBLang

Commands:
  coffeebird transpile [input]  transpile a file to RBLang             [default]

Positionals:
  input  The file to transpile.

Options:
  --help        Show help                                              [boolean]
  --version     Show version number                                    [boolean]
  --output, -o

API

You can use Coffeebird programmatically by installing it via NPM and requiring it.

npm i coffeebird

The Coffeebird module exports two functions parse, and transpile.

const { parse, transpile } = require('coffeebird')

transpile(input)

Take an input string and output the transpiled RBLang.

parse(input)

Take an input Coffeebird string and outputs an AST.

Development

Ensure you have Node and npm installed.

# Clone the repository
git clone https://github.com/tom-sherman/coffeebird

# Move into the cloned directory
cd coffeebird

# Install dependencies
npm i

# Run tests
npm t

About

A DSL that compiles to RBLang.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published