JLex-Tipps.

Transcription

JLex-Tipps.
JLex-Tipps.
Karin Haenelt, 02.05.2003
1
Installation
1. Java installieren und für die Umgebungsvariable PATH den Pfad zu java.exe und
javac.exe eintragen, also z.B. C:\Programme\Java\jdk1.5.0_06\bin
2. Ein Installationsverzeichnis wählen (z.B. „J“)
3. Das Installationsverzeichnis in die Umgebungsvariable CLASSPATH eintragen (falls
es noch nicht darin steht). Beispiel:
a. wenn das Installationsverzeichnis D:\J ist, muss die Eintragung heißen:
CLASSPATH D:\J
b. In CLASSPATH muss auch stehen, in welchem Verzeichnis java nach den mit
JLex und javac erzeugten java-Klassen suchen soll. Falls man jeweils im
aktuellen Verzeichnis suchen lassen möchte, lautet der Eintrag in
CLASSPATH: .
c. Der Eintrag in CLASSPATH für diese Beispielkonfiguration lautet also:
.;D:\J
d. Möchte man außerdem Klassen aus dem Verzeichnis D:\JLEX-Beispiele
verwenden, so heißt der Eintrag in CLASSPATH nun:
.;D:\J; D:\JLEX-Beispiele
4. Ein Verzeichnis J/JLex erzeugen
5. Die Quelldatei Main.java in das Verzeichnis J/JLex kopieren.
6. Die Quelldatei Main.java kompilieren (javac Main.java). Dabei werden einige
Klassendateien im Verzeichnis J/JLex erzeugt.
7. Die neuen Umgebungs- und Pfadvariablen dem System bekannt machen (ggf. neue
Shell starten oder ganz neu einloggen).
8. Nun kann es losgehen: Weiter in „2 Aufruf“
2
Aufruf
Aufruf für das Beispiel: „Ein X für ein U vormachen. Version: Terminaleingabe“
>java
JLex.Main JBeispiel01.lex
>javac JBeispiel01.lex.java
>java
JBeispiel01
Aufruf für das Beispiel: „Ein X für ein U vormachen. Version: Dateieingabe“
>java
JLex.Main JBeispiel02.lex
>javac JBeispiel02.lex.java
Karin Haenelt, JLex-Tipps
>java
3
JBeispiel01 xu.txt
Beachtenswertes
%unicode
für das Arbeiten mit Testen empfiehlt sich die Verwendung der Option
%unicode. JLex arbeitet standardmäßig nur mit den ASCII-Zeichen 1-128
Zeichensatz s. %unicode
Zeilenende
Das Zeilenende wird in UNIX mit „\n“ markiert, in DOS-basierten Systemen mit
„\r\n“. JLEX-arbeitet hier nicht ganz plattformunabhängig. Unter Windows
muss man gesondert dafür Sorge tragen, dass der erzeugte Automat die
Zeichen in seine Tabelle aufnimmt. So enthält z.B. das Beispielprogramm „Ein
X für ein U vormachen“ entsprechende Anweisungen für die Erkennung von
„\n“ und „\r“. Ohne diese Regeln gibt es die Fehlermeldung
java.lang.Error: Lexical Error: Unmatched Input.
at Yylex.yylex(Beispiel.lex.java:260)
at Beispiel.main(Beispiel.lex.java:6)
4
-
-
Fehlermeldungen
Exception in thread „main“
steht der Installationspfad in
java.lang.NoClassDefFoundError:
CLASSPATH?
Exception in thread „main“
Achtung, der Pfad heißt
java.lang.NoClassDefFoundError: Jlex/Beispiel
“JLex“, und nicht
„Jlex“ oder eine andere
Variante von Groß- und
Kleinbuchstaben
-
java.lang.Error: Lexical Error: Unmatched
s. unter 3. Beachtenswertes
Input.
„Zeilenende“
at Yylex.yylex(Beispiel.lex.java:260)
at Beispiel.main(Beispiel.lex.java:6)
Karin Haenelt, JLex-Tipps