If you want to be able to load files into your Charme interpreter, use this evalLoop procedure. It defines the command,
load file
and will evaluate all the expressions defined in the file. This will be especially useful if you want to test longer Charme programs in your evaluator.

def evalLoop():
    print "Welcome to Charme (the Snake Charmer's Language)"
    initializeGlobalEnvironment()
    while True:
        intext = raw_input("Charme> ")
        commands = intext.split()
        if commands[0] == 'quit':
            break
        elif commands[0] == 'load':
            if len(commands) != 2:
                print "Load commands expects one parameter."
                continue
            else:
                fname = commands[1]
                try:
                    f = open(fname)
                    intext = f.read()
                except:
                    print "Error reading file: " + fname
        try:
            exprs = parse(intext)
            if exprs:
                for expr in exprs:
                    res = meval(expr, globalEnvironment)
                    if isinstance(res, Procedure):
                        print res.toString()
                    elif res != None:
                        print res
        except:
            print "Error evaluating " + str(expr)