Add support for lists to IR, clean up
[fur] / main.py
1 import sys
2
3 import conversion
4 import crossplatform_ir_generation
5 import desugaring
6 import normalization
7 import optimization
8 import parsing
9 import tokenization
10
11 source_path = sys.argv[1]
12
13 with open(source_path, 'r') as f:
14     source = f.read()
15
16 tokens = tokenization.tokenize(source)
17 parsed = parsing.parse(tokens)
18 desugared = desugaring.desugar(parsed)
19 normalized = normalization.normalize(desugared)
20 converted = conversion.convert(normalized)
21
22 assert source_path.endswith('.fur')
23 destination_path = source_path + '.c'
24
25 with open(destination_path, 'w') as f:
26     pass
27     #f.write(generated)
28
29 # This is the crossplatform IR generation path
30 crossplatform_ir = crossplatform_ir_generation.generate(converted)
31 optimized = optimization.optimize(crossplatform_ir)
32 outputted = crossplatform_ir_generation.output(optimized)
33 print(outputted)