Skip to content

Commit b360a1c

Browse files
committed
Updated README
1 parent 36c5953 commit b360a1c

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

README.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,57 @@
1-
# cyk-algorithm
1+
# CYK Algorithm
2+
3+
<p align="left">
4+
<a href="https://opensource.org/licenses/MIT"><img alt="License" src="https://img.shields.io/github/license/deryeger/cyk-algorithm?style=for-the-badge"></a>
5+
<a href="https://travis-ci.com/deryeger/cyk-algorithm"><img alt="Build" src="https://img.shields.io/travis/com/deryeger/cyk-algorithm?style=for-the-badge"></a>
6+
<a href="https://bintray.com/deryeger/maven/cyk-algorithm"><img alt="Download" src="https://img.shields.io/bintray/dt/deryeger/maven/cyk-algorithm?style=for-the-badge"></a>
7+
</p>
8+
9+
> Kotlin Multiplatform implementation of the CYK algorithm.
10+
11+
## Installation
12+
13+
#### build.gradle.kts
14+
15+
```
16+
repositories {
17+
maven(url = "https://dl.bintray.com/deryeger/maven")
18+
}
19+
20+
dependencies {
21+
implementation("eu.yeger:cyk-algorithm:0.2.0")
22+
}
23+
```
24+
25+
## Usage
26+
27+
This library contains two variants of the algorithm.
28+
Both versions can be used by providing a grammar to the included parser or by programmatically generating the required model.
29+
While the first version only computes the end result, `runningCYK` computes a list containing every step of the algorithm.
30+
31+
```
32+
cyk("hello world") {
33+
grammar("S") {
34+
"""
35+
S -> A B
36+
A -> hello
37+
B -> world
38+
""".trimIndent()
39+
}
40+
}.getOrElse { error(it) }
41+
42+
43+
runningCYK("hello world") {
44+
grammar("S") {
45+
"""
46+
S -> A B
47+
A -> hello
48+
B -> world
49+
""".trimIndent()
50+
}
51+
}.getOrElse { error(it) }
52+
```
53+
54+
55+
## Example
56+
57+
An example project using this library can be found [here](https://github.com/DerYeger/cyk-visualizer).

0 commit comments

Comments
 (0)