Skip to content

Commit 3ceb910

Browse files
author
Maarten
committed
Add pom,update readme
1 parent 611f26f commit 3ceb910

File tree

3 files changed

+167
-1
lines changed

3 files changed

+167
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ hs_err_pid*
1818
gradle/
1919
gradlew
2020
*.gradle
21-
gradlew.*
21+
gradlew.*
22+
target/

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
# Nondeterministic finite state automata
22
This is a library that provides an implemention [nondeterminstic finite state automata](https://en.wikipedia.org/wiki/Nondeterministic_finite_automaton) (NFAs) in Java. You can think of NFAs as flowcharts: you are in a state, take some action, and arrive in a new state. The action can produce a side effect, such as writing a string to a tape.
33

4+
## Usage
5+
Download [the latest JAR](https://github.com/digitalheir/nfa/releases/latest) or grab from Maven:
6+
7+
```xml
8+
<dependencies>
9+
<dependency>
10+
<groupId>org.leibnizcenter</groupId>
11+
<artifactId>nfa</artifactId>
12+
<version>1.0.0</version>
13+
</dependency>
14+
</dependencies>
15+
```
16+
17+
or Gradle:
18+
```groovy
19+
compile 'org.leibnizcenter:nfa:0.9.6'
20+
```
21+
422
## Why?
523
There are already a bunch of libraries out there which work with deterministic finite state automata (DFAs), and there is a well-known result in automata theory which says that for any language recognized by an NFA, we can construct a DFA which recognizes the same language.
624

pom.xml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns="http://maven.apache.org/POM/4.0.0"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>org.leibnizcenter</groupId>
8+
<artifactId>nfa</artifactId>
9+
<version>1.0.0</version>
10+
<packaging>jar</packaging>
11+
12+
<licenses>
13+
<license>
14+
<name>MIT License</name>
15+
<url>http://www.opensource.org/licenses/mit-license.php</url>
16+
</license>
17+
</licenses>
18+
19+
<developers>
20+
<developer>
21+
<name>Maarten Trompper</name>
22+
<email>maarten.trompper@gmail.com</email>
23+
<organization>Leibniz Center for Law</organization>
24+
<organizationUrl>http://www.leibnizcenter.org/</organizationUrl>
25+
</developer>
26+
</developers>
27+
28+
<name>${project.groupId}:${project.artifactId}</name>
29+
<description>Streaming non-deterministic finite automata</description>
30+
<url>https://github.com/digitalheir/java-nfa</url>
31+
32+
<scm>
33+
<connection>scm:git:git@github.com:digitalheir/java-nfa</connection>
34+
<developerConnection>scm:git:git@github.com:digitalheir/java-nfa.git</developerConnection>
35+
<url>git@github.com:digitalheir/java-nfa.git</url>
36+
</scm>
37+
38+
<dependencies>
39+
<dependency>
40+
<groupId>junit</groupId>
41+
<artifactId>junit</artifactId>
42+
<version>4.12</version>
43+
<scope>test</scope>
44+
</dependency>
45+
<dependency>
46+
<groupId>com.google.guava</groupId>
47+
<artifactId>guava</artifactId>
48+
<version>20.0</version>
49+
</dependency>
50+
51+
<dependency>
52+
<groupId>com.github.krukow</groupId>
53+
<artifactId>clj-ds</artifactId>
54+
<version>0.0.4</version>
55+
</dependency>
56+
<dependency>
57+
<groupId>org.jetbrains</groupId>
58+
<artifactId>annotations</artifactId>
59+
<version>RELEASE</version>
60+
</dependency>
61+
</dependencies>
62+
<distributionManagement>
63+
<snapshotRepository>
64+
<id>ossrh</id>
65+
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
66+
</snapshotRepository>
67+
<repository>
68+
<id>ossrh</id>
69+
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
70+
</repository>
71+
</distributionManagement>
72+
<build>
73+
<plugins>
74+
<plugin>
75+
<groupId>org.apache.maven.plugins</groupId>
76+
<artifactId>maven-compiler-plugin</artifactId>
77+
<configuration>
78+
<source>1.8</source>
79+
<target>1.8</target>
80+
</configuration>
81+
<version>3.3</version>
82+
</plugin>
83+
<plugin>
84+
<groupId>org.apache.maven.plugins</groupId>
85+
<artifactId>maven-source-plugin</artifactId>
86+
<version>2.4</version>
87+
<configuration>
88+
<!--<encoding>UTF-8</encoding>-->
89+
</configuration>
90+
<executions>
91+
<execution>
92+
<id>attach-sources</id>
93+
<goals>
94+
<goal>jar</goal>
95+
</goals>
96+
</execution>
97+
</executions>
98+
</plugin>
99+
<plugin>
100+
<groupId>org.apache.maven.plugins</groupId>
101+
<artifactId>maven-javadoc-plugin</artifactId>
102+
<version>2.10.3</version>
103+
<executions>
104+
<execution>
105+
<id>attach-javadocs</id>
106+
<goals>
107+
<goal>jar</goal>
108+
</goals>
109+
</execution>
110+
</executions>
111+
<configuration>
112+
<additionalparam>-Xdoclint:none</additionalparam>
113+
</configuration>
114+
</plugin>
115+
<plugin>
116+
<groupId>org.sonatype.plugins</groupId>
117+
<artifactId>nexus-staging-maven-plugin</artifactId>
118+
<version>1.6.7</version>
119+
<extensions>true</extensions>
120+
<configuration>
121+
<serverId>ossrh</serverId>
122+
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
123+
<autoReleaseAfterClose>true</autoReleaseAfterClose>
124+
</configuration>
125+
</plugin>
126+
<plugin>
127+
<groupId>org.apache.maven.plugins</groupId>
128+
<artifactId>maven-gpg-plugin</artifactId>
129+
<version>1.6</version>
130+
<executions>
131+
<execution>
132+
<id>sign-artifacts</id>
133+
<phase>verify</phase>
134+
<goals>
135+
<goal>sign</goal>
136+
</goals>
137+
</execution>
138+
</executions>
139+
</plugin>
140+
</plugins>
141+
</build>
142+
143+
<properties>
144+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
145+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
146+
</properties>
147+
</project>

0 commit comments

Comments
 (0)