@@ -163,7 +163,7 @@ Interpunktions-Token) kann man sich das Attribut auch sparen, da das Lexem durch
163163Tokennamen eindeutig rekonstruierbar ist.
164164
165165| Token | Beschreibung | Beispiel-Lexeme |
166- | :----------| :--- --------------------------------------------------| :---------------------|
166+ | :----------- | : --------------------------------------------------| :---------------------|
167167| ` if ` | Zeichen ` i ` und ` f ` | ` if ` |
168168| ` relop ` | ` < ` oder ` > ` oder ` <= ` oder ` >= ` oder ` == ` oder ` != ` | ` < ` , ` <= ` |
169169| ` id ` | Buchstabe, gefolgt von Buchstaben oder Ziffern | ` pi ` , ` count ` , ` x3 ` |
@@ -189,7 +189,7 @@ WHITESPACE : [ \t\n]+ -> skip ;
189189[ Konsole: Hello (Classpath, Aliase, grun, Main, Dateien, Ausgabe)] {.ex
190190href="https://github.com/Compiler-CampusMinden/CB-Vorlesung-Bachelor/blob/master/lecture/01-lexing/src/Hello.g4"}
191191
192- ::: notes
192+ :::: notes
193193## Hinweis zur Grammatik (Regeln)
194194
195195- ` start ` ist eine Parser-Regel =\> Eine Parser-Regel pro Grammatik wird benötigt,
@@ -244,7 +244,8 @@ href="https://github.com/Compiler-CampusMinden/CB-Vorlesung-Bachelor/blob/master
244244[ ANTLR-Plugin] ( https://plugins.jetbrains.com/plugin/7358-antlr-v4 ) . Dieses erlaubt
245245das interaktive Experimentieren mit ANTLR-Grammatiken, ohne dass man ANTLR selbst
246246installiert haben muss oder Code geschrieben haben muss. Für die Arbeit mit
247- Grammatiken ist dieses Plugin unbedingt empfehlenswert!
247+ Grammatiken ist dieses Plugin unbedingt empfehlenswert! (Für das normale Arbeiten
248+ sollten Sie aber die Gradle-Konfiguration nutzen!)
248249
249250** Hinweis** : Im Beispiel-Projekt
250251[ student-support-code-template] ( https://github.com/Compiler-CampusMinden/student-support-code-template )
@@ -260,12 +261,43 @@ automatisch vom ANTLR-Gradle-Plugin beim Build-Prozess (`./gradlew build`) gefun
260261und bearbeitet werden. Die daraus generierten ANTLR-Lexer und -Parser werden im
261262Build-Ordner ` build/generated-src/antlr/main/ ` abgelegt und stehen in der IDE damit
262263automatisch zur Verfügung, ohne dass die generierten Dateien im versionierten
263- Source-Tree auftauchen und diesen "verschmutzen". * Wichtig* : So lange wie die
264+ Source-Tree auftauchen und diesen "verschmutzen". ** Wichtig* * : So lange wie die
264265generierten Dateien nicht erzeugt wurden, zeigen die IDE für diese Klassen und
265266Interfaces entsprechend Fehler an. Ein Übersetzen des Projekts oder ein explizites
266267` ./gradlew generateGrammarSource ` generiert die fehlenden Dateien und die
267268Fehlermeldungen sollten verschwinden.
268269
270+ ::: important
271+ ** Hinweis** : Sorgen Sie dafür, dass Ihre IDE tatsächlich auch die
272+ ** Projekteinstellungen von Gradle übernommen** hat und auch ** mit Gradle baut** !
273+
274+ 1 . Check, ob die ** Projekteinstellungen** in IntelliJ passen:
275+
276+ 1 . Menü ` File > Project Structure > Project Settings > Project ` sollte für Ihr
277+ Projekt als SDK ein "Java 25" zeigen:
278+
279+ ![ ] ( images/ij-projectsettings-sdk.png )
280+
281+ 2 . Menü ` File > Project Structure > Project Settings > Libraries ` sollte für
282+ Ihr Projekt Jar-Files für ANTLR4 zeigen:
283+
284+ ![ ] ( images/ij-projectsettings-libs.png )
285+
286+ 2 . Check, ob ** IntelliJ mit Gradle baut** :
287+
288+ Menü ` File > Settings > Build, Execution, Deployment > Build Tools > Gradle `
289+ sollte auf Gradle umgestellt sein:
290+
291+ ![ ] ( images/ij-setting-gradlebuild.png )
292+
293+ Unter ** "Build & Run" sollte "Gradle"** ausgewählt sein, die ** "Distribution"
294+ sollte auf "Wrapper"** stehen, und als ** "Gradle JVM"** sollte die für das
295+ Projekt verwendete JVM eingestellt sein, d.h. aktuell Java 25.
296+
297+ Siehe auch
298+ [ Compiler-CampusMinden/student-support-code-template] ( https://github.com/Compiler-CampusMinden/student-support-code-template/blob/master/README.md ) .
299+ :::
300+
269301## "Hello World" übersetzen und ausführen
270302
2713031 . Grammatik übersetzen und Code generieren: ` antlr Hello.g4 `
@@ -423,7 +455,7 @@ Lexers u.U. schwer vorhersehbar machen!
423455
424456Die Empfehlung ist, non- greedy Lexer - Regeln nur sparsam einzusetzen (vgl.
425457[github. com/ antlr/ antlr4/ blob/ master/ doc/ wildcard. md](https: // github.com/antlr/antlr4/blob/master/doc/wildcard.md)).
426- :::
458+ ::::
427459
428460::: slides
429461# Verhalten des Lexers : 1. L ängster Match
0 commit comments