=================================================================================================
 TAILOR  v3.0.2
 support: andrea@cs.st-andrews.ac.uk (Andrea Rendl)
=================================================================================================

TAILOR converts models formulated in Essence'[1] or XCSP format[2]
to the input format of solver Minion[3] or Gecode[4], and to Flatzinc[5]. 
Furthermore, the graphical user interface allows to directly solve 
a generated instance in Minion or Gecode (the latter using the
Gecode-Flatzinc translator[6]). Tailor is Open Source
software, licensed under GNU General Public License Version 2.

The parser for the Essence' language and for XCSP functionals has 
been constructed using the LALR parser generator Java Cup[7] in 
combination with the Scanner generator jflex[8], both released 
under GPL[9]. The Parser for XCSP format is released under the X11 
license.

Further documentation of TAILOR can be found at:
http://www.cs.st-and.ac.uk/~andrea/tailor

----------------------------------

Content:

1. Running TAILOR
2. Compiling TAILOR
3. Documentation
4. Tools for Syntax Highlighting
   - Emacs
   - KDE editors
5. Essence' examples
6. Limitations



----------------------------------
1. Running TAILOR
----------------------------------

TAILOR is packed in an executable .jar file, tailor.jar, so you will need
Java Sun's JDK[10]. To execute tailor.jar double-click tailor.jar or change
to its directory and type

java -jar tailor.jar

which will start the graphical version of TAILOR. Please note, that the graphical
version can only translate Essence' at the moment. For the command line version type 

java -jar tailor.jar -help

for further details.


----------------------------------
2. Compiling TAILOR
------------------------------------
Compiling TAILOR is not necessary since it comes as a .jar file.


----------------------------------
3. Documentation
----------------------------------
Documentation can be found at TAILOR's website at:
http://www.cs.st-and.ac.uk/~andrea/tailor. It contains links to several 
Essence' examples, the Essence' grammar specification and an
introduction to modelling with Essence'.


----------------------------------
4. Tools for Syntax Highlighting
----------------------------------

We provide tools for syntax highlighting of Essence' and Minion
for some editors. The tools together with installation descriptions
can be found in the directory syntax-highlighting/ .

   4.1 Emacs 
   ---------
   Peter Gregory was so generous to provide an Emacs-mode for Essence'
   that allows syntax highlighting of .eprime files. Emacs is 
   a popular, powerful, free class of editors. The directory 
   syntax-highlighting/emacs/ contains the Emacs-mode together with 
   instructions on how to set it up.


   4.2 KDE editors
   ---------------
    Jan de Muijnck-Hughes kindly provided .xml files that enable
    syntax highlighting of Essence' and Minion for the KDE editors 
    kate and kwrite. The corresponding files together with installtion
    instructions can be found at syntax-highlighting/kde-editors.
 

----------------------------------
5. Essence' examples
----------------------------------

Several problem samples can be found in the examples/ directory. All problem
samples are documented.


----------------------------------
6. Limitations and Known Bugs
----------------------------------
The translator is still under development, so there are some limitations. 
The following is not supported yet:
- decision variable arrays with 4 or more dimensions
- parameter arrays with 4 or more dimensions
- absolute value
- power with decision variable as exponent
- element constraint on 2-dimensional arrays

Translation to Gecode:
- no parameter arrays supported
- complicated quantified sums not supported

Translation to Flatzinc:
- not supported: multi-dimensional arrays
- no support for table, element, atmost, atleast, gcc
- no modulo, power, division

Please report bugs to andrea@cs.st-andrews.ac.uk


----------------------------------
[1] Essence': http://www.cs.st-and.ac.uk/~andrea/tailor/
[2] XCSP Format: http://www.cril.univ-artois.fr/~lecoutre/research/benchmarks/benchmarks.html
[3] Solver Minion: http://minion.sourceforge.net/
[4] Solver Gecode: http://gecode.org
[5] Flatzinc: http://www.g12.cs.mu.oz.au/minizinc/
[6] Flatzinc-Gecode translator: http://www.gecode.org/flatzinc.html
[7] Java-Cup (LALR Parser Generator): http://www2.cs.tum.edu/projects/cup/
[8] jflex (Scanner Generator for Java): http://www.jflex.de/
[9] GPL license: http://www.fsf.org/licensing/licenses/gpl.html
[10] Java: http://java.sun.com/javase/downloads/index.jsp

