projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an interpreter
[fur]
/
main.py
diff --git
a/main.py
b/main.py
index
9ec852a
..
44dbbc6
100644
(file)
--- a/
main.py
+++ b/
main.py
@@
-9,7
+9,9
@@
import optimization
import parsing
import tokenization
import parsing
import tokenization
-source_path = sys.argv[1]
+command = sys.argv[1]
+
+source_path = sys.argv[2]
with open(source_path, 'r') as f:
source = f.read()
with open(source_path, 'r') as f:
source = f.read()
@@
-22,13
+24,19
@@
converted = conversion.convert(normalized)
crossplatform_ir = crossplatform_ir_generation.generate(converted)
optimized = optimization.optimize(crossplatform_ir)
crossplatform_ir = crossplatform_ir_generation.generate(converted)
optimized = optimization.optimize(crossplatform_ir)
-outputted = crossplatform_ir_generation.output(optimized)
-print(outputted)
-generated = c_generation.generate(optimized)
+if command == 'compile':
+ generated = c_generation.generate(optimized)
+
+ assert source_path.endswith('.fur')
+ destination_path = source_path + '.c'
+
+ with open(destination_path, 'w') as f:
+ f.write(generated)
-assert source_path.endswith('.fur')
-destination_path = source_path + '.c'
+elif command == 'ir':
+ outputted = crossplatform_ir_generation.output(optimized)
+ print(outputted)
-
with open(destination_path, 'w') as f
:
-
f.write(generat
ed)
+
elif command == 'interpret'
:
+
interpreter.interpret(optimiz
ed)