Add alternative way of providing input to the interpreter.
Chris Pressey
2 years ago
120 | 120 | def main(): |
121 | 121 | import sys |
122 | 122 | with open(sys.argv[1], 'r') as f: |
123 | prog = f.read() | |
124 | if len(sys.argv) >= 4 and sys.argv[2] == '-i': | |
125 | with open(sys.argv[3], 'r') as f: | |
126 | inp = f.read() | |
127 | else: | |
123 | 128 | inp = sys.stdin.read() |
124 | if not inp: | |
125 | inp = 'ifeq' | |
126 | result = run(f.read(), inp) | |
127 | print(result) | |
129 | if not inp: | |
130 | inp = 'ifeq' | |
131 | result = run(prog, inp) | |
132 | print(result) | |
128 | 133 | |
129 | 134 | |
130 | 135 | def target(*args): |
152 | 157 | return accum |
153 | 158 | |
154 | 159 | def rpython_main(argv): |
155 | inp = rpython_input() | |
160 | program = rpython_load(argv[1]) | |
161 | if len(argv) >= 4 and argv[2] == '-i': | |
162 | inp = rpython_load(argv[3]) | |
163 | else: | |
164 | inp = rpython_input() | |
156 | 165 | if not inp: |
157 | 166 | inp = 'ifeq' |
158 | program = rpython_load(argv[1]) | |
159 | 167 | result = run(program, inp) |
160 | 168 | print(result.__str__()) |
161 | 169 | return 0 |