Skip to content

Compiler-CampusMinden/student-support-code-template

Repository files navigation

title
Student Support Code Template

Compiler Sample Project

Dies ist ein Starter-Projekt für die Übungsaufgaben in "Compilerbau" (Bachelor). Es existiert eine Gradle-Konfiguration (Java-Projekt), JUnit und ANTLR sind auch bereits eingebunden. Das Projekt zeigt die Einbindung der ANTLR-Grammatiken. Zusätzlich existieren Beispielgrammatiken für einige Übungsblätter.

Installation

Öffnen Sie den Ordner sample_project als neues Java-Projekt "mit existierenden Quellen" in IntelliJ. Achten Sie dabei darauf, dass Sie als "Build Model" entsprechend "Gradle" auswählen, damit die Konfiguration übernommen wird.

Sie benötigen ein installiertes Java SE Development Kit 21 LTS. Achten Sie darauf, dass dieses auch wirklich von IntelliJ verwendet wird (zu finden unter Projekt-Einstellungen).

Weitere Software ist nicht notwendig. ANTLR und JUnit werden über das Build-Skript automatisch als Dependency heruntergeladen und eingebunden. Es empfiehlt sich dennoch, zusätzlich das ANTLR-Plugin für IntelliJ zu installieren - damit können Sie in der IDE interaktiv mit den Grammatiken experimentieren und müssen nicht immer das gesamte Programm kompilieren und laufen lassen.

Sie können natürlich auch eine beliebige andere IDE oder sogar einen einfachen Editor verwenden.

Gradle-Tasks

Aufräumen

./gradlew clean

Starten des Programms

Konfigurieren Sie Ihr Programm im build.gradle in der Variablen mainClass.

Danach können Sie das Programm kompilieren und starten über ./gradlew run.

Formatieren

Ihre Java-Sourcen können Sie mit ./gradlew spotlessApply formatieren.

Testen

./gradlew check

Grammatik neu übersetzen

Die ANTLR-Grammatiken werden im Ordner src/main/antlr erwartet. Sie werden standardmäßig beim Bauen der Applikation übersetzt, also beispielsweise beim Ausführen von ./gradlew run oder ./gradlew build.

Die dabei generierten Dateien werden im Build-Ordner build/generated-src/antlr/main/ abgelegt und sind über die Gradle-Konfiguration automatisch im Classpath verfügbar.

Falls Ihre Grammatik in einem Package liegt (beispielsweise HelloPackage.g4 im Package my.pkg), dann wird für die generierten Sourcen im Build-Ordner automatisch dieses Package mit angelegt. Damit später die Einbindung in Ihr Programm funktioniert, sollten Sie entsprechend in der Grammatik über die Direktive @header die entsprechende Package-Deklaration mit in die generierten Sourcen hineingenerieren lassen.

Wenn Sie die Grammatik einzeln übersetzen wollen, können Sie dies mit ./gradlew generateGrammarSource tun.

License

This work by Carsten Gips and contributors is licensed under MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •