Tugas IF4150 Rekayasa Perangkat Lunak Spesifik Domain
This is a DSL (Domain Specific Languange) project made with Antlr and Java. The domain is about Class Scheduling. Class Scheduling is a domain that is very common in both universities and schools. Our aim is to create Class Scheduling DSL that is easy to use, do not have complex syntax, and provides most uses cases needed in real life class scheduling.
In the DSL, we implement several use cases:
- User can define Courses, Classrooms, Classes, and Lecturers.
- User can define Classrooms capacity and their facilities.
- User can specify Courses' facility needs.
- User can specify Lecturers' availability.
- User can specify Courses that should not be held at the same time.
- After user specify all the constraints above, user can automatically generate the schedule that satisfies all the constraints
- Clone this repository.
- Open IntelliJ IDEA, import as gradle project.
- Install the plugins.
- Execute
gradle build
. - Run Main.java.
Examples can be viewed in the example input file.
To run your DSL code, simply put your code in resources
folder. In main program, change:
InputStream is = Main.class.getResourceAsStream("data.txt");
to
InputStream is = Main.class.getResourceAsStream("yourFileName.yourFileExtension");
https://docs.google.com/document/d/1PdZ7FJ2zcIwpBq8XltUSvhKnQsJdPg1CKU6YcXmI1-E
Roselina P 13515034 |
Erick Wijaya 13515057 |
Kezia Suhendra 13515063 |
Rachel Sidney 13515124 |
---|