Tree


README.mdcommits | blame
cmd/
ebnf/
process_ebnf.gocommits | blame
random.gocommits | blame

README.md

## Gromit

[![Build Status](https://travis-ci.org/ligurio/gromit.png?branch=master)](https://travis-ci.org/ligurio/gromit) [![Go Report Card](https://goreportcard.com/badge/github.com/ligurio/gromit)](https://goreportcard.com/report/github.com/ligurio/gromit)

is a grammar fuzzer that is ideally suited for complex text and binary
grammars. Gromit uses EBNF format for grammar specification. EBNF is an
Extended Backus-Naur Form (also known as Context-Free Grammars). It is the
standard format for the specification and documentation of programming
languages. Extended BNF is defined in the [ISO/IEC 14977
standard](http://www.iso.ch/cate/d26153.html).

## How-To Use

```
~$ cat ebnf/palindrome.ebnf
palindrome = "a" | "b" | "aa" | "bb" | "a" palindrome "a" | "b" palindrome "b" .
~$ ./gromit -file ebnf/palindrome.ebnf -start palindrome
abba
~$ ./gromit -file ebnf/palindrome.ebnf -start palindrome
baab
```

See [screencast]().