def main(): instream = InStream('misspellings.txt') lines = instream.readAllLines() misspellings = SymbolTable() for line in lines: tokens = line.split(' ') misspellings[tokens[0]] = tokens[1] while not stdio.isEmpty(): word = stdio.readString() if word in misspellings: stdio.write(word + '-->' + misspellings[word])
# Accept string inStream, integer keyField, and integer valField as # command-line arguments. inStream is the name of a file. Each line # of the file contains fields separated by commas. keyField identifies # which field of each line is a key, and valField identifies which # field of each line is a value. Use the keys and values to create a # symbol table. Then read a key from standard input, search # the symbol table for the key, and write to standard output the # key's value or 'not found' as appropriate. Repeat until end-of-file # of standard input. inStream = InStream(sys.argv[1]) keyField = int(sys.argv[2]) valField = int(sys.argv[3]) # Build a database from inStream. database = inStream.readAllLines() # Extract keys and values from the database and add them to st. st = SymbolTable() for line in database: tokens = line.split(',') key = tokens[keyField] val = tokens[valField] st[key] = val # Read keys, search st, and write values. while not stdio.isEmpty(): query = stdio.readString() if query in st: stdio.writeln(st[query]) else: