Tools used

Version of Java

Jeliot is programmed in pure Java. It compiles under Java versions 1.1 and 1.2. It uses the Swing classes for creating user interface. Swing is included in Java 1.2 standard classes, but not in Java 1.1, so if this version is used, Swing classes must be explicitly provided. The compiler used during development was IBM's JDK1.1.7, but Jeliot compiles also at least with Sun's JDK1.1.8 and SDK1.2.2.

As it is written in Java, Jeliot needs a Java virtual machine to run. It successfully runs under the virtual machine provided with Sun's JDK1.1.8 as well as the Java runtime environment JRE1.1. IBM's virtual machine seems to cause some problems; Jeliot will sometimes cease to work with no apparent reason under IBM's virtual machine. Jeliot also works under the virtual machine of SDK1.2.2, but it seems to run more efficiently on 1.1 versions of Java. For unknown reason, Jeliot does not run under the previous versions of SDK.

Parser generation

The Java parser used by Jeliot is generated with CUP parser generator (version 0.10j) [1]. Java Grammar used as a basis of the parser is by Scott Ananian and it is available at the same URL as CUP. Lexical analyzer used by Jeliot is the Lex lexer provided with the grammar, also by Scott ananian. This lexer seems to have some bugs that mess up the character count in presence of multi-line comments. It's way of reporting errors such as non-terminated comment or too big literal value, is also stupid. It throws java.lang.Error objects instead of throwing proper exceptions. There is a generator of lexical analyzers for Java, called JLex [2], but it cannot handle the unicode characters as required by Java specification. This is however not very important, and it would probably be best to replace the hand-crafted lexer with a generated one.

Other tools

Jeliot was programmed using Programmers File Editor [3] and UltraEdit [4] text editors, which are freeware and shareware, respectively. UltraEdit provides much better user interface and more advanced tools, but it has problems with stability. Most of the graphics in Jeliot were drawn using the shareware program Paint Shop Pro 5 [5]. The background pictures are an exception. They were obtained at Wanthelp.com [6].

References

[1] http://www.cs.princeton.edu/~appel/modern/java/CUP/
[2] http://www.cs.princeton.edu/~appel/modern/java/JLex/
[3] http://www.lancs.ac.uk/people/cpaap/pfe/default.htm
[4] http://www.ultraedit.com/
[5] http://www.jasc.com/psp5.html
[6] http://www.wanthelp.com