X-Git-Url: https://code.kerkeslager.com/?a=blobdiff_plain;ds=sidebyside;f=main.py;h=198072e52153a52e5572842092d4cdd172788dff;hb=cd20ac27a1bd6c4dcc5bb5cc0ca26f4558bfe3e9;hp=c2592c6c1e489da55072087180bf7387e547a96c;hpb=6c2894f00c8daca3d85c7ce850da711b9f7effc5;p=fur diff --git a/main.py b/main.py index c2592c6..198072e 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,11 @@ import sys +import conversion +import crossplatform_ir_generation +import desugaring import generation +import normalization +import optimization import parsing import tokenization import transformation @@ -12,7 +17,12 @@ with open(source_path, 'r') as f: tokens = tokenization.tokenize(source) parsed = parsing.parse(tokens) -transformed = transformation.transform(parsed) +desugared = desugaring.desugar(parsed) +normalized = normalization.normalize(desugared) +converted = conversion.convert(normalized) + +# This is the C generation path +transformed = transformation.transform(converted) generated = generation.generate(transformed) assert source_path.endswith('.fur') @@ -20,3 +30,9 @@ destination_path = source_path + '.c' with open(destination_path, 'w') as f: f.write(generated) + +# This is the crossplatform IR generation path +crossplatform_ir = crossplatform_ir_generation.generate(converted) +optimized = optimization.optimize(crossplatform_ir) +outputted = crossplatform_ir_generation.output(optimized) +print(outputted)