// Key genierieren Key Symboltable::insert(Lexem lexem, TokenType type) { List* currentList = this->table; TableEntry* entry; currentList += hash(lexem); Information* info; for (int i = 0; i < currentList->getSize(); i++) { entry = currentList->getLexem(i); if (strcmp(entry->getLexem(), lexem) == 0) { Information* entryInfo = entry->getInfo(); //Neu Info anlegen, wenn sich Token Type geändert hat //FIX: Mööööööööööööp! Nenene, der Typ des eingetragenen Tokens muss immer //beibehalten werden! Sonst klappt das mit den reservierten Wörtern wie "print" //nichtmehr! /* if (entryInfo->getType() != type) { delete entryInfo; info = new Information(); info->setLexem(lexem); info->setType(type); entry->setInfo(info); } */ //Gebe key zurück, wenn Eintrage gefunden return (Key) info; } } //Wenn kein eintrag gefunden wurde, füge neuen Eintrag an Liste an. info = new Information(); info->setLexem(lexem); info->setType(type); //entry->setLexem(lexem); //entry->setInfo(info); currentList->add(lexem, info); return (Key) info; }