}
String items[];
try {
items = tabPattern.split(fileLine.substring(1));
} catch (PatternSyntaxException e) {
throw new SymbolException("The header line of the symbol table '"+fileLine.substring(1)+"' could not split into atomic parts. ", e);
}
if (items.length != 3) {
throw new SymbolException("The header line of the symbol table '"+fileLine.substring(1)+"' must contain four columns. ");
}
addSymbolTable(items[0], Integer.parseInt(items[1]), items[2]);
}
} catch (NumberFormatException e) {
throw new SymbolException("The symbol table file (.sym) contains a non-integer value in the header. ", e);
} catch (IOException e) {
throw new SymbolException("Could not load the symbol table. ", e);
}
}