Пример #1
0
 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();
 }