private void detectSymbolsAndBaseAddresses() throws IOException { Hashtable<String, Integer> moduleSymbols = new Hashtable<String, Integer>(); int nd = parseNumber(); for (int i = 1; i <= nd; i++) { String symbol = parseWord(); if (SymbolTable.defines(symbol)) { String error = "Error: This variable is multiply defined; first value used."; SymbolTable.getInstance().getErrors().put(symbol, error); } else { moduleSymbols.put(symbol, parseNumber() + this.baseAddress); SymbolTable.getInstance().put(symbol, moduleSymbols.get(symbol)); } } skipUseList(); int moduleSize = parseNumber(); skipProgram(moduleSize); MemoryMap.createProgramModule(this.baseAddress, moduleSymbols); this.baseAddress += moduleSize; skipWhiteSpace(); }