// NON-OPTIONS
String[] words = getRemainingWords();
// the first word must be a filename
if (words.length < 2) {
throw new RrdException("Image filename must be specified");
}
gdef.setFilename(words[1]);
// parse remaining words, in no particular order
for (int i = 2; i < words.length; i++) {
if (words[i].startsWith("DEF:")) {
parseDef(gdef, words[i]);
}
else if (words[i].startsWith("CDEF:")) {
parseCDef(gdef, words[i]);
}
else if (words[i].startsWith("PRINT:")) {
parsePrint(gdef, words[i]);
}
else if (words[i].startsWith("GPRINT:")) {
parseGPrint(gdef, words[i]);
}
else if (words[i].startsWith("COMMENT:")) {
parseComment(gdef, words[i]);
}
else if (words[i].startsWith("HRULE:")) {
parseHRule(gdef, words[i]);
}
else if (words[i].startsWith("VRULE:")) {
parseVRule(gdef, words[i]);
}
else if (words[i].startsWith("LINE1:") || words[i].startsWith("LINE2:") || words[i].startsWith("LINE3:")) {
parseLine(gdef, words[i]);
}
else if (words[i].startsWith("AREA:")) {
parseArea(gdef, words[i]);
}
else if (words[i].startsWith("STACK:")) {
parseStack(gdef, words[i]);
}
else {
throw new RrdException("Unexpected GRAPH token encountered: " + words[i]);
}
}
return gdef;
}