-
Notifications
You must be signed in to change notification settings - Fork 0
Catalogue.cfg Format
Das Konfigurationsformat ist an Java-Blöcke angelehnt: Ein Block wird durch ein Schlüsselwort und eine öffnende geschweifte Klammer eingeleitet und durch eine schließende geschweifte Klammer geschlossen. Der ganze Katalog besteht aus einem catalogue-Block, wie folgt:
catalogue {
...
}
Darin befinden sich beliebig viele (0 oder mehr) project-Blöcke:
project "Beispielprojekt" {
...
}
Ein project-Block enthält beliebig viele (0 oder mehr) instruction-Anweisungen:
project "Beispielprojekt" {
instruction "Tun Sie X.";
instruction "Vergessen Sie nicht, auch noch Y und Z zu machen.";
}
Beim Parsen werden die instruction-Anweisungen zusammengefügt, Leerzeichen u.U. ergänzt. Die Anweisungen zu obigem Projekt werden in der GUI wie folgt aussehen:
Tun Sie X. Vergessen Sie nicht, auch noch Y und Z zu machen.
Außerdem kann jedes Projekt beliebig viele template-Blöcke enthalten. Davon gibt es zwei Arten: Implementation-Templates und Test-Templates. Der Java-Code kommt direkt und ohne weitere Anführungszeichen in den Klammernblock. Das setzt voraus, dass es sich um gültigen Java-Quelltext handelt, insbesondere die Zahl öffnender und schließender geschweifter Klammern übereinstimmt. Dabei werden Klammern in Kommentaren und Stringliteralen selbstverständlich ignoriert.
test template "ExampleTest.java" {
import bla.blub.*;
public class ExampleTest {
private static final String SOME_CONST = "Diese Klammer wird ignoriert: {";
// Diese Klammer auch: {
/* Und diese ebenfalls: { */
}
}
implementation template "ExampleClass.java" {
package de.hhu.somepackage;
public class ExampleClass {
// ...
}
}
Die Reihenfolge von instruction-Anweisungen und template-Blöcken ist beliebig. Sie können auch vermischt werden.
Es ist zu Beachten, dass im Gegensatz zu Java das Konfigurationsformat keine Kommentare zulässt. Ausnahme: Innerhalb der template-Blöcke.
catalogue {
project "Example Project" {
instruction "Bla";
instruction "Blub";
test template "SomeTest.java" {
public class SomeTest {
private String bla = "{\"{";
}
}
implementation template "SomeClass.java" {
public class SomeClass {
// ... }
/* } */
}
}
}
}
brace-open = "{" ;
brace-close = "}" ;
quoted-string = "\"", { string-character }, "\"" ;
catalogue-block = "catalogue", brace-open, { catalogue-content }, brace-close ;
catalogue-content = project-block ;
project-block = "project", quoted-string, brace-open, { project-content }, brace-close ;
project-content = instruction | template-block ;
instruction = "instruction", quoted-string, ";" ;
template-block = ("test" | "implementation"), "template", quoted-string, brace-open, java-code, brace-close ;
\o/ Two Finger Joe \o/
Verzeichnis
Catalogue
- [Dateiformat](Catalogue.cfg Format)
- ParseSource
- ParseHelper
- CatalogueReader
- Catalogue, Project, ...
Controller
- Logic
- [Main Controller](Main Controller)
- [Project Controller](Project Controller)
File Interaction
Tracking