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