1.12-3 -> 1.12-4
================
- re-enable Java 8 support - thanks to D. Lowe

1.12-2 -> 1.12-3
================
- upgrade to Java 11 - thanks to L.J. McGibbney

1.12-1 -> 1.12-2
================
- fixed RegExp.toString - thanks to A. Gargantini

1.11-8 -> 1.12-1
================
- added Valmari's minimization algorithm - contributed by S. Gregersen
- now supports Maven - thanks to S. Gregersen
- fixed missing check of 'minimize' option - thanks to V. Wuestholz
- fixed state naming for singleton automata - thanks to A.M.W. Younang and S. Gregersen
- RunAutomaton.setAlphabet now non-final - suggested by D. Lowe
- minor simplification of 'determinize' - suggested by V. Berchet

1.11-7 -> 1.11-8
================
- caching of isDebug, to avoid synchronized call to System.getProperty - thanks to G. Lundh

1.11-6 -> 1.11-7
================
- bug fix in Gibson's AutomatonMatcher - thanks to Y. Versley, D. Weiss, and D. Richardson

1.11-5 -> 1.11-6
================
- performance improvement in Automaton.isFinite - thanks to R. Muir

1.11-4 -> 1.11-5
================
- bug fix in Gibson's AutomatonMatcher - thanks to H-.M. Adorf and J. Gibson

1.11-3 -> 1.11-4
================
- bug fix and performance improvement in BasicOperations.concatenate - thanks to R. Muir

1.11-2 -> 1.11-3
================
- added Automaton.makeStringUnion (Daciuk et al.'s algorithm for constructing 
  a minimal automaton that accepts a union of strings) - contributed by D. Weiss
- added call to clearHashCode in Automaton.reduce - thanks to D. Weiss 
- minimization is now optional in RegExp.toAutomaton - suggested by H. Zauner
- SpecialOperations.reverse made public - suggested by D. Lowe

1.11-1 -> 1.11-2
================
- fixed bug in RegExp parser - thanks to A. Meyer

1.10-5 -> 1.11-1
================
- added AutomatonMatcher - contributed by J. Gibson
- fixed bug in SpecialOperations.overlap - thanks to D. Lutterkort

1.10-4 -> 1.10-5
================
- added RegExp.setAllowMutate (for thread safety)

1.10-3 -> 1.10-4
================
- fixed bug in recomputation of Automaton hash code

1.10-2 -> 1.10-3
================
- added Automaton method: getStrings
- added setAllowMutate method that controls whether operations are allowed
  to modify input automata
- fixed bug in regexp parser
- improved javadoc description of automaton representation

1.10-1 -> 1.10-2
================
- fixed bug in repeat(int,int) that was introduced in 1.9-1 - thanks to B. Lee

1.9-1 -> 1.10-1
===============
- added Datatypes class with lots of common regular languages 
  (was earlier placed in the dk.brics.schematools package)
- added DatatypesAutomatonProvider class so that regexps easily can use the datatypes
- added Automaton methods: 
    - makeMaxInteger
    - makeMinInteger
    - makeTotalDigits
    - makeFractionDigits
    - makeIntegerValue
    - makeDecimalValue
    - makeStringMatcher
    - prefixClose
    - hexCases
    - replaceWhitespace
- now allowing the empty regexp (which matches the empty string) in RegExp syntax
- intersection now works on nondeterministic automata without determinizing
- rewritten getShortestExample
- fixed bug in subsetOf for nondeterministic automata
- removed Makefile (use 'ant' instead)

1.8-8 -> 1.9-1
==============
- moved Automaton methods to other classes (BasicAutomata, BasicOperations, etc.)
- Automaton.toString now prints singleton automata as strings without expanding them
- Automaton.subsetOf rewritten to make it faster
- Automaton.run now works on nondeterministic automata without determinizing

1.8-7 -> 1.8-8
==============
- fixed bug in RunAutomaton.run(String,int) - thanks to J. Moran

1.8-6 -> 1.8-7
==============
- added AutomatonProvider for RegExp.toAutomaton

1.8-5 -> 1.8-6
==============
- fixed bug in subst(Map)

1.8-4 -> 1.8-5
==============
- added Automaton method: overlap
- fixed bug in concatenate(List<Automaton>)

1.8-3 -> 1.8-4
==============
- faster singleton mode for various automata operations
- added Automaton methods: 
    - minus
    - shuffleSubsetOf
    - isEmptyString

1.8-2 -> 1.8-3
==============
- faster construction of automata from large regexps
- improved performance of Automaton.repeat(int) and Automaton.repeat(int,int)

1.8-1 -> 1.8-2
==============
- fixed bug in makeInterval (for non-fixed number of digits) - thanks to A. Bakic

1.7-1 -> 1.8-1
==============
- shifted to Java 5
- reorganized source
- added Automaton method: subst(char,String)

1.6-6 -> 1.7-1
==============
- added Hopcroft's minimization algorithm (more predictable 
  behavior than Brzozowski's, but typically a bit slower)

1.6-5 -> 1.6-6
==============
- fixed bug in complement of nondeterministic automata

1.6-4 -> 1.6-5
==============
- added Automaton method: subst

1.6-3 -> 1.6-4
==============
- changed to BSD license

1.6.2 -> 1.6-3
==============
- added shuffle (interleaving) operation to Automaton

1.6.1 -> 1.6-2
==============
- fixed bug in Automaton.concatenate(List)

1.5-1 -> 1.6-1
==============
- added numerical intervals to RegExp and Automaton

1.4-1 -> 1.5-1
==============
- added Brzozowski's minimization algorithm

1.3-3 -> 1.4-1
==============
- special fast mode for single string automata
- added Automaton method: restoreInvariant

1.3-2 -> 1.3-3
==============
- added Automaton methods: 
    - hashCode (needed by equals)
    - getCommonPrefix

1.3-1 -> 1.3-2
==============
- added Automaton methods:
    - getShortestExample
    - setMinimizeAlways

1.2-7 -> 1.3-1
==============
- State class, Transition class, and various Automaton methods made public
  to allow manual construction of automata

1.2-6 -> 1.2-7
==============
- added Automaton method: compress

1.2-5 -> 1.2-6
==============
- added build.xml makefile for Ant

1.2-4 -> 1.2-5
==============
- added Automaton methods:
    - equals
    - load (from stream or URL)
    - store (to stream)
- Automaton implements Serializable

1.2-3 -> 1.2-4
==============
- added Automaton methods:
    - projectChars
    - concatenate (List)
    - union (List)

1.1 -> 1.2-3
============
- added Automaton methods:
    - trim
    - homomorph
    - singleChars
    - isEmpty
    - isTotal
    - isFinite
    - getFiniteStrings
    - getNumberOfStates
    - getNumberOfTransitions
    - subsetOf
- added RunAutomaton methods:
    - load (from stream or URL)
    - store (to stream)
    - run (longest accepted substring run)
- added getIdentifiers method to RegExp
- RunAutomaton implements Serializable

1.0 -> 1.1
==========
- added regular expression parser (RegExp class)
- tableized run method in RunAutomaton
