Skip to content

Input Parsing Module

williamlixu edited this page Aug 11, 2019 · 3 revisions

The input parsing module takes in a .DOT file representing the tasks and their weights and converts this to a graph object which can be used by the algorithm in our program.

ANTLR, a parser generator is used to generate a parser which reads the .DOT file. ANTLR uses a grammar to build and walk a parse tree. The grammar for .DOT files is used under a BSD license and can be found here.

Graph representation

The graph object contains node objects representing tasks. Node objects have their own ids and weights. getIncomingEdges() and getOutgoingEdges() can be called on nodes to get a map of their incoming/outcoming edges with the node and edge weight (communication cost between processors for these tasks). There are currently (somewhat) immutable implementations being used but these have been changed to mutable as optimising our algorithms in the future will preprocessing may require them to be modified.