private int parseMapFileSection(BufferedReader reader, List<MapSymbol> list, int lineNumber,
			TaskMonitor monitor, MessageLog log) throws IOException, CancelledException {
		String line;
		boolean added = false;
		while ((line = reader.readLine()) != null) {
			monitor.checkCancelled();
			lineNumber++;
			line = line.trim();
			if (line.startsWith(";")) { // comment
				continue;
			}
			if (!line.isEmpty()) {
				try {
					list.add(parseMapSymbol(line, lineNumber));
					added = true;
				}
				catch (ParseException e) {
					if (log != null) {
						log.appendMsg(e.getMessage());
					}
				}
			}
			else if (added) {
				break;
			}
		}
		return lineNumber;
	}
Parses symbol information from the given MAP file section

@param reader A {@link BufferedReader reader} pointing at the start of the MAP file section
@param list A {@link List} to add parsed symbols to
@param lineNumber The line number of the start of the MAP file section
@param monitor A cancellable monitor
@param log An optional log to write to (could be null)
@return The line number after section parsing has finished
@throws IOException If there was a problem parsing
@throws CancelledException if the user cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MapLoader.java