Example #1
0
    def onecmd(self, program):
        if program == 'EOF':
            print() # for tidyness' sake
            sys.exit(0)

        try:
            result, self.environment = eval_program(program, self.environment)

            if not result is None:
                if hasattr(result, "get_external_representation"):
                    # is an atom or list
                    print(result.get_external_representation())
                else:
                    # function object
                    print(result)

        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)
Example #2
0
    def onecmd(self, program):
        if program == 'EOF':
            print()  # for tidyness' sake
            sys.exit(0)

        try:
            result, self.environment = eval_program(program, self.environment)

            if not result is None:
                if hasattr(result, "get_external_representation"):
                    # is an atom or list
                    print(result.get_external_representation())
                else:
                    # function object
                    print(result)

        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)
Example #3
0
    def test_newline(self):
        program = '(newline)'
        eval_program(program, self.environment)

        self.assertEqual(sys.stdout.getvalue(), "\n")
Example #4
0
    def test_display(self):
        program = '(display "hello")'
        eval_program(program, self.environment)

        self.assertEqual(sys.stdout.getvalue(), "hello")
Example #5
0
 def evaluate(self, program):
     internal_result, final_environment = eval_program(program, self.environment)
     return internal_result
Example #6
0
        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)


if __name__ == '__main__':
    environment = {}
    environment = load_built_ins(environment)
    environment = load_standard_library(environment)

    if len(sys.argv) > 1:
        # program file passed in
        path = os.path.abspath(sys.argv[1])
        program = open(path, 'r').read()

        try:
            eval_program(program, environment)
        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)

    else:
        # interactive mode
        Repl(environment).cmdloop()
Example #7
0
        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)


if __name__ == '__main__':
    environment = {}
    environment = load_built_ins(environment)
    environment = load_standard_library(environment)

    if len(sys.argv) > 1:
        # program file passed in
        path = os.path.abspath(sys.argv[1])
        program = open(path, 'r').read()

        try:
            eval_program(program, environment)
        except SchemeSyntaxError as e:
            print("Syntax error: %s" % e.message)
        except SchemeTypeError as e:
            print("Type error: %s" % e.message)
        except InterpreterException as e:
            print("Error: %s" % e.message)

    else:
        # interactive mode
        Repl(environment).cmdloop()
Example #8
0
    def test_newline(self):
        program = '(newline)'
        eval_program(program, self.environment)

        self.assertEqual(sys.stdout.getvalue(), "\n")
Example #9
0
    def test_display(self):
        program = '(display "hello")'
        eval_program(program, self.environment)

        self.assertEqual(sys.stdout.getvalue(), "hello")
Example #10
0
 def evaluate(self, program):
     internal_result, final_environment = eval_program(
         program, self.environment)
     return internal_result