def inner_invoke(self, args): import pixie.vm.rt as rt import pixie.vm.persistent_vector as vector with with_ns(u"user"): NS_VAR.deref().include_stdlib() acc = vector.EMPTY for x in self._argv: acc = rt.conj(acc, rt.wrap(x)) PROGRAM_ARGUMENTS.set_root(acc) with with_ns(u"user"): try: f = None if self._file == '-': f, _, _ = create_stdio() else: if not path.isfile(self._file): print "Error: Cannot open '" + self._file + "'" os._exit(1) f = open(self._file) data = f.read() f.close() if data.startswith("#!"): newline_pos = data.find("\n") if newline_pos > 0: data = data[newline_pos:] rt.load_reader(StringReader(unicode_from_utf8(data))) except WrappedException as ex: print "Error: ", ex._ex.__repr__() os._exit(1)
def entry_point(argv): if len(argv) > 1: runFile(argv[1]) elif len(argv) == 1: debug("Entering lox repl") stdin, stdout, stderr = rfile.create_stdio() repl(stdin, stdout) else: print "Usage: bt [path]" raise SystemExit(64) return 0
def inner_invoke(self, args): import pixie.vm.rt as rt import pixie.vm.persistent_vector as vector with with_ns(u"user"): NS_VAR.deref().include_stdlib() acc = vector.EMPTY for x in self._argv: acc = rt.conj(acc, rt.wrap(x)) PROGRAM_ARGUMENTS.set_root(acc) with with_ns(u"user"): if self._file == '-': stdin, _, _ = create_stdio() code = stdin.read() interpret(compile(read(StringReader(unicode(code)), True))) else: rt.load_file(rt.wrap(self._file))
def input_(obj): stdin, stdout, stderr = create_stdio() if obj is not None: stdout.write(obj.string.encode('utf-8')) line = stdin.readline().rstrip("\r\n") return String(line.decode('utf-8'))
def test_stdio(self): i, o, e = rfile.create_stdio() o.write("test\n") i.close() o.close() e.close()